
# 部署服务 - DeployServiceInstance
#### 功能介绍
部署一个服务实例。部署服务实例接口支持输入名称、描述、端点ID、实例规格、最小值和最大值等参数，返回实例ID。此过程包含资源校验：最大值不小于最小值，且不超过端点最大资源数；同一端点下所有服务总资源数亦需符合限制。服务实例将依据负载自动调整数量，确保在最小与最大值范围内运行。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/DataArtsFabricEp/doc?api=DeployServiceInstance)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-fabric/dataartsfabric_03_0014.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                           | 访问级别  | 资源类型（\*为必须）  | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                       | 别名 | 依赖的授权项                                                                                                                                                                                                                                                                                                            |
  |:---|:---|:---|:---|:---|:---|
  | DataArtsFabric:service:deploy | Write | workspace \* | - g:ResourceTag/\<tag-key\>   - g:EnterpriseProjectId    | -  | - DataArtsFabric:workspace:list  - DataArtsFabric:endpoint:show   |
  | DataArtsFabric:service:deploy | Write | endpoint \*  | -                                                                                                                                                                                                                                                                                                                                                                                                                                         | -  | - DataArtsFabric:workspace:list  - DataArtsFabric:endpoint:show   |
  | DataArtsFabric:service:deploy | Write | service \*   | -                                                                                                                                                                                                                                                                                                                                                                                                                                         | -  | - DataArtsFabric:workspace:list  - DataArtsFabric:endpoint:show   |
     
  
 
#### URI
POST /v1/workspaces/{workspace_id}/services/instances
表1路径参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| workspace_id | 是    | String | **参数解释**：工作空间的ID。 **约束限制**：不涉及。 **取值范围**：长度为\[1,36\]的字母、数字、中划线(-)的组合。 **默认取值**：不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| X-Auth-Token | 否    | String | **参数解释**：租户token。 **约束限制**：不涉及。 **取值范围**：不涉及。 **默认取值**：不涉及。 |
   
