Referencia de propiedades de configuración de AWS CloudFormation
Al crear una canalización de CodePipeline, agrega una acción Deploy
a la canalización con AWS CloudFormation como proveedor. A continuación, debe especificar qué acción de AWS CloudFormation invoca la canalización y la configuración de la acción. Este tema describe las propiedades de configuración de AWS CloudFormation. Para especificar propiedades, puede utilizar la consola de CodePipeline o crear un objeto JSON a fin de usarlo para las plantillas de la AWS CLI, la API de CodePipeline o AWS CloudFormation.
Propiedades de configuración (consola)
La consola
nota
Al crear una canalización, puede especificar solo los modos de acción Create or update a stack (Crear o actualizar una pila) o Create or replace a change set (Crear o reemplazar un conjunto de cambios). Además, las propiedades de la sección Advanced (Avanzadas) solo están disponibles al editar una canalización.
- Action mode (Modo de acción)
-
La acción de AWS CloudFormation que CodePipeline invoca al procesar la fase asociada. Elija uno de los siguientes modos de acción:
-
Create or replace a change set (Crear o reemplazar un conjunto de cambios) crea el conjunto de cambios si no existe, basándose en el nombre de la pila y la plantilla que envíe. Si el conjunto de cambios ya existe, AWS CloudFormation lo elimina y luego crea otro nuevo.
-
Create or update a stack (Crear o reemplazar una pila) crea la pila si la pila especificada no existe. Si la pila existe, AWS CloudFormation lo actualiza. Utilice esta acción para actualizar pilas existentes. CodePipeline no sustituirá la pila.
-
Delete a stack (Eliminar una pila) elimina una pila. Si especifica una pila que no existe, la acción se realiza de forma satisfactoria sin eliminar una pila.
-
Execute a change set (Ejecutar un conjunto de cambios) ejecuta un conjunto de cambios.
-
Replace a failed stack (Reemplazar una pila con errores) crea la pila si la pila especificada no existe. Si la pila existe y está en un estado de error (notificado como
ROLLBACK_COMPLETE
,ROLLBACK_FAILED
,CREATE_FAILED
,DELETE_FAILED
oUPDATE_ROLLBACK_FAILED
), AWS CloudFormation elimina la pila y luego crea otra nueva. Si la pila no está en un estado de error, AWS CloudFormation lo actualiza. Utilice esta acción para sustituir pilas con error sin recuperarlos ni solucionar sus problemas. Por lo general, debería elegir este modo para las pruebas.
-
- Nombre de pila
-
El nombre que se asocia a una pila existente o a una pila que desea crear. El nombre debe ser único en la región AWS en la que está creando la pila.
nota
El nombre de una pila solo puede contener caracteres alfanuméricos (con distinción de mayúsculas y minúsculas) y guiones. Debe comenzar por una letra y no puede tener más de 128 caracteres.
- Cambiar nombre de conjunto
-
El nombre de un conjunto de cambios existentes o un nuevo conjunto de cambios que desee crear para la pila especificada.
- Plantilla
-
La ubicación de un archivo de plantilla de AWS CloudFormation, que sigue el formato
.ArtifactName
::TemplateFileName
- Template configuration (Configuración de plantilla)
-
La ubicación de un archivo de configuración de plantilla, que sigue el formato
. El archivo de configuración de la plantilla puede contener los valores de los parámetros de la plantilla, una política de pila y etiquetas. Si incluye información confidencial, como contraseñas, restrinja el acceso a este archivo. Para obtener más información, consulte Artefactos de AWS CloudFormation.ArtifactName
::TemplateConfigurationFileName
- Capacidades
-
Respecto a las pilas que contengan determinados recursos, reconozca explícitamente que AWS CloudFormation podría crear o actualizar dichos recursos. Por ejemplo, debe especificar
CAPABILITY_IAM
si la plantilla de su pila contiene recursos de AWS Identity and Access Management (IAM). Para obtener más información, consulte los parámetros CreateStack de solicitud de operación de API.Si dispone de recursos de IAM en su plantilla de pila, debe especificar esta propiedad.
Puede especificar más de una capacidad.
- Nombre del rol
-
El nombre del rol de servicio IAM que AWS CloudFormation asume cuando opera con recursos en la pila especificada.
- Output file name (Nombre de archivo de salida)
-
En la sección Advanced (Avanzados), puede especificar un nombre de archivo de salida, como
CreateStackOutput.json
, que CodePipeline añade al artefacto de salida después de realizar la acción especificada. El artefacto de salida contiene un archivo JSON con el contenido de la secciónOutputs
de la plantilla de AWS CloudFormation.Si no especifica un nombre, CodePipeline no genera un artefacto de salida.
- Parameter overrides (Sobrescritura de parámetros)
-
Los parámetros se definen en la plantilla y le permiten ingresar valores personalizados al crear o actualizar una pila. Puede especificar un objeto JSON que anule los valores de los parámetros de la plantilla en el archivo de configuración de la plantilla. Todos los nombres de parámetros deben estar presentes en la plantilla de pila. Para obtener más información, consulte Sintaxis de Parameters de la plantilla de CloudFormation.
nota
El límite máximo de tamaño del objeto JSON que se puede almacenar en la propiedad
ParameterOverrides
es de 1 kilobyte.Le recomendamos que use el archivo de configuración de la plantilla para especificar la mayoría de sus valores de parámetros. Utilice anulaciones de parámetros para especificar solo valores de parámetros dinámicos. Los parámetros dinámicos son desconocidos hasta que se ejecuta la canalización.
En el siguiente ejemplo, se define un valor para el parámetro
ParameterName
usando una función de anulación de parámetros. La función recupera un valor de un artefacto de entrada de CodePipeline. Para obtener más información acerca de las funciones de anulación de parámetros, consulte Uso de funciones de anulación de parámetros con canalizaciones de CodePipeline.{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }
Propiedades de configuración (objeto JSON)
Cuando especifique CloudFormation
como proveedor de la acción de una fase, defina las siguientes propiedades en la propiedad Configuration
. Utilice el objeto JSON para las plantillas de la AWS CLI, la API de CodePipeline o AWS CloudFormation. Para ver ejemplos, consulte Tutorial: Creación de una canalización para pilas de prueba y pilas de producción y Referencia de propiedades de configuración de AWS CloudFormation.
ActionMode
-
La acción de AWS CloudFormation que CodePipeline invoca al procesar la fase asociada. Especifique solo uno de los siguientes modos de acción:
-
CHANGE_SET_EXECUTE
ejecuta un conjunto de cambios. -
CHANGE_SET_REPLACE
crea el conjunto de cambios, si no existe, basándose en el nombre de la pila y la plantilla que envíe. Si el conjunto de cambios ya existe, AWS CloudFormation lo elimina y luego crea otro nuevo. -
CREATE_UPDATE
crea la pila si la pila especificado no existe. Si la pila existe, AWS CloudFormation lo actualiza. Utilice esta acción para actualizar pilas existentes. CodePipeline no sustituirá la pila. -
DELETE_ONLY
elimina una pila. Si especifica una pila que no existe, la acción se realiza de forma satisfactoria sin eliminar una pila. -
REPLACE_ON_FAILURE
crea una pila si la pila especificada no existe. Si la pila existe y está en un estado de error (notificado comoROLLBACK_COMPLETE
,ROLLBACK_FAILED
,CREATE_FAILED
,DELETE_FAILED
oUPDATE_ROLLBACK_FAILED
), AWS CloudFormation elimina la pila y luego crea otra nueva. Si la pila no está en un estado de error, AWS CloudFormation lo actualiza. Utilice esta acción para sustituir automáticamente pilas fallidas sin recuperarlos ni solucionar sus problemas. Por lo general, debería elegir este modo para las pruebas.
Esta propiedad es obligatoria.
-
Capabilities
-
Respecto a las pilas que contengan determinados recursos, reconozca explícitamente que AWS CloudFormation podría crear o actualizar dichos recursos. Por ejemplo, debe especificar
CAPABILITY_IAM
si la plantilla de su pila contiene recursos de AWS Identity and Access Management (IAM). Para obtener más información, consulte los parámetros CreateStack de solicitud de operación de API.Esta propiedad es condicional. Si dispone de recursos de IAM en su plantilla de pila, debe especificar esta propiedad.
Puede especificar varias capacidades. El siguiente ejemplo agrega las propiedades
CAPABILITY_IAM
yCAPABILITY_AUTO_EXPAND
a la plantilla: ChangeSetName
-
El nombre de un conjunto de cambios existentes o un nuevo conjunto de cambios que desee crear para la pila especificada.
Esta propiedad es necesaria para los siguientes modos de acción:
CHANGE_SET_REPLACE
yCHANGE_SET_EXECUTE
. Para todos los demás modos de acción, se pasa por alto esta propiedad. OutputFileName
-
Un nombre para el archivo de salida, como
CreateStackOutput.json
. CodePipeline agrega el archivo para el artefacto de salida después de llevar a cabo la acción especificada. El artefacto de salida contiene un archivo JSON con el contenido de la secciónOutputs
de la plantilla de AWS CloudFormation.Esta propiedad es opcional. Si no especifica un nombre, CodePipeline no genera un artefacto de salida.
ParameterOverrides
-
Los parámetros se definen en la plantilla y le permiten ingresar valores personalizados al crear o actualizar una pila. Puede especificar un objeto JSON que anule los valores de los parámetros de la plantilla en el archivo de configuración de la plantilla. Todos los nombres de parámetros deben estar presentes en la plantilla de pila. Para obtener más información, consulte Sintaxis de Parameters de la plantilla de CloudFormation.
En el siguiente ejemplo se añaden las anulaciones de parámetros
InstanceType
yKeyName
a la plantilla:nota
El tamaño máximo del objeto JSON que se puede almacenar en la propiedad
ParameterOverrides
es de 1 kilobyte.Le recomendamos que use el archivo de configuración de la plantilla para especificar la mayoría de sus valores de parámetros. Utilice anulaciones de parámetros para especificar solo valores de parámetros dinámicos. Los valores de los parámetros dinámicos son desconocidos hasta que se ejecuta la canalización.
En el siguiente ejemplo, se define un valor para el parámetro
ParameterName
usando una función de anulación de parámetros. La función recupera un valor de un artefacto de entrada de CodePipeline. Para obtener más información acerca de las funciones de anulación de parámetros, consulte Uso de funciones de anulación de parámetros con canalizaciones de CodePipeline.{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }
Esta propiedad es opcional.
RoleArn
-
El nombre de recurso de Amazon (ARN) del rol de servicio de IAM que AWS CloudFormation asume cuando opera con recursos en una pila.
Esta propiedad es necesaria para los siguientes modos de acción:
CREATE_UPDATE
,REPLACE_ON_FAILURE
,DELETE_ONLY
yCHANGE_SET_REPLACE
.RoleArn
no se aplica a la hora de ejecutar un conjunto de cambios. Si no utiliza CodePipeline para crear el conjunto de cambios, debe asegurarse de que el conjunto de cambios o la pila tenga un rol asociado. StackName
-
El nombre de una pila existente o una pila que desee crear.
Esta propiedad es obligatoria para todos los demás modos de acción.
TemplateConfiguration
-
TemplateConfiguration
es el archivo de configuración de la plantilla. Incluya el archivo en un artefacto de entrada en esta acción. El nombre del archivo de configuración de la plantilla se ajusta a este formato:Artifactname
::TemplateConfigurationFileName
Artifactname
es el nombre del artefacto de entrada, tal y como aparece en CodePipeline. Por ejemplo, una etapa de origen con el nombre de artefacto deSourceArtifact
y un nombre de archivotest-configuration.json
crea un nombreTemplateConfiguration
, tal y como se muestra en este ejemplo:"TemplateConfiguration": "SourceArtifact::test-configuration.json"
El archivo de configuración de la plantilla puede contener los valores de los parámetros de la plantilla y una política de pila. Si incluye información confidencial, como contraseñas, restrinja el acceso a este archivo. Para ver un archivo de configuración de plantilla de ejemplo, consulte Artefactos de AWS CloudFormation.
Esta propiedad es opcional.
TemplatePath
-
TemplatePath
representa el archivo de plantilla de AWS CloudFormation. Incluya el archivo en un artefacto de entrada en esta acción. El nombre del archivo sigue este formato:Artifactname
::TemplateFileName
Artifactname
es el nombre del artefacto de entrada, tal y como aparece en CodePipeline. Por ejemplo, una etapa de origen con el nombre de artefacto deSourceArtifact
y un nombre de archivotemplate.yaml
crea un nombreTemplatePath
, tal y como se muestra en este ejemplo:"TemplatePath": "SourceArtifact::template.yaml"
Esta propiedad es necesaria para los siguientes modos de acción:
CREATE_UPDATE
,REPLACE_ON_FAILURE
yCHANGE_SET_REPLACE
. Para todos los demás modos de acción, se pasa por alto esta propiedad.
Véase también
Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con estos parámetros.
-
Para obtener más información sobre los parámetros de acción de CloudFormation en CodePipeline, consulte la referencia de configuración de acciones de AWS CloudFormation en la Guía del usuario de AWS CodePipeline.
-
Para ver valores de plantilla de ejemplo según el proveedor de acción, como para el campo
Owner
o los camposconfiguration
, consulte la Action structure reference (Referencia de estructura de acciones) en la Guía del usuario de AWS CodePipeline. -
Para descargar las plantillas de la pila de canalización de ejemplo en formato YAML o JSON, consulte el Tutorial: Creación de una canalización con AWS CloudFormation en la Guía del usuario de AWS CodePipeline.