Creating Stack Instances
Function
CreateStackInstance
This API creates multiple stack instances in a specified stack set and returns the stack set operation ID (stack_set_operation_id).
This API uses var_overrides to specify the variable values for creating a stack instance to override variables. If var_overrides are not assigned, the variables recorded in the current stack are used for deployment by default. For details, see the description of the var_overrides.
After the stack set variables are updated through the DeployStackSet API, the overridden variables in the stack instance are not updated and the overridden values are retained.
You can override only the variables recorded in the stack set. If you want to add variables that can be overridden, use the DeployStackSet API to update the variable set recorded in the stack set.
URI
POST /v1/stack-sets/{stack_set_name}/stack-instances
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| stack_set_name | Yes | String | Stack set name. The name is unique within its domain (domain_id) and region. Only letters, digits, underscores (_), and hyphens (-) are allowed. The name is case-sensitive and must start with a letter. Minimum: 1 Maximum: 128 |
Request Parameters
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| Client-Request-Id | Yes | String | Unique request ID. It is specified by a user and is used to locate a request. UUID is recommended. Minimum: 36 Maximum: 128 |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| stack_set_id | No | String | Unique ID of a stack set. It is a UUID generated by RFS when a stack is created. Stack set names are unique only at one specific time, so you can create a stack set named HelloWorld and another stack set with the same name after deleting the first one. For parallel development in a team, users may want to ensure that the stack set they operate is the one created by themselves, not the one with the same name created by other teammates after deleting the previous one. Therefore, they can use this ID for strong matching. RFS ensures that the ID of each stack set is different and does not change with updates. If the stack_set_id value is different from the current stack set ID, 400 is returned. Minimum: 36 Maximum: 36 |
| deployment_targets | Yes | deployment_targets object | Deployment target information. |
| var_overrides | No | var_overrides object | Variables that the user expects to update in the stack instance. Related variables will be overridden in all stack instances specified in this request, and the stack instances will be deployed based on the updated variables. The overwritten variables are permanently recorded in the stack instances and continue to be used in subsequent deployment until they are overridden in the next update. Only the variable set (vars) recorded in the stack set can be overridden. If a variable that does not exist in vars is specified, error code 400 is returned. If you want to add variables that can be overridden, use the DeployStackSet API to update the variable set (vars) recorded in the stack set. After the stack set variable set (vars) is updated through the DeployStackSet API, the overridden variables in the stack instance are not updated and the overridden values are retained. Variable overriding applies only to the variables specified by vars in the stack set, excluding the variables that use default values as defined in the template. If you want to override the variables that use the default values, use the DeployStackSet API to update the vars recorded in the stack set and explicitly define related variables in the vars. Each time a user use the DeployStackSet API to update the vars of the stack set, error code 400 is returned for loss of the overridden variables recorded in the stack instance deployed to any targets. (The current overridden variables are not a subset of the vars of the updated stack set.) In a new update, existing variables cannot be retained. Instead, all existing variables should be overridden. The total length of the overridden vars_body of the stack instance does not exceed 51,200. After variable overriding, the size of the vars_uri file of the stack instance does not exceed 1 MB. For example, the vars_body recorded in the stack set is "key1=value1, key2=value2...", and the new vars_body in the stack instance is "key1=another_value1". The length of the overridden vars_body "key1=another_value1, key2=value2...." cannot exceed 51,200. For example, the file content specified by the vars_uri recorded in the stack set is "key1=value1, key2=value2...", and that of the new vars_uri in the stack instance is "key1=another_value1". The size of the file specified by the overridden vars_body "key1=another_value1, key2=value2...." cannot exceed 1 MB. If var_overrides is not assigned, the variables recorded in the overridden stack instance are not updated. If you have assigned at least one of vars_uri, vars_body, and use_stack_set_vars, the variables will be updated through replacement. The new variables assigned by you override related variables in the specified stack instance. All variable sets declared in vars_body, vars_uri, and use_stack_set_vars must be consistent with those recorded in the stack set. Error code 400 is returned for the following scenarios: variables that do not exist in the stack set are declared, variables that have been recorded in the stack set are not declared, and duplicate variables are declared. Note: |
| operation_preferences | No | operation_preferences object | The user-specified preferences for how to perform a stack set operation. This parameter takes effect only in a specified single operation. If this parameter is not specified, the default operation preferences is that only one stack is deployed at a time and after all stack instances in a region are deployed completely, the next region will be selected randomly for deployment. The default value of failure tolerance count in a region is 0. This parameter can be specified in the following APIs: CreateStackInstance, DeployStackSet, UpdateStackInstance, DeleteStackInstance. |
| call_identity | No | String | This parameter is only supported when the stack set permission model is SERVICE_MANAGED. Specify whether you are acting as an account administrator in the organization's management account or as a delegated administrator in a member account. By default, SELF is specified. Use SELF for stack sets with self-managed permissions. No matter what call identity is specified, the stack set involved in request is always belonging to management account. |
Response Parameters
Status code: 202
| Parameter | Type | Description |
|---|---|---|
| stack_set_operation_id | String | Unique ID of a stack set operation. It is a UUID generated by RFS when a stack set operation is created. Minimum: 36 Maximum: 36 |
Status code: 400
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 401
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 403
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 404
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 429
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. |
| error_msg | String | Response message. |
Status code: 500
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Response code. Minimum: 11 Maximum: 11 |
| error_msg | String | Response message. |
| encoded_authorization_message | String | The message contains information about unauthorized requests. |
| details | Array of Detail objects | Detailed error messages returned by service when permission is denied. |
Example Requests
-
Assign member account information through the array of domain IDs. Stack instances are created in sequential mode among regions.
POST https://{endpoint}/v1/stack-sets/my_hello_world_stack_set/stack-instances { "deployment_targets" : { "regions" : [ "cn-north-7" ], "domain_ids" : [ "6cbcca2a2f114a63841bdbc7a19b7b12", "1e03325ba3cc47b1fdb03f3771bbb4f3" ] }, "operation_preferences" : { "region_concurrency_type" : "SEQUENTIAL" } } -
Assign member account information through the URL signed by domain IDs. Stack instances are created in parallel mode among regions.
POST https://{endpoint}/v1/stack-sets/my_hello_world_stack_set/stack-instances { "deployment_targets" : { "regions" : [ "cn-north-7" ], "domain_ids_uri" : "https://my-obs.obs.cn-north-7.ulanqab.huawei.com/domain_ids.csv", "operation_preferences" : { "region_concurrency_type" : "PARALLEL" } } }
Example Responses
Status code: 202
The request is accepted and processed asynchronously.
{
"stack_set_operation_id" : "fb5e781e-a27d-46e2-9954-242753857a9f"
} Status Codes
| Status Code | Description |
|---|---|
| 202 | The request is accepted and processed asynchronously. |
| 400 | Invalid request. |
| 401 | Authentication failed. |
| 403 | |
| 404 | The stack set does not exist. |
| 429 | Too frequent requests. |
| 500 | Internal server error. |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.