
# 创建FPGA镜像
#### 功能介绍
本接口用于创建FPGA镜像。当前仅支持创建能够加载到Xilinx VU9P芯片的镜像文件。
![](https://support.huaweicloud.com/api-ecs/public_sys-resources/note_3.0-zh-cn.png)
目前仅"华北-北京一、华东-上海二、华南-广州"区域支持，其他区域暂未支持。
在创建FPGA镜像前，用户需要提供创建FPGA镜像所需的DCP（Design Checkpoint ）文件，并将该文件存放到OBS（Object Storage Service）桶中。
本接口在完成FPGA镜像的初始化操作后会首先为用户返回FPGA镜像ID，然后通过后端的AFS（Accelerated Engine Image Factory Service）构建集群完成DCP文件到FPGA镜像文件的生成，并将构建过程中产生的日志文件上传到用户OBS桶的指定目录。构建日志文件会按照"{FPGA镜像ID}_log.tar"的格式命名，例如"4010a32c5c62bad9015c62dc2290002b_log.tar"。
在创建过程中，FPGA镜像的状态会不断变化。当状态为active或error时，表示创建完成。
表1状态说明 
| 状态         | 说明             |
|:---|:---|
| initiating | 创建FPGA镜像任务初始化中 |
| scheduling | FPGA镜像等待调度创建。  |
| creating   | FPGA镜像正在创建中    |
| active     | FPGA镜像可以正常使用   |
| error      | FPGA镜像创建失败     |
   
创建配额：单个租户一次最多只能创建一个FPGA镜像。当租户尝试同时创建多个FPGA镜像时，将创建失败。
#### URI
POST /v2/{project_id}/cloudservers/fpga_image
参数说明请参见[表2]。
 表2参数说明 
| 参数         | 是否必选 | 描述                                                                                                        |
|:---|:---|:---|
| project_id | 是    | 项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-ecs/ecs_01_0016.html)。 |
   
#### 请求消息
请求参数如[表3]所示。
 表3请求参数 
| 参数         | 参数类型   | 是否必选 | 描述          |
|:---|:---|:---|:---|
| fpga_image | Object | 是    | FPGA镜像信息详情。 |
   
表4fpga_image字段结构说明 
| 参数            | 参数类型   | 是否必选 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| dcp_location  | String | 是    | DCP文件在OBS桶中的路径，格式为"桶名:文件名"，例如"obs-fpga:fpga-test-dcp.tar"。 桶名的命名规则满足OBS的约束： - 由英文小写字母、数字以及特殊字符"."、"-"组成。  - 只能以数字或字母开头和结尾。  - 长度3～63个字符。  - 不能是ip地址。  - 不能包含".."、".-" 、"-."字符串。   文件名的命名规则如下： - 由英文大、小写字母，数字，中划线，下划线，斜杠，英文句号组成。  - 不能以"/"开头。  - 必须以".tar"结尾。  - 长度4～128个字符。   如果文件名中包含目录结构，例如"vu9p/fpga-test-dcp.tar"，则每一级目录名需要满足以下规则： - 不能为空。  - 不能以"."开头或结尾。   |
| log_directory | String | 否    | 构建日志文件在上传到OBS桶（DCP文件所在的OBS桶）中时的目录路径，例如"vu9p/log"。当该字段不存在或为空时，默认与用户的DCP文件位于同一级目录下。 命名规则如下： - 由英文大、小写字母，数字，中划线，下划线，斜杠，英文句号组成。  - 不能以"/"开头或结尾。  - 如果包含多级目录，则每一级目录名都不能为空，且不能以"."开头或结尾。  - 长度0～64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| name          | String | 是    | FPGA镜像的名称。 取值范围： - 只能由英文字母、数字、下划线、中划线组成。  - 长度1\~64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| description   | String | 否    | FPGA镜像的描述信息，由中文汉字、中文句号、中文逗号、英文大小写字母、数字、中划线、下划线、英文句号、英文逗号、空格组成，长度0到255个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   
#### 响应消息
响应参数如[表5]所示。
 表5响应参数 
| 参数         | 参数类型   | 描述          |
|:---|:---|:---|
| fpga_image | Object | FPGA镜像信息详情。 |
   
表6fpga_image字段结构说明 
| 参数     | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| id     | String | FPGA镜像的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| status | String | FPGA镜像状态。取值如下： - initiating：表示创建FPGA镜像任务初始化中。  - scheduling：表示等待调度创建。  - creating：表示FPGA镜像正在创建中。  - deleting：表示FPGA镜像正在删除中。  - error：表示FPGA镜像创建失败。  - active：表示FPGA镜像可以正常使用。   |
   
#### 请求示例
```
POST https://{endpoint}/v2/{project_id}/cloudservers/fpga_image
```
```
{
  "fpga_image": {
    "dcp_location": "obs-fpga:vu9p/fpga-vu9p-dcp.tar",
    "log_directory": "vu9p/log",
    "name": "fpga-image-test",
    "description": "fpga description"
  }
}
```
#### 响应示例
```
{
  "fpga_image": {
    "status": "initiating",
    "id": "4010a32c5c62bad9015c62dc2290002b"
  }
}
```
#### 返回值
请参考[通用请求返回值](https://support.huaweicloud.com/api-ecs/ecs_07_0001.html)。
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-ecs/ecs_07_0002.html)。
