AWS CloudFormation StackSets implementar referencia de acción - AWS CodePipeline

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS CloudFormation StackSets implementar referencia de acción

CodePipeline ofrece la posibilidad de realizar AWS CloudFormation StackSets operaciones como parte de su proceso de CI/CD. Utiliza un conjunto de pilas para crear pilas en AWS las cuentas de todas las AWS regiones mediante una única plantilla. AWS CloudFormation Todos los recursos incluidos en cada pila se definen mediante la AWS CloudFormation plantilla del conjunto de pilas. Al crear el conjunto de pilas, debe especificar la plantilla que desea utilizar, así como todos los parámetros y capacidades que requiere la plantilla.

Para obtener más información sobre los conceptos de AWS CloudFormation StackSets, consulte StackSets los conceptos en la Guía del AWS CloudFormation usuario.

El proceso se integra AWS CloudFormation StackSets mediante dos tipos de acciones distintos que se utilizan de forma conjunta:

  • La acción CloudFormationStackSet crea o actualiza un conjunto de pilas o instancias de pilas a partir de la plantilla almacenada en la ubicación de origen de la canalización. Cada vez que se crea o actualiza un conjunto de pilas, se inicia una implementación de esos cambios en instancias específicas. En la consola, puedes elegir el proveedor de acciones de CloudFormation Stack Set al crear o editar tu canalización.

  • La acción CloudFormationStackInstances implementa los cambios de la acción CloudFormationStackSet en instancias específicas, crea nuevas instancias de pila y define las anulaciones de parámetros en las instancias especificadas. En la consola, puedes elegir el proveedor de acciones de CloudFormation Stack Instances al editar una canalización existente.

Puedes usar estas acciones para implementarlas en las AWS cuentas de destino o en la unidad organizativa de Target AWS OrganizationsIDs.

nota

Para realizar la implementación en AWS las cuentas o unidades organizativas de Target Organizations IDs y utilizar el modelo de permisos gestionados por el servicio, debes habilitar el acceso de confianza entre y AWS CloudFormation StackSets Organizaciones AWS . Para obtener más información, consulta Cómo habilitar el acceso confiable con AWS CloudFormation Stacksets.

Cómo funcionan AWS CloudFormation StackSets las acciones

Una acción CloudFormationStackSet crea o actualiza recursos en función de si la acción se ejecuta por primera vez.

La acción CloudFormationStackSet crea o actualiza el conjunto de pilas e implementa esos cambios en instancias específicas.

nota

Si utiliza esta acción para realizar una actualización que incluya la adición de instancias de pila, las nuevas instancias se implementan primero y la actualización se completa en último lugar. Las nuevas instancias reciben primero la versión anterior y, a continuación, la actualización se aplica a todas las instancias.

  • Crear: cuando no se especifica ninguna instancia y el conjunto de pilas no existe, la CloudFormationStackSetacción crea el conjunto de pilas sin crear ninguna instancia.

  • Actualización: cuando la CloudFormationStackSetacción se ejecuta para un conjunto de pilas que ya se ha creado, la acción actualiza el conjunto de pilas. Si no se especifica ninguna instancia y el conjunto de pilas ya existe, se actualizan todas las instancias. Si esta acción se usa para actualizar instancias específicas, todas las instancias restantes pasan a un OUTDATED estado.

    Puedes usar la CloudFormationStackSetacción para actualizar el conjunto de pilas de las siguientes maneras.

    • Actualice la plantilla en algunas o todas las instancias.

    • Actualice los parámetros en algunas o todas las instancias.

    • Actualice el rol de ejecución del conjunto de pilas (debe coincidir con el rol de ejecución especificado en el rol de administrador).

    • Cambie el modelo de permisos (solo si no se ha creado ninguna instancia).

    • Active o desactive AutoDeployment si el modelo de permisos del conjunto de pilas es Service Managed.

    • Actúa como administrador delegado en una cuenta de miembro si el modelo de permisos del conjunto apilado lo esService Managed.

    • Actualice el rol de administrador.

    • Actualice la descripción del conjunto de pila.

    • Añada los objetivos de implementación a la actualización del conjunto de pilas para crear nuevas instancias de pila.

La acción CloudFormationStackInstances crea nuevas instancias de pila o actualiza las instancias de pila obsoletas. Una instancia queda desactualizada cuando se actualiza un conjunto de pilas, pero no se actualizan todas las instancias que contiene.

  • Crear: si la pila ya existe, la acción CloudFormationStackInstances solo actualiza las instancias y no crea instancias de pila.

  • Actualizar: una vez realizada la acción CloudFormationStackSet, si la plantilla o los parámetros se han actualizado solo en algunos casos, el resto se marcará OUTDATED. En fases posteriores de la canalización, CloudFormationStackInstances actualiza el resto de las instancias del conjunto de pilas en oleadas para que todas las instancias queden marcadas CURRENT. Esta acción también se puede utilizar para añadir instancias adicionales o anular los parámetros de las instancias nuevas o existentes.

Como parte de una actualización, las acciones CloudFormationStackSet y CloudFormationStackInstances pueden especificar nuevos objetivos de implementación, lo que crea nuevas instancias apiladas.

Como parte de una actualización, las acciones CloudFormationStackSet y CloudFormationStackInstances no eliminan conjuntos de pilas, instancias o recursos. Cuando la acción actualiza una pila pero no especifica todas las instancias que se van a actualizar, las instancias que no se especificaron para la actualización se eliminan de la actualización y se establecen en un estado de OUTDATED.

