Validación de una plantilla - AWS CloudFormation

Validación de una plantilla

Para comprobar si hay errores de sintaxis en el archivo de plantilla, puede usar el comando aws cloudformation validate-template.

nota

El comando aws cloudformation validate-template está diseñado para comprobar únicamente la sintaxis de la plantilla. No garantiza que los valores de propiedad que ha especificado para un recurso sean válidos para ese recurso. Tampoco determina la cantidad de recursos que existirán cuando se cree la pila.

Para comprobar la validez operativa, debe intentar crear la pila. No hay entorno aislado ni área de pruebas para pilas de AWS CloudFormation, por lo que se le cobrará por los recursos que cree durante las pruebas.

Durante la validación, AWS CloudFormation comprueba primero si la plantilla es un JSON válido. Si no lo es, CloudFormation comprueba si la plantilla es un YAML válido. Si ambas comprobaciones fallan, CloudFormation devuelve un error de validación de plantilla. Puede validar plantillas localmente mediante el parámetro --template-body o de forma remota con el parámetro --template-url.

Plantilla válida

En el siguiente ejemplo, se pasa el parámetro --template-url para validar una plantilla en una ubicación remota:

aws cloudformation validate-template --template-url https://s3.amazonaws.com/cloudformation-templates-us-east-1/S3_Bucket.template

El valor siguiente es el resultado del comando anterior.

{
    "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket.
You will be billed for the AWS resources used if you create a stack from this template.",
    "Parameters": [],
    "Capabilities": []
}

El resultado esperado es un mensaje no de error, con información sobre todos los parámetros que se enumeran.

Error de validación

Esta sección devuelve un error de validación cuando se ejecuta el comando aws cloudformation validate-template.

En el siguiente ejemplo, se pasa el parámetro --template-body para validar una plantilla en una ubicación local.

aws cloudformation validate-template --template-body file:///home/local/test/sampletemplate.json

El valor siguiente es el resultado del comando anterior.

{
    "ResponseMetadata": {
        "RequestId": "4ae33ec0-1988-11e3-818b-e15a6df955cd"
    },
    "Errors": [
        {
            "Message": "Template format error: JSON not well-formed. (line 11, column 8)",
            "Code": "ValidationError",
            "Type": "Sender"
        }
    ],
    "Capabilities": [],
    "Parameters": []
}
A client error (ValidationError) occurred: Template format error: JSON not well-formed. (line 11, column 8)

El resultado esperado es un mensaje de error, con información sobre todos los errores que se enumeran.