表3请求Body参数 
| 参数          | 是否必选 | 参数类型                                                                                         | 描述                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| source      | 是    | [SourceRef] object                         | **参数解释**：来源信息，Service信息或者模型信息。 **约束限制**：不涉及。                                                                                                                                                                    |
| name        | 是    | String                                                                                       | **参数解释**：一个服务实例的名称。 **约束限制**：不涉及。 **取值范围**：长度为\[1,64\]的中文、字母、数字、下划线(_)、中划线(-)、点、空格的组合。 **默认取值**：不涉及。            |
| description | 否    | String                                                                                       | **参数解释**：描述信息。 **约束限制**：不涉及。 **取值范围**：长度为\[0,1024\]的除了 "!"、"\<"、"\>"、"="、"\&"、"""、"'" 之外的任意字符的组合。 **默认取值**：不涉及。 |
| endpoint_id | 是    | String                                                                                       | **参数解释**：端点ID。 **约束限制**：不涉及。 **取值范围**：长度为\[1,36\]的字母、数字、中划线(-)的组合。 **默认取值**：不涉及。                                |
| config      | 否    | [ServiceInstanceConfig] object | **参数解释**：启动Service实例时输入的配置，在DeployService中使用。 **约束限制**：不涉及。                                                                                                                                                     |
   
 表4SourceRef 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| id         | 是    | String | **参数解释**：来源ID。有不同的类型，对于推理服务实例，则为模型的ID。 **约束限制**：不涉及。 **取值范围**：长度为\[1,36\]的英文字母、数字、中划线(-)的组合。 **默认取值**：不涉及。 |
| version_id | 否    | String | **参数解释**：版本ID。有不同的类型，对于推理服务实例，则为模型版本ID **约束限制**：不涉及。 **取值范围**：长度为\[1,36\]的英文字母、数字、中划线(-)的组合。 **默认取值**：不涉及。 |
   
 表5ServiceInstanceConfig 
| 参数                    | 是否必选 | 参数类型                                                                                                   | 描述                                                                                                  |
|:---|:---|:---|:---|
| model_instance_config | 否    | [ModelServiceInstanceConfig] object | **参数解释**：模型服务实例的配置，在DeployService中使用。 **约束限制**：不涉及。 |
   
 表6ModelServiceInstanceConfig 
| 参数       | 是否必选 | 参数类型                                                                           | 描述                                                                              |
|:---|:---|:---|:---|
| resource | 是    | [ResourceDemand] object | **参数解释**：资源需求量配置。 **约束限制**：不涉及。 |
   
 表7ResourceDemand 
| 参数        | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| min       | 是    | Integer | **参数解释**：最小数。 **约束限制**：不涉及。 **取值范围**：\[1,1000\]。 **默认取值**：不涉及。             |
| max       | 是    | Integer | **参数解释**：最大数。 **约束限制**：不涉及。 **取值范围**：\[1,1000\]。 **默认取值**：不涉及。             |
| spec_code | 是    | String  | **参数解释**：资源规格，从规格列表查询获取。 **约束限制**：不涉及。 **取值范围**：长度为\[1,64\]。 **默认取值**：不涉及。 |
   
#### 响应参数
**状态码：200**
表8响应Body参数 
| 参数 | 参数类型                                                                    | 描述                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| id | [InstanceId] object | **参数解释** ：实例ID。获取方法，请参见[获取推理实例ID](https://support.huaweicloud.com/api-fabric/dataartsfabric_03_0025.html)。 **约束限制**：不涉及。 **取值范围**：长度为\[1,36\]的字母、数字、中划线(-)的组合。 **默认取值**：不涉及。 |
   
 表9InstanceId 
| 参数 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| -  | String | **参数解释** ：实例ID。获取方法，请参见[获取推理实例ID](https://support.huaweicloud.com/api-fabric/dataartsfabric_03_0025.html)。 **约束限制**：不涉及。 **取值范围**：长度为\[1,36\]的字母、数字、中划线(-)的组合。 **默认取值**：不涉及。 |
   
**状态码：400**
表10响应Body参数 
| 参数           | 参数类型   | 描述                                                                                                                                                                                                                  |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码。 **约束限制**：不涉及。 **取值范围**：长度\[8,36\]。 **默认取值**：不涉及。      |
| error_msg    | String | **参数解释**：错误描述。 **约束限制**：不涉及。 **取值范围**：长度\[2,4096\]。 **默认取值**：不涉及。   |
| solution_msg | String | **参数解释**：解决方案描述。 **约束限制**：不涉及。 **取值范围**：长度\[2,4096\]。 **默认取值**：不涉及。 |
   
**状态码：401**
表11响应Body参数 
| 参数           | 参数类型   | 描述                                                                                                                                                                                                                  |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码。 **约束限制**：不涉及。 **取值范围**：长度\[8,36\]。 **默认取值**：不涉及。      |
| error_msg    | String | **参数解释**：错误描述。 **约束限制**：不涉及。 **取值范围**：长度\[2,4096\]。 **默认取值**：不涉及。   |
| solution_msg | String | **参数解释**：解决方案描述。 **约束限制**：不涉及。 **取值范围**：长度\[2,4096\]。 **默认取值**：不涉及。 |
   
**状态码：404**
表12响应Body参数 
| 参数           | 参数类型   | 描述                                                                                                                                                                                                                  |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码。 **约束限制**：不涉及。 **取值范围**：长度\[8,36\]。 **默认取值**：不涉及。      |
| error_msg    | String | **参数解释**：错误描述。 **约束限制**：不涉及。 **取值范围**：长度\[2,4096\]。 **默认取值**：不涉及。   |
| solution_msg | String | **参数解释**：解决方案描述。 **约束限制**：不涉及。 **取值范围**：长度\[2,4096\]。 **默认取值**：不涉及。 |
   
**状态码：408**
表13响应Body参数 
| 参数           | 参数类型   | 描述                                                                                                                                                                                                                  |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码。 **约束限制**：不涉及。 **取值范围**：长度\[8,36\]。 **默认取值**：不涉及。      |
| error_msg    | String | **参数解释**：错误描述。 **约束限制**：不涉及。 **取值范围**：长度\[2,4096\]。 **默认取值**：不涉及。   |
| solution_msg | String | **参数解释**：解决方案描述。 **约束限制**：不涉及。 **取值范围**：长度\[2,4096\]。 **默认取值**：不涉及。 |
   
**状态码：500**
表14响应Body参数 
| 参数           | 参数类型   | 描述                                                                                                                                                                                                                  |
|:---|:---|:---|
| error_code   | String | **参数解释**：错误码。 **约束限制**：不涉及。 **取值范围**：长度\[8,36\]。 **默认取值**：不涉及。      |
| error_msg    | String | **参数解释**：错误描述。 **约束限制**：不涉及。 **取值范围**：长度\[2,4096\]。 **默认取值**：不涉及。   |
| solution_msg | String | **参数解释**：解决方案描述。 **约束限制**：不涉及。 **取值范围**：长度\[2,4096\]。 **默认取值**：不涉及。 |
   
#### 请求示例
部署一个服务实例，具体部署参数如下示例所示。
```
POST https://{endpoint}/v1/workspaces/{workspace_id}/services/instances
{
  "source" : {
    "id" : "0b5633ba2b904511ad514346f4d23d4b",
    "version_id" : "0b5633ba2b904511ad514346f4d23d4b"
  },
  "name" : "serviceInstanceName1",
  "description" : "description",
  "endpoint_id" : "b935d0ef-f4eb-4b95-aff1-9d33ae9f57b6",
  "config" : {
    "model_instance_config" : {
      "resource" : {
        "min" : 1,
        "max" : 1000,
        "spec_code" : "string"
      }
    }
  }
}
```
#### 响应示例
**状态码：400**
BadRequest
```
{
  "error_code" : "common.01000001",
  "error_msg" : "failed to read http request, please check your input, code: 400, reason: Type mismatch., cause: TypeMismatchException"
}
```
**状态码：401**
Unauthorized
```
{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}
```
**状态码：403**
Forbidden
```
{
  "error" : {
    "code" : "403",
    "message" : "X-Auth-Token is invalid in the request",
    "title" : "Forbidden"
  },
  "error_code" : 403,
  "error_msg" : "X-Auth-Token is invalid in the request",
  "title" : "Forbidden"
}
```
**状态码：404**
NotFound
```
{
  "error_code" : "common.01000001",
  "error_msg" : "response status exception, code: 404"
}
```
**状态码：408**
Request Time-out
```
{
  "error_code" : "common.00000408",
  "error_msg" : "timeout exception occurred"
}
```
**状态码：500**
InternalServerError
```
{
  "error_code" : "common.00000500",
  "error_msg" : "internal error"
}
```
#### 状态码
| 状态码 | 描述                  |
|:---|:---|
| 200 | OK                  |
| 400 | BadRequest          |
| 401 | Unauthorized        |
| 403 | Forbidden           |
| 404 | NotFound            |
| 408 | Request Time-out    |
| 500 | InternalServerError |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-fabric/dataartsfabric_03_0028.html)。