Durante una implementación, las instancias de la pila también pueden mostrar un estado de OUTDATED en el que se indica si la implementación en las instancias ha fallado.

¿Cómo estructurar StackSets las acciones en una canalización

Como práctica recomendada, debe construir su canalización de manera que el conjunto de pilas se cree y se implemente inicialmente en un subconjunto o en una sola instancia. Tras probar la implementación y ver el conjunto de pilas generado, añada la acción CloudFormationStackInstances para crear y actualizar las instancias restantes.

Utilice la consola o la CLI para crear la estructura de canalización recomendada de la siguiente manera:

  1. Cree una canalización con una acción de origen (obligatoria) y la acción CloudFormationStackSet como acción de implementación. Ejecute su canalización.

  2. Cuando su canalización se ejecuta por primera vez, la acción CloudFormationStackSet crea su conjunto de pilas y al menos una instancia inicial. Verifique la creación del conjunto de pilas y revise la implementación en su instancia inicial. Por ejemplo, para la creación inicial del conjunto de pilas para la cuenta A, donde us-east-1 se encuentra la región especificada, la instancia de pila se crea con el conjunto de pilas:

    Instancia de pila Región Status
    StackInstanceID-1 us-east-1 CURRENT
  3. Edite su canalización para añadir CloudFormationStackInstances como segunda acción de implementación para crear o actualizar las instancias de pila para los destinos que designe. Por ejemplo, para crear una instancia de pila para la cuenta Account-A en la que se especifican las regiones us-east-2 y eu-central-1, se crean las instancias de pila restantes y la instancia inicial permanece actualizada de la siguiente manera:

    Instancia de pila Región Status
    StackInstanceID-1 us-east-1 CURRENT
    StackInstanceID-2 us-east-2 CURRENT
    StackInstanceID-3 eu-central-1 CURRENT
  4. Ejecute su canalización según sea necesario para actualizar su conjunto de pilas y actualizar o crear instancias de pila.

Cuando inicias una actualización de pila en la que has eliminado los objetivos de despliegue de la configuración de la acción, las instancias de la pila que no estaban designadas para la actualización se eliminan de la implementación y pasan a un OUTDATED estado. Por ejemplo, para actualizar una instancia de pila para una cuenta Account-A en la que la us-east-2 región se elimina de la configuración de acciones, se crean las instancias de pila restantes y la instancia eliminada se establece de la OUTDATED siguiente manera:

Instancia de pila Región Status
StackInstanceID-1 us-east-1 CURRENT
StackInstanceID-2 us-east-2 OUTDATED
StackInstanceID-3 eu-central-1 CURRENT

Para obtener más información sobre las prácticas recomendadas para implementar conjuntos de pilas, consulte las prácticas recomendadas StackSets en la Guía del AWS CloudFormation usuario.

Acción CloudFormationStackSet

Esta acción crea o actualiza un conjunto de pilas a partir de la plantilla almacenada en la ubicación de origen de la canalización.

Después de definir un conjunto de pilas, puede crear, actualizar o eliminar pilas en las cuentas y regiones de destino especificadas en los parámetros de configuración. Al crear, actualizar y eliminar pilas, puede especificar otras preferencias, como el orden de las regiones para que se realicen las operaciones, el porcentaje de tolerancia a fallos a partir del cual se detienen las operaciones en las pilas y el número de cuentas en las que se realizan operaciones en las pilas de forma concurrente.

Un conjunto de pilas es un recurso regional. Si crea un conjunto de pilas en una AWS región, no podrá acceder a él desde otras regiones.

Cuando esta acción se utiliza como una acción de actualización del conjunto de pilas, no se permiten las actualizaciones de la pila sin una implementación en al menos una instancia de la pila.

Tipo de acción

  • Categoría: Deploy

  • Propietario: AWS

  • Proveedor: CloudFormationStackSet

  • Versión: 1

Parámetros de configuración

StackSetName

Obligatorio: sí

El nombre que se va a asociar con el conjunto de pila. Este nombre debe ser único en la región donde se crea.

Solo puede contener caracteres alfanuméricos y guiones. Debe comenzar por una letra y tener 128 caracteres o menos.

Descripción

Obligatorio: no

Una descripción del conjunto de pila. Puede usarlo para describir el propósito del conjunto de pilas u otra información relevante.

TemplatePath

Obligatorio: sí

La ubicación de la plantilla que define los recursos del conjunto de pila. Debe apuntar a una plantilla con un tamaño máximo de 460 800 bytes.

Introduzca la ruta del nombre del artefacto de origen y el archivo de plantilla en el formato "InputArtifactName::TemplateFileName", como se muestra en el siguiente ejemplo.

SourceArtifact::template.txt
Parámetros

Obligatorio: no

Una lista de parámetros de plantilla para el conjunto de pilas que se actualizan durante una implementación.

Puede proporcionar parámetros como una lista literal o una ruta de archivo:

  • Puede introducir parámetros en el siguiente formato sintáctico abreviado: ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string. Para obtener más información acerca de estos tipos de datos, consulte Tipos de datos de parámetros de plantilla.

    En el siguiente ejemplo, se muestra un parámetro denominado BucketName con el valoramzn-s3-demo-source-bucket.

    ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket

    En el siguiente ejemplo, se muestra una entrada con varios parámetros:

    ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket ParameterKey=Asset1,ParameterValue=true ParameterKey=Asset2,ParameterValue=true
  • Puede introducir la ubicación del archivo que contiene una lista de modificaciones de parámetros de plantilla introducidas en el formato "InputArtifactName::ParametersFileName", como se muestra en el siguiente ejemplo.

    SourceArtifact::parameters.txt

    En el siguiente ejemplo se muestra el contenido del archivo para parameters.txt.

    [ { "ParameterKey": "KeyName", "ParameterValue": "true" }, { "ParameterKey": "KeyName", "ParameterValue": "true" } ]
