Sintaxis del enlace AWS::CodeDeploy::BlueGreen - AWS CloudFormation

Sintaxis del enlace AWS::CodeDeploy::BlueGreen

La siguiente sintaxis describe la estructura de un enlace AWS::CodeDeploy::BlueGreen para las implementaciones azul/verde de ECS.

Sintaxis

"Hooks": { "Logical ID": { "Type": "AWS::CodeDeploy::BlueGreen", "Properties": { "TrafficRoutingConfig": { "Type": "Traffic routing type", "TimeBasedCanary": { "StepPercentage": Integer, "BakeTimeMins": Integer }, "TimeBasedLinear": { "StepPercentage": Integer, "BakeTimeMins": Integer } }, "AdditionalOptions": {"TerminationWaitTimeInMinutes": Integer}, "LifecycleEventHooks": { "BeforeInstall": "FunctionName", "AfterInstall": "FunctionName", "AfterAllowTestTraffic": "FunctionName", "BeforeAllowTraffic": "FunctionName", "AfterAllowTraffic": "FunctionName" }, "ServiceRole": "CodeDeployServiceRoleName", "Applications": [ { "Target": { "Type": "AWS::ECS::Service", "LogicalID": "Logical ID of AWS::ECS::Service" }, "ECSAttributes": { "TaskDefinitions": [ "Logical ID of AWS::ECS::TaskDefinition (Blue)", "Logical ID of AWS::ECS::TaskDefinition (Green)" ], "TaskSets": [ "Logical ID of AWS::ECS::TaskSet (Blue)", "Logical ID of AWS::ECS::TaskSet (Green)" ], "TrafficRouting": { "ProdTrafficRoute": { "Type": "AWS::ElasticLoadBalancingV2::Listener", "LogicalID": "Logical ID of AWS::ElasticLoadBalancingV2::Listener (Production)" }, "TestTrafficRoute": { "Type": "AWS::ElasticLoadBalancingV2::Listener", "LogicalID": "Logical ID of AWS::ElasticLoadBalancingV2::Listener (Test)" }, "TargetGroups": [ "Logical ID of AWS::ElasticLoadBalancingV2::TargetGroup (Blue)", "Logical ID of AWS::ElasticLoadBalancingV2::TargetGroup (Green)" ] } } } ] } } }

Propiedades

ID lógico (también denominado nombre lógico)

El ID lógico de un enlace declarado en la sección Hooks de la plantilla. El ID lógico tiene que ser alfanumérico (A-Za-z0-9) y único dentro de la plantilla.

Obligatorio: sí

Type

El tipo de enlace. AWS::CodeDeploy::BlueGreen

Obligatorio: sí

Properties

Propiedades del enlace.

Obligatorio: sí

TrafficRoutingConfig

Configuración del direccionamiento del tráfico.

Obligatorio: no

La configuración predeterminada desvía el tráfico de valor controlado en función del tiempo, con un porcentaje de pasos del 15 % y un tiempo de procesamiento de cinco minutos.

Type

Tipo de desvío de tráfico que se utiliza en la configuración de la implementación.

Valores válidos: AllAtOnce | TimeBasedCanary | TimeBasedLinear

Obligatorio: sí

TimeBasedCanary

Especifica una configuración que desvía el tráfico de una versión de la implementación a otra en dos incrementos.

Obligatorio: condicional. Si especifica TimeBasedCanary como el tipo de enrutamiento de tráfico, debe incluir el parámetro TimeBasedCanary.

StepPercentage

Porcentaje del tráfico que se va a desviar en el primer incremento de una implementación TimeBasedCanary. El porcentaje de pasos debe ser igual o superior al 14 %.

Obligatorio: no

BakeTimeMins

Número de minutos entre el primer y el segundo desvío de tráfico de una implementación TimeBasedCanary.

Obligatorio: no

TimeBasedLinear

Especifica una configuración que desvía el tráfico de una versión de la implementación a otra en incrementos iguales, con el mismo número de minutos entre cada incremento.

Obligatorio: condicional. Si especifica TimeBasedLinear como el tipo de enrutamiento de tráfico, debe incluir el parámetro TimeBasedLinear.

