Sintaxe do hook AWS::CodeDeploy::BlueGreen
A sintaxe a seguir descreve a estrutura de um hook AWS::CodeDeploy::BlueGreen para implantações azuis/verdes do ECS.
Sintaxe
"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)" ] } } } ] } } }
Propriedades
- ID lógico (também chamado de nome lógico)
-
O ID lógico de um hook declarado na seção
Hooksdo modelo. O ID lógico deve ser alfanumérico (A-Z a-z 0-9) e exclusivo no modelo.Obrigatório: Sim
Type-
O tipo do hook.
AWS::CodeDeploy::BlueGreenObrigatório: Sim
Properties-
Propriedades do hook.
Obrigatório: Sim
TrafficRoutingConfig-
Definição das configurações de roteamento de tráfego.
Obrigatório: não
A configuração padrão é o deslocamento de tráfego canário baseado em tempo, com uma porcentagem de 15% de etapa e um tempo de incorporação de cinco minutos.
Type-
O tipo de deslocamento de tráfego usado pela configuração de implantação.
Valores válidos: AllAtOnce | TimeBasedCanary | TimeBasedLinear
Obrigatório: Sim
TimeBasedCanary-
Especifica uma configuração que desloca o tráfego de uma versão da implantação para outra em incrementos de dois.
Necessário: Condicional: se você especificar
TimeBasedCanarycomo o tipo de roteamento de tráfego, deverá incluir o parâmetroTimeBasedCanary.StepPercentage-
A porcentagem de tráfego a ser deslocado no primeiro incremento de uma implantação
TimeBasedCanary. A porcentagem da etapa deve ser 14% ou maior.Obrigatório: não
BakeTimeMins-
O número de minutos entre o primeiro e o segundo deslocamento de tráfego de uma implantação
TimeBasedCanary.Obrigatório: não
TimeBasedLinear-
Especifica uma configuração que desloca o tráfego de uma versão da implantação para outra em incrementos iguais, com um número igual de minutos entre cada incremento.
Necessário: Condicional: se você especificar
TimeBasedLinearcomo o tipo de roteamento de tráfego, deverá incluir o parâmetroTimeBasedLinear.StepPercentage-
A porcentagem de tráfego deslocado no início de cada incremento de uma implantação
TimeBasedLinear. A porcentagem da etapa deve ser 14% ou maior.Obrigatório: não
BakeTimeMins-
O número de minutos entre cada deslocamento de tráfego incremental de uma implantação
TimeBasedLinear.Obrigatório: não
AdditionalOptions-
Opções adicionais para a implantação azul/verde.
Obrigatório: não
TerminationWaitTimeInMinutes-
Especifica o tempo de espera, em minutos, antes de encerrar os recursos azuis.
Obrigatório: não
LifecycleEventHooks-
Use hooks de eventos de ciclo de vida para especificar uma função do Lambda que o CodeDeploy possa chamar para validar uma implantação. É possível usar a mesma função ou uma diferente para os eventos de ciclo de vida de implantação. Após a conclusão dos testes de validação, a função do Lambda
AfterAllowTrafficchama de volta o CodeDeploy e entrega um resultado deSucceededouFailed. Para mais informações, consulte a seção “Hooks” do AppSpec no Guia do usuário do AWS CodeDeploy.Obrigatório: não
BeforeInstall-
Função a ser usada para executar tarefas antes que o conjunto de tarefas de substituição seja criado.
Obrigatório: não
AfterInstall-
Função a ser usada para executar tarefas depois que o conjunto de tarefas de substituição for criado e um dos grupos de destino for associado a ele.
Obrigatório: não
AfterAllowTestTraffic-
Função a ser usada para executar tarefas depois que o listener de teste distribuir o tráfego para o conjunto de tarefas de substituição.
Obrigatório: não
BeforeAllowTraffic-
Função a ser usada para executar tarefas depois que o segundo grupo de destino for associado ao conjunto de tarefas de substituição, mas antes que o tráfego seja deslocado para o conjunto de tarefas de substituição.
Obrigatório: não
AfterAllowTraffic-
Função a ser usada para executar tarefas depois que o segundo grupo de destino distribuir o tráfego para o conjunto de tarefas de substituição.
Obrigatório: não
ServiceRole-
A função de execução a ser usada pelo CloudFormation para executar as implantações azul/verde. Para obter uma lista das permissões necessárias, consulte Permissões do IAM para implantações azuis/verdes.
Obrigatório: não
Applications-
Especifica as propriedades do aplicativo do Amazon ECS.
Obrigatório: Sim
Target-
Obrigatório: Sim
Type-
O tipo de recurso.
Obrigatório: Sim
LogicalID-
O ID lógico do recurso.
Obrigatório: Sim
ECSAttributes-
Os recursos que representam os vários requisitos de sua implantação de aplicativos do Amazon ECS.
Obrigatório: Sim
TaskDefinitions-
O ID lógico do AWS::ECS::TaskDefinition recurso para executar o contêiner do Docker que contém seu aplicativo do Amazon ECS.
Obrigatório: Sim
TaskSets-
Os IDs lógicos dos recursos AWS::ECS::TaskSet a serem usados como conjuntos de tarefas para o aplicativo.
Obrigatório: Sim
TrafficRouting-
Especifica os recursos usados para roteamento de tráfego.
Obrigatório: Sim
ProdTrafficRoute-
O listener é usado pelo load balancer para direcionar o tráfego para seus grupos de destino.
Obrigatório: Sim
Type-
O tipo do recurso.
AWS::ElasticLoadBalancingV2::ListenerObrigatório: Sim
LogicalID-
O ID lógico do recurso.
Obrigatório: Sim
TestTrafficRoute-
O listener é usado pelo load balancer para direcionar o tráfego para seus grupos de destino.
Obrigatório: Sim
Type-
O tipo do recurso.
AWS::ElasticLoadBalancingV2::ListenerObrigatório: Sim
LogicalID-
O ID lógico do recurso.
Obrigatório: não
TargetGroups-
ID lógico dos recursos a serem usados como grupos de destino para rotear o tráfego para o destino registrado.
Obrigatório: Sim