Capacidades

Obligatorio: no

Indica que la plantilla puede crear y actualizar recursos, en función de los tipos de recursos de la plantilla.

Debe usar esta propiedad si tiene IAM recursos en la plantilla de pila o si crea una pila directamente a partir de una plantilla que contiene macros. Para que la AWS CloudFormation acción funcione correctamente de esta manera, debe utilizar una de las siguientes capacidades:

  • CAPABILITY_IAM

  • CAPABILITY_NAMED_IAM

Puede especificar más de una capacidad mediante el uso de una coma sin espacios entre las capacidades. El ejemplo de Ejemplo de configuración de CloudFormationStackSetacciones muestra una entrada con múltiples capacidades.

PermissionModel

Obligatorio: no

Determina cómo se crean y administran los IAM roles. Si no se especifica el campo, se usa valor predeterminado. Para obtener más información, consulte Modelos de permisos para operaciones de conjunto de pilas.

Los valores válidos son:

  • SELF_MANAGED (predeterminado): debe crear roles de administrador y ejecución para implementarlos en las cuentas de destino.

  • SERVICE_MANAGED: crea AWS CloudFormation StackSets automáticamente las IAM funciones necesarias para desplegarlas en las cuentas gestionadas por AWS Organizations. Esto requiere una cuenta para ser miembro de una organización.

nota

Este parámetro solo se puede cambiar cuando no hay instancias de pila en el conjunto de pilas.

AdministrationRoleArn
nota

Como AWS CloudFormation StackSets realiza operaciones en varias cuentas, debe definir los permisos necesarios en esas cuentas antes de poder crear el conjunto de pilas.

Obligatorio: no

nota

Este parámetro es opcional para el modelo SELF _ MANAGED permisos y no se usa para el modelo SERVICE _ MANAGED permisos.

El IAM rol ARN de la cuenta de administrador que se utiliza para realizar las operaciones del conjunto de pilas.

El nombre puede contener caracteres alfanuméricos, cualquiera de los siguientes caracteres: _+=, .@- y no incluir espacios. El nombre distingue entre mayúsculas y minúsculas. El nombre del rol debe tener una longitud mínima de 20 caracteres y una longitud máxima de 2048 caracteres. Los nombres del rol deben ser únicos dentro de la cuenta. El nombre del rol especificado aquí debe ser un nombre de rol existente. Si no especifica el nombre de la función, se establece en AWSCloudFormationStackSetAdministrationRole. Si lo especifica ServiceManaged, no debe definir un nombre de rol.

ExecutionRoleName
nota

Como AWS CloudFormation StackSets realiza operaciones en varias cuentas, debe definir los permisos necesarios en esas cuentas antes de poder crear el conjunto de pilas.

Obligatorio: no

nota

Este parámetro es opcional para el modelo SELF _ MANAGED permisos y no se usa para el modelo SERVICE _ MANAGED permisos.

El nombre del IAM rol en las cuentas de destino que se utiliza para realizar las operaciones del conjunto de pilas. El nombre puede contener caracteres alfanuméricos, cualquiera de los siguientes caracteres: _+=, .@- y no incluir espacios. El nombre distingue entre mayúsculas y minúsculas. Este nombre de rol debe tener una longitud mínima de 1 carácter y máxima de 64 caracteres. Los nombres del rol deben ser únicos dentro de la cuenta. El nombre del rol especificado aquí debe ser un nombre de rol existente. No especifique este rol si utiliza roles de ejecución personalizados. Si no especifica el nombre del rol, se establece en AWSCloudFormationStackSetExecutionRole. Si establece Service_Managed en verdadero, no debe definir un nombre de rol.

OrganizationsAutoDeployment

Obligatorio: no

nota

Este parámetro es opcional para el modelo SERVICE _ MANAGED permisos y no se usa para el modelo SELF _ MANAGED permisos.

Describe si AWS CloudFormation StackSets se implementa automáticamente en AWS las cuentas de Organizations que se agregan a una organización o unidad organizativa (OU) de destino. Si se especifica OrganizationsAutoDeployment, no especifique DeploymentTargets ni Regions.

nota

Si no se proporciona ninguna entrada para OrganizationsAutoDeployment, el valor predeterminado es Disabled.

Los valores válidos son:

  • Enabled. Obligatorio: no.

    StackSets implementa automáticamente instancias de pila adicionales en AWS las cuentas de Organizations que se agregan a una organización o unidad organizativa (OU) de destino en las regiones especificadas. Si se elimina una cuenta de una organización o unidad organizativa de destino, AWS CloudFormation StackSets elimina las instancias de la pila de la cuenta en las regiones especificadas.

  • Disabled. Obligatorio: no.

    StackSets no implementa automáticamente instancias apiladas adicionales en AWS las cuentas de Organizations que se agregan a una organización o unidad organizativa (OU) de destino en las regiones especificadas.

  • EnabledWithStackRetention. Obligatorio: no.

    Los recursos de pila se conservan cuando se elimina una cuenta de una organización u OU de destino.

DeploymentTargets

Obligatorio: no

nota

Para el modelo de MANAGED permisos SERVICE _, puedes proporcionar el ID raíz de la organización o la unidad organizativa IDs para los objetivos de despliegue. Para el modelo de MANAGED permisos SELF _, solo puedes proporcionar cuentas.