StepPercentage

Porcentaje de tráfico que se desvía al comienzo de cada incremento de una implementación TimeBasedLinear. El porcentaje de pasos debe ser igual o superior al 14 %.

Obligatorio: no

BakeTimeMins

Número de minutos entre cada desvío del tráfico incremental en una implementación TimeBasedLinear.

Obligatorio: no

AdditionalOptions

Otras opciones adicionales de la implementación «blue/green».

Obligatorio: no

TerminationWaitTimeInMinutes

Especifica el tiempo de espera, en minutos, antes de finalizar los recursos de azul.

Obligatorio: no

LifecycleEventHooks

Utilice los enlaces de eventos del ciclo de vida para especificar una función de Lambda a la que CodeDeploy puede llamar para validar una implementación. Puede utilizar la misma función u otra distinta para los eventos del ciclo de vida de la implementación. Cuando finalicen las pruebas de validación, la función de Lambda AfterAllowTraffic vuelve a llamar a CodeDeploy y devuelve como resultado Succeeded o Failed. Para obtener más información, consulte laSección “Enlaces” de AppSpec en la Guía del usuario de AWS CodeDeploy.

Obligatorio: no

BeforeInstall

Función que se utiliza para ejecutar tareas antes de crear el conjunto de tareas de sustitución.

Obligatorio: no

AfterInstall

Función que se utiliza para ejecutar tareas una vez que el conjunto de tareas se ha creado y uno de los grupos de destino se ha asociado con él.

Obligatorio: no

AfterAllowTestTraffic

Función que se utiliza para ejecutar tareas después de que el agente de escucha de prueba envía tráfico al conjunto de tareas de sustitución.

Obligatorio: no

BeforeAllowTraffic

Función que se utiliza para ejecutar tareas una vez que el segundo grupo de destino se ha asociado con el conjunto de tareas de sustitución, pero antes de que se envíe tráfico al conjunto de tareas de sustitución.

Obligatorio: no

AfterAllowTraffic

Función que se utiliza para ejecutar tareas después de que el segundo grupo de destino envíe tráfico al conjunto de tareas de sustitución.

Obligatorio: no

ServiceRole

Rol de ejecución que se utiliza en CloudFormation para realizar implementaciones azul/verde. Para obtener una lista de los permisos necesarios, consulte Permisos de IAM para las implementaciones azul/verde.

Obligatorio: no

Applications

Especifica las propiedades de la aplicación Amazon ECS.

Obligatorio: sí

Target

Obligatorio: sí

Type

El tipo de recurso.

Obligatorio: sí

LogicalID

ID lógico del recurso.

Obligatorio: sí

ECSAttributes

Recursos que representan los diferentes requisitos de la implementación de la aplicación Amazon ECS.

Obligatorio: sí

TaskDefinitions

ID lógico del recurso AWS::ECS::TaskDefinition que va a ejecutar el contenedor Docker que contiene la aplicación Amazon ECS.

Obligatorio: sí

TaskSets

Identificadores lógicos de los recursos AWS::ECS::TaskSet que se van a utilizar como conjuntos de tareas en la aplicación.

Obligatorio: sí

TrafficRouting

Especifica los recursos que se utilizan para el direccionamiento del tráfico.

Obligatorio: sí

ProdTrafficRoute

Agente de escucha que se va a utilizar en el balanceador de carga para dirigir el tráfico hacia los grupos de destino.

Obligatorio: sí

Type

El tipo del recurso. AWS::ElasticLoadBalancingV2::Listener

Obligatorio: sí

LogicalID

ID lógico del recurso.

Obligatorio: sí

TestTrafficRoute

Agente de escucha que se va a utilizar en el balanceador de carga para dirigir el tráfico hacia los grupos de destino.

Obligatorio: sí

Type

El tipo del recurso. AWS::ElasticLoadBalancingV2::Listener

Obligatorio: sí

LogicalID

ID lógico del recurso.

Obligatorio: no

TargetGroups

ID lógico de los recursos que se van a utilizar como grupos de destino para dirigir el tráfico al destino registrado.

Obligatorio: sí