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ámetroTimeBasedCanary
.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ámetroTimeBasedLinear
.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 resultadoSucceeded
oFailed
. 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í