nota

Cuando se selecciona este parámetro, también debe seleccionar Regiones.

Una lista de AWS cuentas o unidades organizativas en las que IDs se deben crear o actualizar las instancias de conjuntos apilados.

  • Cuentas

    Puede proporcionar las cuentas como una lista literal o como una ruta de archivo:

    • Literal: introduzca los parámetros en el formato de sintaxis abreviada account_ID,account_ID, como se muestra en el siguiente ejemplo.

      111111222222,333333444444
    • Ruta del archivo: la ubicación del archivo que contiene una lista de AWS cuentas en las que se deben crear o actualizar las instancias del conjunto de pilas, introducida en el formato. InputArtifactName::AccountsFileName Si utiliza la ruta del archivo para especificar las cuentas o OrganizationalUnitIds, el formato del archivo debe estar configuradoJSON, como se muestra en el siguiente ejemplo.

      SourceArtifact::accounts.txt

      En el siguiente ejemplo se muestra el contenido del archivo para accounts.txt.

      [ "111111222222" ]

      En el siguiente ejemplo, se muestra el contenido del archivo para incluir más de una cuenta de accounts.txt:

      [ "111111222222","333333444444" ]
  • OrganizationalUnitIds:

    nota

    Este parámetro es opcional para el modelo de MANAGED permisos SERVICE _ y no se usa para el modelo de MANAGED permisos SELF _. No lo utilice si lo selecciona OrganizationsAutoDeployment.

    Las unidades AWS organizativas en las que actualizar las instancias de pila asociadas.

    Puedes proporcionar la unidad organizativa IDs como una lista literal o una ruta de archivo:

    • Literal: introduzca una matriz de cadenas separadas por comas, como se muestra en el siguiente ejemplo.

      ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    • Ruta del archivo: la ubicación del archivo que contiene una lista OrganizationalUnitIds en la que se pueden crear o actualizar las instancias del conjunto de pilas. Si utiliza la ruta del archivo para especificar las cuentas o OrganizationalUnitIds, el formato del archivo debe estar configuradoJSON, como se muestra en el siguiente ejemplo.

      Introduzca una ruta al archivo con el formato InputArtifactName::OrganizationalUnitIdsFileName.

      SourceArtifact::OU-IDs.txt

      En el siguiente ejemplo se muestra el contenido del archivo para OU-IDs.txt.

      [ "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222" ]
Regiones

Obligatorio: no

nota

Cuando se selecciona este parámetro, también debe seleccionarlo DeploymentTargets.

Una lista de AWS regiones en las que se crean o actualizan las instancias de conjuntos de pilas. Las regiones se actualizan en el orden en el que se han introducido.

Introduzca una lista de AWS regiones válidas en el formatoRegion1,Region2, como se muestra en el siguiente ejemplo.

us-west-2,us-east-1
FailureTolerancePercentage

Obligatorio: no

El porcentaje de cuentas por región en las que esta operación de apilamiento puede fallar antes de que AWS CloudFormation se detenga la operación en esa región. Si la operación se detiene en una región, AWS CloudFormation no la intenta realizar en regiones subsiguientes. Al calcular el número de cuentas en función del porcentaje especificado, AWS CloudFormation redondea al siguiente número entero.

MaxConcurrentPercentage

Obligatorio: no

El porcentaje máximo de cuentas en las que realizar esta operación de una vez. Al calcular el número de cuentas en función del porcentaje especificado, AWS CloudFormation redondea hacia abajo al siguiente número entero. Si el redondeo a la baja da como resultado cero, AWS CloudFormation establece el número como uno en su lugar. Si bien usa esta configuración para especificar el máximo, el número real de cuentas sobre las que se actúa simultáneamente puede ser menor en implementaciones grandes debido a la limitación controlada de los servicios.

RegionConcurrencyType

Obligatorio: no

Puede especificar si el conjunto de pilas debe implementarse en Regiones de AWS secuencialmente o en paralelo configurando el parámetro de implementación simultáneo de la región. Si se especifica la simultaneidad de regiones para desplegar pilas en varias en Regiones de AWS paralelo, esto puede resultar en tiempos de despliegue generales más rápidos.

  • Paralela: las implementaciones de conjuntos de pilas se llevarán a cabo al mismo tiempo, siempre y cuando los errores de implementación de una región no superen una tolerancia de fallos especificada.

  • Secuencial: las implementaciones de conjuntos de pilas se realizarán una a la vez, siempre y cuando los errores de implementación de una región no superen una tolerancia de fallos especificada. La implementación secuencial es la selección predeterminada.

ConcurrencyMode

Obligatorio: no

El modo de simultaneidad permite elegir cómo se comporta el nivel de simultaneidad durante las operaciones del conjunto de pilas, ya sea con una tolerancia a los errores estricta o suave. Tolerancia estricta a errores reduce la velocidad de implementación a medida que se producen errores en las operaciones del conjunto de pilas, ya que la simultaneidad disminuye en cada error. Soft Failure Tolerance prioriza la velocidad de despliegue y, al mismo tiempo, aprovecha las capacidades de seguridad. AWS CloudFormation

  • STRICT_FAILURE_TOLERANCE: esta opción reduce de forma dinámica el nivel de simultaneidad para garantizar que el número de cuentas con errores nunca supere un valor de tolerancia a errores en particular. Este es el comportamiento predeterminado.

  • SOFT_FAILURE_TOLERANCE: esta opción desacopla la tolerancia a errores de la simultaneidad real. Esto permite que las operaciones del conjunto de pilas se ejecuten en el nivel de simultaneidad, independientemente del número de errores.

