Cree un conjunto de cambios.
Descripción general
Puede crear y ejecutar conjuntos de cambios para actualizar pilas en ejecución. Para obtener más información sobre los conjuntos de cambios, consulte Descripción general.
Límites
Una pila puede contener hasta 20 conjuntos de cambios.
Los conjuntos de cambios solo reflejan las modificaciones de las pilas. No indican si las pilas se actualizaron correctamente.
No es posible usar conjuntos de cambios para comprobar a continuación elementos: si se alcanzó el límite máximo de su cuenta, si se intenta actualizar recursos que no admiten actualización o si su cuenta carece de los permisos obligatorios para modificar recursos. Estos factores pueden provocar errores en la actualización de la pila. Si la actualización falla, Resource Orchestration Service (ROS) intenta revertir los recursos a su estado original.
Este tema proporciona un ejemplo de cómo crear un conjunto de cambios. En este ejemplo, se crea un conjunto de cambios llamado MyChangeSet en la región China (Hangzhou). El conjunto de cambios se usa para modificar el cuerpo de la plantilla de una pila a {"ROSTemplateFormatVersion":"2015-09-01"}. El ID de la pila es 4a6c9851-3b0f-4f5f-b4ca-a14bf691****.
Depuración
Parámetros de solicitud
| Parámetro | Tipo | Obligatorio | Ejemplo | Descripción |
| Action | String | Sí | CreateChangeSet | La operación que desea ejecutar. Establezca el valor en CreateChangeSet. |
| StackId | String | No | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | El ID de la pila para la cual desea crear el conjunto de cambios. ROS compara la información de la pila con los datos que usted especifique, como una plantilla modificada o un valor de parámetro cambiado, para generar el conjunto de cambios. Nota Este parámetro solo surte efecto cuando el parámetro ChangeSetType se establece en UPDATE o IMPORT. |
| StackPolicyURL | String | No | oss://ros/stack-policy/demo | La URL del archivo que contiene la política de la pila. La URL debe apuntar a una política ubicada en un servidor web HTTP o HTTPS, o en un bucket de Object Storage Service (OSS), por ejemplo, oss://ros/stack-policy/demo u oss://ros/stack-policy/demo?RegionId=cn-hangzhou. El archivo de política puede tener una longitud máxima de 16,384 bytes. Nota Si no especifica el ID de región del bucket de OSS, se usa el valor del parámetro RegionId. Puede especificar el parámetro StackPolicyBody o StackPolicyURL. La URL puede tener una longitud máxima de 1,350 bytes. Si establece el parámetro ChangeSetType en CREATE, puede especificar el parámetro StackPolicyBody o StackPolicyURL. Si establece el parámetro ChangeSetType en UPDATE, solo puede especificar uno de a continuación parámetros:
|
| StackPolicyBody | String | No | {"Statement":[{"Effect":"Allow","Action":"Update:*","Principal":"*","Resource":"*"}]} | La estructura que contiene el cuerpo de la política de la pila. El cuerpo de la política debe tener una longitud de 1 a 16,384 bytes. Si establece el parámetro ChangeSetType en CREATE, puede especificar el parámetro StackPolicyBody o StackPolicyURL. Si establece el parámetro ChangeSetType en UPDATE, solo puede especificar uno de a continuación parámetros:
|
| StackName | String | No | MyStack | El nombre de la pila para la cual desea crear el conjunto de cambios. El nombre puede tener una longitud máxima de 255 caracteres y contener dígitos, letras, guiones (-) y guiones bajos (_). Debe comenzar con un dígito o una letra. Nota Este parámetro solo surte efecto cuando el parámetro ChangeSetType se establece en CREATE o IMPORT. |
| UsePreviousParameters | Boolean | No | true | Especifica si se deben usar los valores indicados en la solicitud anterior para los parámetros que no se especifiquen en la solicitud actual. Valor predeterminado: false. Valores válidos:
Nota Este parámetro solo surte efecto cuando el parámetro ChangeSetType se establece en UPDATE o IMPORT. |
| ChangeSetType | String | No | UPDATE | El tipo de conjunto de cambios. Valor predeterminado: UPDATE. Valores válidos:
Si cree un conjunto de cambios para una nueva pila, ROS genera un ID único para dicha pila. La pila permanece en el estado REVIEW_IN_PROGRESS hasta que ejecute el conjunto de cambios. No puede usar el tipo UPDATE para crear un conjunto de cambios para una pila nueva, ni el tipo CREATE para una pila existente. |
| Description | String | No | It is a demo. | La descripción del conjunto de cambios. Puede tener una longitud máxima de 1,024 bytes. |
| RegionId | String | Sí | cn-hangzhou | El ID de región del conjunto de cambios. Puede llamar a la operación DescribeRegions para consultar la lista de regiones más reciente. |
| ClientToken | String | No | 123e4567-e89b-12d3-a456-42665544**** | El token de cliente que se usa para garantizar la idempotencia de la solicitud. Puede usar el cliente para generar el valor, pero debe asegurarse de que sea único entre distintas solicitudes. El token puede tener una longitud máxima de 64 caracteres y contener letras, dígitos, guiones (-) y guiones bajos (_). Para obtener más información, consulte Garantizar la idempotencia. |
| TemplateURL | String | No | oss://ros/template/demo | La URL del archivo que contiene el cuerpo de la plantilla. La URL debe apuntar a una plantilla ubicada en un servidor web HTTP o HTTPS, o en un bucket de OSS, por ejemplo, oss://ros/template/demo u oss://ros/template/demo?RegionId=cn-hangzhou. El cuerpo de la plantilla puede tener una longitud máxima de 524,288 bytes. Nota Si no especifica el ID de región del bucket de OSS, se usa el valor del parámetro RegionId. Solo puede especificar uno de a continuación parámetros: TemplateBody, TemplateURL y TemplateId. La URL puede tener una longitud máxima de 1,024 bytes. |
| StackPolicyDuringUpdateURL | String | No | oss://ros/stack-policy/demo | La URL del archivo que contiene la política de anulación temporal de la pila. La URL debe apuntar a una política ubicada en un servidor web HTTP o HTTPS, o en un bucket de OSS, por ejemplo, oss://ros/stack-policy/demo u oss://ros/stack-policy/demo?RegionId=cn-hangzhou. El archivo de política puede tener una longitud máxima de 16,384 bytes. Nota Si no especifica el ID de región del bucket de OSS, se usa el valor del parámetro RegionId. La URL puede tener una longitud máxima de 1,350 bytes. Si desea actualizar recursos protegidos, especifique una política de anulación temporal para dichos recursos durante la actualización. Si no especifica la política, se usa la política existente asociada a la pila. Este parámetro solo surte efecto cuando el parámetro ChangeSetType se establece en UPDATE. Solo puede especificar uno de a continuación parámetros:
|
| TemplateBody | String | No | {"ROSTemplateFormatVersion":"2015-09-01"} | La estructura que contiene el cuerpo de la plantilla. El cuerpo de la plantilla debe tener una longitud de 1 a 524,288 bytes. Si la longitud del cuerpo de la plantilla excede el límite máximo, le recomendamos agregar parámetros al cuerpo de la solicitud HTTP POST para evitar fallos causados por URL excesivamente largas. Solo puede especificar uno de a continuación parámetros: TemplateBody, TemplateURL y TemplateId. |
| TimeoutInMinutes | Long | No | 12 | El tiempo que puede transcurrir antes de que la pila entre en el estado CREATE_FAILED o UPDATE_FAILED. Si establece el parámetro ChangeSetType en CREATE, este parámetro es obligatorio. Si lo establece en UPDATE, el parámetro es opcional.
|
| DisableRollback | Boolean | No | false | Especifica si se debe deshabilitar la reversión cuando falla la creación de la pila. Valor predeterminado: false. Valores válidos:
Nota Este parámetro solo surte efecto cuando el parámetro ChangeSetType se establece en CREATE o IMPORT. |
| ChangeSetName | String | Sí | MyChangeSet | El nombre del conjunto de cambios. El nombre puede tener una longitud máxima de 255 caracteres y contener dígitos, letras, guiones (-) y guiones bajos (_). Debe comenzar con un dígito o una letra. Nota Asegúrese de que el nombre sea único entre todos los conjuntos de cambios asociados a la pila especificada. |
| StackPolicyDuringUpdateBody | String | No | {"Statement":[{"Effect":"Allow","Action":"Update:*","Principal":"*","Resource":"*"}]} | La estructura que contiene el cuerpo de la política de anulación temporal de la pila. El cuerpo de la política debe tener una longitud de 1 a 16,384 bytes. Si desea actualizar recursos protegidos, especifique una política de anulación temporal para dichos recursos durante la actualización. Si no especifica la política, se usa la política de pila existente asociada a la pila. Este parámetro solo surte efecto cuando el parámetro ChangeSetType se establece en UPDATE. Solo puede especificar uno de a continuación parámetros:
|
| RamRoleName | String | No | test-role | El nombre del rol de RAM. ROS asume el rol de RAM para crear la pila y usa las credenciales del rol para llamar a las API de los servicios de Alibaba Cloud. ROS asume el rol de RAM para realizar operaciones en la pila. Si tiene permisos para operar en la pila pero no para usar el rol de RAM, ROS asumirá el rol de todos modos. Debe asegurarse de otorgar al rol de RAM únicamente los privilegios mínimos necesarios. Si no especifica este parámetro, ROS asume el rol de RAM existente asociado a la pila. Si no hay roles de RAM disponibles, ROS usa una credencial temporal generada a partir de las credenciales de su cuenta. El nombre del rol de RAM puede tener una longitud máxima de 64 bytes. |
| ReplacementOption | String | No | Disabled | Especifica si se debe habilitar la actualización por reemplazo si se modifica una propiedad de recurso que no admite cambios directos. En una modificación simple, el ID físico del recurso permanece sin cambios. En una actualización por reemplazo, se elimina el recurso existente, se crea uno nuevo y cambia el ID físico del recurso. Valor predeterminado: Disabled. Valores válidos:
Nota Las modificaciones tienen mayor prioridad que las actualizaciones por reemplazo. Este parámetro solo surte efecto cuando el parámetro ChangeSetType se establece en UPDATE. |
| TemplateId | String | No | 5ecd1e10-b0e9-4389-a565-e4c15efc**** | El ID de la plantilla. Este parámetro aplica tanto a plantillas compartidas como privadas. Solo puede especificar uno de a continuación parámetros: TemplateBody, TemplateURL y TemplateId. |
| TemplateVersion | String | No | v1 | La versión de la plantilla. Nota Este parámetro solo surte efecto cuando se especifica el parámetro TemplateId. |
| Parameters.N.ParameterKey | String | Sí | Amount | El nombre del parámetro N definido en la plantilla. Si no especifica el nombre y el valor de un parámetro, ROS usa el nombre y el valor predeterminados definidos en la plantilla. Valor máximo de N: 200. Nota El parámetro Parameters es opcional. Si especifica Parameters, debe especificar Parameters.N.ParameterKey. |
| Parameters.N.ParameterValue | String | Sí | 12 | El valor del parámetro N definido en la plantilla. Valor máximo de N: 200. Nota El parámetro Parameters es opcional. Si especifica Parameters, debe especificar Parameters.N.ParameterValue. |
| NotificationURLs.N | String | No | http://example.com/ros-notify | La URL de devolución de llamada que se usa para recibir el evento de pila N. Valores válidos:
Valor máximo de N: 5. Cuando cambia el estado de una pila, ROS envía una notificación de evento a la URL especificada. Si la reversión está habilitada para la pila, se envían notificaciones cuando la pila está en estado CREATE_ROLLBACK o ROLLBACK, pero no se envían si está en estado CREATE_FAILED, UPDATE_FAILED o IN_PROGRESS. ROS envía notificaciones de eventos independientemente de si configura la sección Outputs. A continuación código de muestra proporciona un ejemplo del contenido de una notificación de evento: |
| ResourcesToImport.N.ResourceIdentifier | String | Sí | {"VpcId": "vpc-2zevx9ios******"} | La asignación de pares clave-valor entre cadenas. El valor es una cadena JSON que identifica el recurso N que se va a importar. Una clave es un identificador para un recurso y un valor es una asignación de datos a dicha clave. Por ejemplo, VpcId es una clave que especifica el ID de una nube privada virtual (VPC), y Nota Este parámetro solo surte efecto cuando el parámetro ChangeSetType se establece en IMPORT. El parámetro ResourcesToImport es opcional. Si especifica ResourcesToImport, debe especificar ResourcesToImport.N.ResourceIdentifier. |
| ResourcesToImport.N.LogicalResourceId | String | Sí | Vpc | El ID lógico del recurso N que desea importar. El ID lógico especifica el nombre de un recurso definido en la plantilla. Nota Este parámetro solo surte efecto cuando el parámetro ChangeSetType se establece en IMPORT. El parámetro ResourcesToImport es opcional. Si especifica ResourcesToImport, debe especificar ResourcesToImport.N.LogicalResourceId. |
| ResourcesToImport.N.ResourceType | String | Sí | ALIYUN::ECS::VPC | El tipo de recurso N que desea importar. El tipo de recurso debe coincidir con el tipo definido en la plantilla. Nota Este parámetro solo surte efecto cuando el parámetro ChangeSetType se establece en IMPORT. El parámetro ResourcesToImport es opcional. Si especifica ResourcesToImport, debe especificar ResourcesToImport.N.ResourceType. |
| TemplateScratchId | String | No | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | El ID de la plantilla de escenario. |
| Parallelism | Long | No | 1 | El número máximo de operaciones simultáneas que se pueden ejecutar en los recursos. De forma predeterminada, este parámetro está vacío. Puede establecerlo en un entero mayor o igual a 0. Si le asigna un valor específico, ROS asocia dicho valor con la pila, lo cual puede afectar a operaciones posteriores. Este parámetro solo surte efecto cuando el parámetro ChangeSetType se establece en CREATE o UPDATE. Valores válidos:
|
Para obtener más información sobre los parámetros de solicitud comunes, consulte Parámetros comunes.
Parámetros de respuesta
|
Parámetro |
Tipo |
Ejemplo |
Descripción |
|
ChangeSetId |
String |
e85abe0c-6528-43fb-ae93-fdf8de22**** |
El ID del conjunto de cambios. |
|
RequestId |
String |
B288A0BE-D927-4888-B0F7-B35EF84B6E6F |
El ID de la solicitud. |
|
StackId |
String |
4a6c9851-3b0f-4f5f-b4ca-a14bf691**** |
El ID de la pila. |
Ejemplos
Solicitudes de muestra
http(s)://ros.aliyuncs.com/?Action=CreateChangeSet
&RegionId=cn-hangzhou
&ChangeSetName=MyChangeSet
&Parameters=[{"ParameterKey":"Amount","ParameterValue":"12"}]
&ResourcesToImport=[{"ResourceIdentifier":"{\"VpcId\": \"vpc-2zevx9ios******\"}","LogicalResourceId":"Vpc","ResourceType":"ALIYUN::ECS::VPC"}]
&<Common request parameters>
Respuestas exitosas de muestra
Formato XML
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateChangeSetResponse>
<ChangeSetId>e85abe0c-6528-43fb-ae93-fdf8de22****</ChangeSetId>
<StackId>4a6c9851-3b0f-4f5f-b4ca-a14bf691****</StackId>
<RequestId>B288A0BE-D927-4888-B0F7-B35EF84B6E6F</RequestId>
</CreateChangeSetResponse>
Formato JSON
HTTP/1.1 200 OK
Content-Type:application/json
{
"ChangeSetId" : "e85abe0c-6528-43fb-ae93-fdf8de22****",
"StackId" : "4a6c9851-3b0f-4f5f-b4ca-a14bf691****",
"RequestId" : "B288A0BE-D927-4888-B0F7-B35EF84B6E6F"
}
Códigos de error
Para obtener una lista de códigos de error, consulte Códigos de error del servicio.
|
Código de estado HTTP |
Código de error |
Mensaje de error |
Descripción |
|
400 |
CircularDependency |
Circular Dependency Found: {reason}. |
El mensaje de error devuelto porque la plantilla contiene una dependencia circular. reason indica la causa del error. |
|
400 |
InvalidSchema |
{reason}. |
El mensaje de error devuelto porque el formato de la plantilla no es válido. reason indica la causa del error. |
|
400 |
InvalidTemplateAttribute |
The Referenced Attribute ({resource} {name}) is incorrect. |
El mensaje de error devuelto porque la propiedad de recurso referenciada en la sección Outputs de la plantilla no es válida. resource indica el nombre del recurso. name indica el nombre de la propiedad. |
|
400 |
InvalidTemplatePropertyType |
The specified value type of ({resource} {section}) is incorrect. |
El mensaje de error devuelto porque el tipo de la propiedad de recurso definida en una sección de la plantilla no es válido. resource indica el nombre del recurso. section indica el nombre de la sección. |
|
400 |
InvalidTemplateReference |
The specified reference "{name}" (in {referencer}) is incorrect. |
El mensaje de error devuelto porque la plantilla contiene una referencia no válida. name indica el nombre de la referencia. referencer indica el nombre del elemento que hace la referencia. |
|
400 |
InvalidTemplateSection |
The template section is invalid: {section}. |
El mensaje de error devuelto porque la plantilla contiene una sección no válida. section indica el nombre de la sección. |
|
400 |
InvalidTemplateVersion |
The template version is invalid: {reason}. |
El mensaje de error devuelto porque la versión de la plantilla no es válida. reason indica la causa del error. |
|
400 |
StackPolicyValidationFailed |
Action denied by stack policy: {reason}. |
El mensaje de error devuelto porque la operación para crear el conjunto de cambios no pasó la validación según la política de la pila. reason indica la causa del error. |
|
400 |
StackValidationFailed |
{reason}. |
El mensaje de error devuelto porque falló la validación de la pila. reason indica la causa del error. |
|
400 |
UnknownUserParameter |
The Parameter ({name}) was not defined in template. |
El mensaje de error devuelto porque el parámetro especificado no está definido en la plantilla. name indica el nombre del parámetro. |
|
400 |
UserParameterMissing |
The Parameter {name} was not provided. |
El mensaje de error devuelto porque no se especificó ningún valor para el parámetro definido en la plantilla. name indica el nombre del parámetro. |
|
404 |
StackNotFound |
The Stack ({name}) could not be found. |
El mensaje de error devuelto porque la pila no existe. name indica el nombre o ID de la pila. |
|
409 |
ActionInProgress |
Stack {name} already has an action ({action}) in progress. |
El mensaje de error devuelto porque la pila ya tiene una operación en curso. name indica el nombre o ID de la pila. action indica la operación de cambio. |
|
409 |
ChangeSetExists |
The ChangeSet ({name}) of Stack ({stack}) already exists. |
El mensaje de error devuelto porque ya existe un conjunto de cambios con el mismo nombre. name indica el nombre del conjunto de cambios. stack indica el nombre o ID de la pila asociada al conjunto de cambios. |
|
409 |
StackExists |
The Stack ({name}) already exists. |
El mensaje de error devuelto porque ya existe una pila con el mismo nombre. name indica el nombre de la pila. |
|
404 |
TemplateNotFound |
The Template ({ ID }) could not be found. |
El mensaje de error devuelto porque la plantilla no existe. ID indica el ID de la plantilla. |
|
404 |
TemplateNotFound |
The Template { ID } with version { version } could not be found. |
El mensaje de error devuelto porque la plantilla o la versión de la plantilla no existe. ID indica el ID de la plantilla. version indica la versión de la plantilla. |