Obtiene una vista previa de la información de una pila que desea crear a partir de una plantilla específica. Esta operación le permite comprobar los recursos definidos en la plantilla.
Este tema proporciona un ejemplo sobre cómo crear una pila llamada MyStack en la región China (Hangzhou) y obtener una vista previa de su información. En este ejemplo, el cuerpo de la plantilla de la pila es {"ROSTemplateFormatVersion":"2015-09-01"}.
Depuración
Parámetros de solicitud
| Parámetro | Tipo | Obligatorio | Ejemplo | Descripción |
| Action | String | Sí | PreviewStack | La operación que se va a ejecutar. Establezca el valor en PreviewStack. |
| DisableRollback | Boolean | No | false | Especifica si se debe deshabilitar la reversión de los recursos cuando falla la creación de la pila. Valor predeterminado: false. Valores válidos:
|
| TimeoutInMinutes | Long | No | 60 | El tiempo de espera permitido para crear la pila. Unidad: minutos. Valor predeterminado: 60. |
| TemplateBody | String | No | {"ROSTemplateFormatVersion":"2015-09-01"} | La estructura del cuerpo de la plantilla. El cuerpo de la plantilla debe tener una longitud de entre 1 y 524,288 bytes. Si la longitud del cuerpo de la plantilla excede el límite superior, se recomienda agregar parámetros al cuerpo de la solicitud HTTP POST para evitar fallos en la solicitud causados por URL excesivamente largas. Nota Debe especificar solo uno de los siguientes parámetros: TemplateBody, TemplateURL, TemplateId y TemplateScratchId. |
| StackPolicyURL | String | No | oss://ros-stack-policy/demo | La URL del archivo que contiene la directiva de la pila. La URL debe apuntar a una directiva ubicada en un servidor web HTTP o HTTPS, o en un bucket de Object Storage Service (OSS), como oss://ros/stack-policy/demo u oss://ros/stack-policy/demo?RegionId=cn-hangzhou. El archivo de directiva puede tener una longitud máxima de 16,384 bytes. Si no especifica el ID de región del bucket de OSS, se utiliza el valor del parámetro RegionId. Nota Solo puede especificar uno de los parámetros StackPolicyBody y StackPolicyURL. La URL puede tener una longitud máxima de 1,350 bytes. |
| RegionId | String | Sí | cn-hangzhou | El ID de región de la pila. Llame a la operación DescribeRegions para consultar la lista de regiones más reciente. |
| StackPolicyBody | String | No | {"Statement": [{"Action": "Update:*", "Resource": "*", "Effect": "Allow", "Principal": "*"}]} | La estructura que contiene el cuerpo de la directiva de la pila. El cuerpo de la directiva de la pila debe tener una longitud de entre 1 y 16,384 bytes. Nota Solo puede especificar uno de los parámetros StackPolicyBody y StackPolicyURL. |
| StackName | String | No | MyStack | El nombre de la pila. Use este parámetro para obtener una vista previa de la pila que desea crear. 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 Debe especificar solo uno de los parámetros StackName y StackId. |
| ClientToken | String | No | 123e4567-e89b-12d3-a456-42665544**** | El token de cliente que se usa para garantizar la idempotencia de la solicitud. Use el cliente para generar el token, pero asegúrese de que sea único entre las 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, como oss://ros/stack-policy/demo u oss://ros/stack-policy/demo?RegionId=cn-hangzhou. El cuerpo de la plantilla puede tener una longitud máxima de 524,288 bytes. Si no especifica el ID de región del bucket de OSS, se utiliza el valor del parámetro RegionId. Nota Debe especificar solo uno de los siguientes parámetros: TemplateBody, TemplateURL, TemplateId y TemplateScratchId. |
| TemplateId | String | No | 5ecd1e10-b0e9-4389-a565-e4c15efc**** | El ID de la plantilla. Este parámetro aplica tanto a plantillas compartidas como privadas. Nota Debe especificar solo uno de los siguientes parámetros: TemplateBody, TemplateURL, TemplateId y TemplateScratchId. |
| TemplateVersion | String | No | v1 | La versión de la plantilla. Este parámetro solo surte efecto cuando se especifica el parámetro TemplateId. |
| Parameters.N.ParameterKey | String | Sí | ALIYUN::AccountId | El nombre del parámetro N. Si no especifica el nombre y el valor de un parámetro, Resource Orchestration Service (ROS) utiliza el nombre y el valor predeterminados definidos en la plantilla. Valor máximo de N: 200. Nota Si especifica Parameters, debe especificar Parameters.N.ParameterKey. |
| Parameters.N.ParameterValue | String | Sí | 151266687691**** | El valor del parámetro N. Valor máximo de N: 200. Nota Si especifica Parameters, debe especificar Parameters.N.ParameterValue. |
| Parallelism | Long | No | 1 | El número máximo de operaciones simultáneas que se pueden ejecutar en los recursos. Este parámetro solo surte efecto para pilas de Terraform. De forma predeterminada, este parámetro está vacío. Establézcalo en un número entero mayor o igual a 0. Nota Si establece este parámetro en un número entero mayor que 0, se utiliza dicho valor. Si lo establece en 0 o lo deja vacío, se utiliza el valor predeterminado de Terraform. En la mayoría de los casos, el valor predeterminado de Terraform es 10. |
| TemplateScratchId | String | No | ts-aa9c62feab844a6b**** | El ID del escenario. Para obtener más información sobre cómo consultar los ID de los escenarios, consulte ListTemplateScratches. Nota Debe especificar solo uno de los siguientes parámetros: TemplateBody, TemplateURL, TemplateId y TemplateScratchId. |
| TemplateScratchRegionId | String | No | cn-hangzhou | El ID de región del escenario. El valor predeterminado coincide con el valor del parámetro RegionId. Llame a la operación DescribeRegions para consultar la lista de regiones más reciente. |
| StackId | String | No | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | El ID de la pila. Use este parámetro para obtener una vista previa de una pila que desea actualizar. Nota
|
| EnablePreConfig | Boolean | No | false | Especifica si se deben consultar los parámetros que se utilizarán en la comprobación previa de cumplimiento. Valor predeterminado: false. 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 |
| RequestId | String | B288A0BE-D927-4888-B0F7-B35EF84B6E6F | El ID de la solicitud. |
| Stack | Object | La información de la pila cuya vista previa se obtuvo. | |
| TemplateDescription | String | One ECS instance. | La descripción de la plantilla. |
| Parameters | Array of Parameter | Los parámetros de la pila. | |
| ParameterKey | String | ALIYUN::AccountId | El nombre del parámetro. |
| ParameterValue | String | 151266687691**** | El valor del parámetro. |
| Description | String | One ECS instance. | La descripción de la pila. |
| DisableRollback | Boolean | false | Indica si la reversión de los recursos está deshabilitada cuando falla la creación de la pila. |
| StackName | String | MyStack | El nombre de la pila. |
| TimeoutInMinutes | Integer | 60 | El tiempo de espera permitido para crear la pila. Unidad: minutos. |
| StackPolicyBody | Map | La estructura que contiene el cuerpo de la directiva de la pila. | |
| Resources | Array of Resource | Los recursos en la pila. | |
| LogicalResourceId | String | WebServer | El ID lógico del recurso. |
| AcsResourceType | String | ACS::ECS::Instance | El tipo de recurso que pertenece a un servicio de Alibaba Cloud. |
| ResourceType | String | ALIYUN::ECS::Instance | El tipo del recurso. |
| Description | String | ECS instance. | La descripción del recurso. |
| Stack | Map | La información sobre la pila anidada. La estructura de datos del valor es idéntica a la de toda la respuesta. | |
| RequiredBy | Array of String | ["Resource1", "Resource2"] | Los recursos de los cuales depende la pila. |
| Properties | Map | Las propiedades del recurso. | |
| Action | String | Add | La acción que se ejecuta en los recursos. Valores válidos:
|
| Replacement | String | False | Indica si se realiza una actualización por reemplazo en la plantilla. Valores válidos:
Nota Este parámetro solo se devuelve si el parámetro Action está establecido en Modify. |
| PhysicalResourceId | String | i-a1b2c3*** | El ID físico del recurso. Este parámetro solo se devuelve si el parámetro Action está establecido en Modify o Remove. |
| RegionId | String | cn-hangzhou | El ID de región de la pila. |
| Log | Object | El registro generado durante la ejecución de la pila. | |
| TerraformLogs | Array of TerraformLog | El registro generado durante la ejecución de una pila de Terraform. Este parámetro solo se devuelve si la pila es de tipo Terraform. Nota Use este parámetro para obtener una vista previa de los registros de una pila de Terraform. | |
| Command | String | apply | El nombre del comando de Terraform. Valores válidos:
Para obtener más información sobre los comandos de Terraform, consulte Funciones básicas de la CLI. |
| Stream | String | stdout | El flujo de salida. Valores válidos:
|
| Content | String | Apply complete! Resources: 42 added, 0 changed, 0 destroyed. | El contenido del flujo de salida devuelto tras la ejecución del comando. |
Ejemplos
Solicitudes de muestra
http(s)://ros.aliyuncs.com/?Action=PreviewStack
&TemplateBody={"ROSTemplateFormatVersion":"2015-09-01"}
&StackName=MyStack
&RegionId=cn-hangzhou
&<Common request parameters>
Respuestas de éxito de muestra
Formato XML
HTTP/1.1 200 OK
Content-Type:application/xml
<PreviewStackResponse>
<RequestId>B288A0BE-D927-4888-B0F7-B35EF84B6E6F</RequestId>
<Stack>
<TemplateDescription>One ECS instance.</TemplateDescription>
<Parameters>
<ParameterKey>ALIYUN::AccountId</ParameterKey>
<ParameterValue>151266687691****</ParameterValue>
</Parameters>
<Description>One ECS instance.</Description>
<DisableRollback>false</DisableRollback>
<StackName>MyStack</StackName>
<TimeoutInMinutes>60</TimeoutInMinutes>
<Resources>
<LogicalResourceId>WebServer</LogicalResourceId>
<AcsResourceType>ACS::ECS::Instance</AcsResourceType>
<ResourceType>ALIYUN::ECS::Instance</ResourceType>
<Description>ECS instance.</Description>
<RequiredBy>["Resource1", "Resource2"]</RequiredBy>
<Action>Add</Action>
<Replacement>False</Replacement>
</Resources>
<RegionId>cn-hangzhou</RegionId>
<Log>
<TerraformLogs>
<Command>apply</Command>
<Stream>stdout</Stream>
<Content>Apply complete! Resources: 42 added, 0 changed, 0 destroyed.</Content>
</TerraformLogs>
</Log>
</Stack>
</PreviewStackResponse>
Formato JSON
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "B288A0BE-D927-4888-B0F7-B35EF84B6E6F",
"Stack" : {
"TemplateDescription" : "One ECS instance.",
"Parameters" : {
"ParameterKey" : "ALIYUN::AccountId",
"ParameterValue" : "151266687691****"
},
"Description" : "One ECS instance.",
"DisableRollback" : false,
"StackName" : "MyStack",
"TimeoutInMinutes" : 60,
"Resources" : {
"LogicalResourceId" : "WebServer",
"AcsResourceType" : "ACS::ECS::Instance",
"ResourceType" : "ALIYUN::ECS::Instance",
"Description" : "ECS instance.",
"RequiredBy" : "[\"Resource1\", \"Resource2\"]",
"Action" : "Add",
"Replacement" : "False"
},
"RegionId" : "cn-hangzhou",
"Log" : {
"TerraformLogs" : {
"Command" : "apply",
"Stream" : "stdout",
"Content" : "Apply complete! Resources: 42 added, 0 changed, 0 destroyed."
}
}
}
}
Códigos de error
Para obtener una lista de los códigos de error, consulte Códigos de error del servicio.
Para obtener más información sobre los errores comunes a todas las operaciones, consulte Códigos de error comunes.
|
Código de estado HTTP |
Código de error |
Mensaje de error |
Descripción |
|
400 |
CircularDependency |
Circular Dependency Found: {reason}. |
El mensaje de error indica que la plantilla contiene una dependencia circular. reason señala la causa del error. |
|
400 |
InvalidSchema |
{reason}. |
El mensaje de error indica que el formato de la plantilla no es válido. reason señala la causa del error. |
|
400 |
InvalidTemplateAttribute |
The Referenced Attribute ({resource} {name}) is incorrect. |
El mensaje de error indica que la propiedad del recurso referenciada en la sección Outputs de la plantilla no es válida. resource representa el nombre del recurso. name representa el nombre de la propiedad. |
|
400 |
InvalidTemplatePropertyType |
The specified value type of ({resource} {section}) is incorrect. |
El mensaje de error indica que el tipo de la propiedad del recurso definido en una sección de la plantilla no es válido. resource representa el nombre del recurso. section representa el nombre de la sección. |
|
400 |
InvalidTemplateReference |
The specified reference "{name}" (in {referencer}) is incorrect. |
El mensaje de error indica que la plantilla contiene una referencia no válida. name representa el nombre de la referencia. referencer representa el nombre del elemento que hace la referencia. |
|
400 |
InvalidTemplateSection |
The template section is invalid: {section}. |
El mensaje de error indica que la plantilla contiene una sección no válida. section representa el nombre de la sección. |
|
400 |
InvalidTemplateVersion |
The template version is invalid: {reason}. |
El mensaje de error indica que la versión de la plantilla no es válida. reason señala la causa del error. |
|
400 |
StackValidationFailed |
{reason}. |
El mensaje de error indica que falló la validación de la pila. reason señala la causa del error. |
|
400 |
UnknownUserParameter |
The Parameter ({name}) was not defined in template. |
El mensaje de error indica que el parámetro especificado no está definido en la plantilla. name representa el nombre del parámetro. |
|
400 |
UserParameterMissing |
The Parameter {name} was not provided. |
El mensaje de error indica que no se especificó ningún valor para el parámetro definido en la plantilla. name representa el nombre del parámetro. |
|
409 |
StackExists |
The Stack ({name}) already exists. |
El mensaje de error indica que ya existe una pila con el mismo nombre. name representa el nombre de la pila. |
|
404 |
TemplateNotFound |
The Template ({ ID }) could not be found. |
El mensaje de error indica que la plantilla no existe. ID representa el ID de la plantilla. |
|
404 |
TemplateNotFound |
The Template { ID } with version { version } could not be found. |
El mensaje de error indica que la plantilla o su versión no existen. ID representa el ID de la plantilla. version representa la versión de la plantilla. |