CallAs

Obligatorio: no

nota

Este parámetro es opcional para el modelo de SERVICE_MANAGED permisos y no se usa para el SELF_MANAGED modelo de permisos.

Especifica si actúa en la cuenta de administración de la organización o como administrador delegado en la cuenta de un miembro.

nota

Si este parámetro está establecido enDELEGATED_ADMIN, asegúrese de que el IAM rol de canalización tenga organizations:ListDelegatedAdministrators permiso. De lo contrario, la acción fallará mientras se ejecuta y se produce un error similar al siguiente:Account used is not a delegated administrator.

  • SELF: La implementación del conjunto de pilas utilizará permisos administrados por el servicio mientras se haya iniciado sesión en la cuenta de administración.

  • DELEGATED_ADMIN: La implementación de Stack Set utilizará permisos administrados por el servicio mientras se haya iniciado sesión en una cuenta de administrador delegado.

Artefactos de entrada

Debe incluir al menos un artefacto de entrada que contenga la plantilla del conjunto de pilas de una acción CloudFormationStackSet. Puede incluir más artefactos de entrada para las listas de objetivos, cuentas y parámetros de implementación.

  • Número de artefactos: 1 to 3

  • Descripción: puede incluir artefactos para proporcionar:

    • El archivo de plantilla de pila. (consulte el parámetro TemplatePath).

    • El archivo de parámetros. (consulte el parámetro Parameters).

    • El archivo de cuentas. (consulte el parámetro DeploymentTargets).

Artefactos de salida

  • Número de artefactos: 0

  • Descripción: los artefactos de salida no se aplican a este tipo de acción.

Variables de salida

Si configura esta acción, produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.

  • StackSetId: El ID del conjunto de pilas.

  • OperationId: El ID de la operación del conjunto de pilas.

Para obtener más información, consulte Referencia de variables.

Ejemplo de configuración de CloudFormationStackSetacciones

Los siguientes ejemplos muestran la configuración de la CloudFormationStackSetacción.

Ejemplo del modelo de permisos autoadministrados

El siguiente ejemplo muestra una CloudFormationStackSetacción en la que el objetivo de despliegue introducido es un ID de AWS cuenta.

YAML
Name: CreateStackSet ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackSet Version: '1' RunOrder: 1 Configuration: DeploymentTargets: '111111222222' FailureTolerancePercentage: '20' MaxConcurrentPercentage: '25' PermissionModel: SELF_MANAGED Regions: us-east-1 StackSetName: my-stackset TemplatePath: 'SourceArtifact::template.json' OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: us-west-2 Namespace: DeployVariables
JSON
{ "Name": "CreateStackSet", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackSet", "Version": "1" }, "RunOrder": 1, "Configuration": { "DeploymentTargets": "111111222222", "FailureTolerancePercentage": "20", "MaxConcurrentPercentage": "25", "PermissionModel": "SELF_MANAGED", "Regions": "us-east-1", "StackSetName": "my-stackset", "TemplatePath": "SourceArtifact::template.json" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "us-west-2", "Namespace": "DeployVariables" }

Ejemplo del modelo de permisos administrados mediante servicios

El siguiente ejemplo muestra una CloudFormationStackSetacción para el modelo de permisos administrados por el servicio en el que la opción de despliegue automático en AWS Organizations está habilitada con la retención de pilas.

YAML
Name: Deploy ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackSet Version: '1' RunOrder: 1 Configuration: Capabilities: 'CAPABILITY_IAM,CAPABILITY_NAMED_IAM' OrganizationsAutoDeployment: EnabledWithStackRetention PermissionModel: SERVICE_MANAGED StackSetName: stacks-orgs TemplatePath: 'SourceArtifact::template.json' OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: eu-central-1 Namespace: DeployVariables
JSON
{ "Name": "Deploy", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackSet", "Version": "1" }, "RunOrder": 1, "Configuration": { "Capabilities": "CAPABILITY_IAM,CAPABILITY_NAMED_IAM", "OrganizationsAutoDeployment": "EnabledWithStackRetention", "PermissionModel": "SERVICE_MANAGED", "StackSetName": "stacks-orgs", "TemplatePath": "SourceArtifact::template.json" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "eu-central-1", "Namespace": "DeployVariables" }

La acción CloudFormationStackInstances

Esta acción crea nuevas instancias e implementa conjuntos de pilas en instancias específicas. Una instancia de pila es una referencia a una pila en una cuenta de destino dentro de una región. Una instancia de pila puede existir sin pila; por ejemplo, si la creación de la pila no se realiza correctamente, la instancia de pila muestra el motivo del fallo en la creación de la pila. Una instancia de pila está asociada con un solo conjunto de pilas.

Tras la creación inicial de un conjunto de pilas, puede añadir nuevas instancias de pilas mediante CloudFormationStackInstances. Los valores de los parámetros de la plantilla se pueden anular a nivel de instancia de pila durante las operaciones de creación o actualización de instancias de conjuntos de pilas.

Cada conjunto de pilas tiene una plantilla y un conjunto de parámetros de plantilla. Al actualizar la plantilla o los parámetros de la plantilla, se actualizan para todo el conjunto. A continuación, todos los estados de las instancias se establecen en OUTDATED hasta que los cambios se implementen en esa instancia.

Para anular los valores de los parámetros en instancias específicas, por ejemplo, si la plantilla contiene un parámetro para stage con un valor de prod, puede anular el valor de ese parámetro para que sea beta o gamma.

Tipo de acción

  • Categoría: Deploy

  • Propietario: AWS

  • Proveedor: CloudFormationStackInstances

  • Versión: 1

Parámetros de configuración

StackSetName

Obligatorio: sí

El nombre que se va a asociar con el conjunto de pila. Este nombre debe ser único en la región donde se crea.

Solo puede contener caracteres alfanuméricos y guiones. Debe comenzar por una letra y tener 128 caracteres o menos.

DeploymentTargets

Obligatorio: no

nota

Para el modelo de MANAGED permisos SERVICE _, puedes proporcionar el ID raíz de la organización o la unidad organizativa IDs para los objetivos de despliegue. Para el modelo de MANAGED permisos SELF _, solo puedes proporcionar cuentas.

nota

Cuando se selecciona este parámetro, también debe seleccionar Regiones.

Una lista de AWS cuentas o unidades organizativas en las que IDs se deben crear o actualizar las instancias de conjuntos apilados.

  • Cuentas

    Puede proporcionar las cuentas como una lista literal o como una ruta de archivo:

    • Literal: introduzca los parámetros en el formato de sintaxis abreviada account_ID,account_ID, como se muestra en el siguiente ejemplo.

      111111222222,333333444444
    • Ruta del archivo: la ubicación del archivo que contiene una lista de AWS cuentas en las que se deben crear o actualizar las instancias del conjunto de pilas, introducida en el formato. InputArtifactName::AccountsFileName Si utiliza la ruta del archivo para especificar las cuentas o OrganizationalUnitIds, el formato del archivo debe estar configuradoJSON, como se muestra en el siguiente ejemplo.

      SourceArtifact::accounts.txt

      En el siguiente ejemplo se muestra el contenido del archivo para accounts.txt.

      [ "111111222222" ]

      En el siguiente ejemplo, se muestra el contenido del archivo para incluir más de una cuenta de accounts.txt:

      [ "111111222222","333333444444" ]
  • OrganizationalUnitIds:

    nota

    Este parámetro es opcional para el modelo de MANAGED permisos SERVICE _ y no se usa para el modelo de MANAGED permisos SELF _. No lo utilice si lo selecciona OrganizationsAutoDeployment.

    Las unidades AWS organizativas en las que actualizar las instancias de pila asociadas.

    Puedes proporcionar la unidad organizativa IDs como una lista literal o una ruta de archivo.

    • Literal: introduzca una matriz de cadenas separadas por comas, como se muestra en el siguiente ejemplo.

      ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    • Ruta del archivo: la ubicación del archivo que contiene una lista OrganizationalUnitIds en la que se pueden crear o actualizar las instancias del conjunto de pilas. Si utiliza la ruta del archivo para especificar las cuentas o OrganizationalUnitIds, el formato del archivo debe estar configuradoJSON, como se muestra en el siguiente ejemplo.

      Introduzca una ruta al archivo con el formato InputArtifactName::OrganizationalUnitIdsFileName.

      SourceArtifact::OU-IDs.txt

      En el siguiente ejemplo se muestra el contenido del archivo para OU-IDs.txt.

      [ "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222" ]
Regiones

Obligatorio: sí

nota

Cuando se selecciona este parámetro, también debe seleccionarlo DeploymentTargets.

Una lista de AWS regiones en las que se crean o actualizan las instancias de conjuntos de pilas. Las regiones se actualizan en el orden en el que se han introducido.

Introduzca una lista de AWS regiones válidas con el formato:Region1,Region2, como se muestra en el siguiente ejemplo.

us-west-2,us-east-1
ParameterOverrides

Obligatorio: no

Una lista de parámetros de conjunto de pila que desea anular en las instancias de pila seleccionadas. Los valores de los parámetros anulados se aplican a todas las instancias de pila de las cuentas y regiones especificadas.

Puede proporcionar parámetros como una lista literal o una ruta de archivo:

  • Puede introducir parámetros en el siguiente formato sintáctico abreviado: ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string. Para obtener más información acerca de estos tipos de datos, consulte Tipos de datos de parámetros de plantilla.

    El siguiente ejemplo muestra un parámetro denominado BucketName con el valoramzn-s3-demo-source-bucket.

    ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket

    En el siguiente ejemplo, se muestra una entrada con varios parámetros.

    ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket ParameterKey=Asset1,ParameterValue=true ParameterKey=Asset2,ParameterValue=true
  • Puede introducir la ubicación del archivo que contiene una lista de modificaciones de parámetros de plantilla introducidas en el formato InputArtifactName::ParameterOverridessFileName, como se muestra en el siguiente ejemplo.

    SourceArtifact::parameter-overrides.txt

    En el siguiente ejemplo se muestra el contenido del archivo para parameter-overrides.txt.

    [ { "ParameterKey": "KeyName", "ParameterValue": "true" }, { "ParameterKey": "KeyName", "ParameterValue": "true" } ]
FailureTolerancePercentage

Obligatorio: no

El porcentaje de cuentas por región en las que esta operación de apilamiento puede fallar antes de que AWS CloudFormation se detenga la operación en esa región. Si la operación se detiene en una región, AWS CloudFormation no la intenta realizar en regiones subsiguientes. Al calcular el número de cuentas en función del porcentaje especificado, AWS CloudFormation redondea al siguiente número entero.

MaxConcurrentPercentage

Obligatorio: no

El porcentaje máximo de cuentas en las que realizar esta operación de una vez. Al calcular el número de cuentas en función del porcentaje especificado, AWS CloudFormation redondea hacia abajo al siguiente número entero. Si el redondeo a la baja da como resultado cero, AWS CloudFormation establece el número como uno en su lugar. Si bien especifica el máximo, el número real de cuentas sobre las que se actúa simultáneamente puede ser menor en implementaciones grandes debido a la limitación controlada de los servicios.

RegionConcurrencyType

Obligatorio: no

Puede especificar si el conjunto de pilas debe implementarse en Regiones de AWS secuencialmente o en paralelo configurando el parámetro de implementación simultáneo de la región. Si se especifica la simultaneidad de regiones para desplegar pilas en varias en Regiones de AWS paralelo, esto puede resultar en tiempos de despliegue generales más rápidos.

  • Paralela: las implementaciones de conjuntos de pilas se llevarán a cabo al mismo tiempo, siempre y cuando los errores de implementación de una región no superen una tolerancia de fallos especificada.

  • Secuencial: las implementaciones de conjuntos de pilas se realizarán una a la vez, siempre y cuando los errores de implementación de una región no superen una tolerancia de fallos especificada. La implementación secuencial es la selección predeterminada.

ConcurrencyMode

Obligatorio: no

El modo de simultaneidad permite elegir cómo se comporta el nivel de simultaneidad durante las operaciones del conjunto de pilas, ya sea con una tolerancia a los errores estricta o suave. Tolerancia estricta a errores reduce la velocidad de implementación a medida que se producen errores en las operaciones del conjunto de pilas, ya que la simultaneidad disminuye en cada error. Soft Failure Tolerance prioriza la velocidad de despliegue y, al mismo tiempo, aprovecha las capacidades de seguridad. AWS CloudFormation

  • STRICT_FAILURE_TOLERANCE: esta opción reduce de forma dinámica el nivel de simultaneidad para garantizar que el número de cuentas con errores nunca supere un valor de tolerancia a errores en particular. Este es el comportamiento predeterminado.

  • SOFT_FAILURE_TOLERANCE: esta opción desacopla la tolerancia a errores de la simultaneidad real. Esto permite que las operaciones del conjunto de pilas se ejecuten en el nivel de simultaneidad, independientemente del número de errores.

CallAs

Obligatorio: no

nota

Este parámetro es opcional para el modelo de SERVICE_MANAGED permisos y no se usa para el SELF_MANAGED modelo de permisos.

Especifica si actúa en la cuenta de administración de la organización o como administrador delegado en la cuenta de un miembro.

nota

Si este parámetro está establecido enDELEGATED_ADMIN, asegúrese de que el IAM rol de canalización tenga organizations:ListDelegatedAdministrators permiso. De lo contrario, la acción fallará mientras se ejecuta y se produce un error similar al siguiente:Account used is not a delegated administrator.

  • SELF: La implementación del conjunto de pilas utilizará permisos administrados por el servicio mientras se haya iniciado sesión en la cuenta de administración.

  • DELEGATED_ADMIN: La implementación de Stack Set utilizará permisos administrados por el servicio mientras se haya iniciado sesión en una cuenta de administrador delegado.

Artefactos de entrada

CloudFormationStackInstances puede contener artefactos en los que se enumeran los objetivos y los parámetros del implementación.

  • Número de artefactos: 0 to 2

  • Descripción: como entrada, la acción de conjunto de pila acepta de forma opcional artefactos para estos fines:

    • Para proporcionar el archivo de parámetros que se va a utilizar. (consulte el parámetro ParameterOverrides).

    • Para proporcionar el archivo de cuentas de destino que se va a utilizar. (consulte el parámetro DeploymentTargets).

Artefactos de salida

  • Número de artefactos: 0

  • Descripción: los artefactos de salida no se aplican a este tipo de acción.

Variables de salida

Cuando se configura, esta acción produce variables a las que se puede hacer referencia mediante la configuración de acción de una acción descendente en la canalización. Configure una acción con un espacio de nombres para que esas variables estén disponibles para la configuración de las acciones posteriores.

  • StackSetId: El ID del conjunto de pilas.

  • OperationId: El ID de la operación del conjunto de pilas.

Para obtener más información, consulte Referencia de variables.

Ejemplo de configuración de una acción

Los siguientes ejemplos muestran la configuración de la CloudFormationStackInstancesacción.

Ejemplo del modelo de permisos autoadministrados

El siguiente ejemplo muestra una CloudFormationStackInstancesacción en la que el objetivo de despliegue introducido es un Cuenta de AWS ID111111222222.

YAML
Name: my-instances ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackInstances Version: '1' RunOrder: 2 Configuration: DeploymentTargets: '111111222222' Regions: 'us-east-1,us-east-2,us-west-1,us-west-2' StackSetName: my-stackset OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: us-west-2
JSON
{ "Name": "my-instances", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackInstances", "Version": "1" }, "RunOrder": 2, "Configuration": { "DeploymentTargets": "111111222222", "Regions": "us-east-1,us-east-2,us-west-1,us-west-2", "StackSetName": "my-stackset" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "us-west-2" }

Ejemplo del modelo de permisos administrados mediante servicios

En el siguiente ejemplo, se muestra una CloudFormationStackInstancesacción para el modelo de permisos gestionados por el servicio en el que el objetivo de la implementación es un ID de unidad organizativa de Organizations AWS . ou-1111-1example

YAML
Name: Instances ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackInstances Version: '1' RunOrder: 2 Configuration: DeploymentTargets: ou-1111-1example Regions: us-east-1 StackSetName: my-stackset OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: eu-central-1
JSON
{ "Name": "Instances", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackInstances", "Version": "1" }, "RunOrder": 2, "Configuration": { "DeploymentTargets": "ou-1111-1example", "Regions": "us-east-1", "StackSetName": "my-stackset" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "eu-central-1" }

Modelos de permisos para operaciones de conjunto de pilas

Como AWS CloudFormation StackSets realiza operaciones en varias cuentas, debes definir los permisos necesarios en esas cuentas antes de poder crear el conjunto de pilas. Puede definir los permisos mediante permisos autoadministrados o permisos administrados por servicios.

Con los permisos autogestionados, se crean las dos IAM funciones que necesita StackSets : una función de administrador, como la de la cuenta AWSCloudFormationStackSetAdministrationRole en la que se define el conjunto de pilas, y una función de ejecución, como la de cada una de las cuentas AWSCloudFormationStackSetExecutionRole en las que se despliegan las instancias del conjunto de pilas. Con este modelo de permisos, StackSets puedes realizar la implementación en cualquier AWS cuenta en la que el usuario tenga permisos para crear un IAM rol. Para obtener más información, consulte Concesión de permisos autoadministrados en la Guía del usuario de AWS CloudFormation .

nota

Como AWS CloudFormation StackSets realiza operaciones en varias cuentas, debe definir los permisos necesarios en esas cuentas antes de poder crear el conjunto de pilas.

Con los permisos gestionados por el servicio, puedes implementar instancias apiladas en las cuentas gestionadas por Organizations AWS . Con este modelo de permisos, no tienes que crear los IAM roles necesarios, ya que los StackSets IAM crea en tu nombre. Con este modelo, también puede habilitar implementaciones automáticas en cuentas que se añaden a la organización en el futuro. Consulte Habilitar el acceso confiable con AWS Organizations en la Guía AWS CloudFormation del usuario.

Tipos de datos de parámetros de plantilla

Los parámetros de plantilla utilizados en las operaciones del conjunto de pilas incluyen los siguientes tipos de datos. Para obtener más información, consulte DescribeStackSet.

ParameterKey
  • Descripción: la clave asociada con el parámetro. Si no especifica una clave y un valor para un parámetro concreto, AWS CloudFormation utiliza el valor predeterminado que se especifica en la plantilla.

  • Ejemplo:

    "ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket"
ParameterValue
  • Descripción: el valor de entrada asociado con el parámetro.

  • Ejemplo:

    "ParameterKey=BucketName,ParameterValue=amzn-s3-demo-source-bucket"
UsePreviousValue
  • Durante una actualización de la pila, utilice el valor de parámetro existente que la pila está utilizando para una clave de parámetro determinada. Si especifica true, no especifique un valor de parámetro.

  • Ejemplo:

    "ParameterKey=Asset1,UsePreviousValue=true"

Cada conjunto de pilas tiene una plantilla y un conjunto de parámetros de plantilla. Al actualizar la plantilla o los parámetros de la plantilla, se actualizan para todo el conjunto. Luego, todos los estados de las instancias se configuran OUTDATED hasta que los cambios se implementen en esa instancia.

Para anular los valores de los parámetros en instancias específicas, por ejemplo, si la plantilla contiene un parámetro para stage con un valor de prod, puede anular el valor de ese parámetro para que sea beta o gamma.

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.

  • Tipos de parámetros: en este capítulo de referencia de la Guía del AWS CloudFormation usuario, se proporcionan más descripciones y ejemplos de los parámetros de las CloudFormation plantillas.

  • Prácticas recomendadas: para obtener más información sobre las prácticas recomendadas para implementar conjuntos de pilas, consulte https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-bestpractices.html en la Guía del usuario de AWS CloudFormation .

  • AWS CloudFormation APIReferencia: puede hacer referencia a las siguientes CloudFormation acciones en la AWS CloudFormation APIReferencia para obtener más información sobre los parámetros utilizados en las operaciones de conjuntos de pilas:

    • La CreateStackSetacción crea un conjunto de pilas.

    • La UpdateStackSetacción actualiza el conjunto de pilas y las instancias de pila asociadas en las cuentas y regiones especificadas. Incluso si la operación del conjunto de pilas creada al actualizar el conjunto de pilas falla (total o parcialmente, por debajo o por encima de una tolerancia a errores especificada), el conjunto de pilas se actualiza con estos cambios. Las CreateStackInstances llamadas posteriores al conjunto de pilas especificado utilizan el conjunto de pilas actualizado.

    • La CreateStackInstancesacción crea una instancia de pila para todas las regiones especificadas en todas las cuentas especificadas en un modelo de permisos autogestionado o dentro de todos los objetivos de despliegue especificados en un modelo de permisos gestionado por el servicio. Puede anular los parámetros de las instancias creadas mediante esta acción. Si las instancias ya existen, realiza las CreateStackInstances llamadas UpdateStackInstances con los mismos parámetros de entrada. Cuando utiliza esta acción para crear instancias, no cambia el estado de las demás instancias de la pila.

    • La UpdateStackInstancesacción actualiza las instancias de la pila con la pila configurada para todas las regiones especificadas en todas las cuentas especificadas en un modelo de permisos autogestionado o dentro de todos los objetivos de despliegue especificados en un modelo de permisos gestionados por el servicio. Puede anular los parámetros de las instancias actualizados mediante esta acción. Cuando utiliza esta acción para actualizar un subconjunto de instancias, no cambia el estado de las demás instancias de la pila.

    • La DescribeStackSetOperationacción devuelve la descripción de la operación del conjunto de pilas especificado.

    • La DescribeStackSetacción devuelve la descripción del conjunto de pilas especificado.