As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Coordene a dependência de recursos e a execução de tarefas usando a AWS Fargate WaitCondition construção de gancho
Stan Fan, Amazon Web Services
Resumo
Esse padrão descreve o pacote WaitCondition hook (waitcondition-hook-for-aws-fargate-task) npm, que é uma solução nativa da nuvem projetada para orquestrar AWS Fargatetarefas em clusters do Amazon Elastic Container Service (Amazon ECS).
O WaitCondition gancho é uma AWS Cloud Development Kit (AWS CDK) construção especificamente adaptada para integração com AWS CloudFormation. O WaitCondition gancho fornece os seguintes recursos principais:
Atua como um mecanismo de condição de espera, pausando a execução da CloudFormation pilha até que uma tarefa específica do Fargate seja concluída, o que ajuda nas implantações ordenadas e no provisionamento de recursos.
Suportes TypeScript e Python, o que o torna ideal para AWS CDK projetos.
Permite que desenvolvedores e arquitetos realizem a orquestração de implantações ao coordenar a conclusão de tarefas e o gerenciamento de recursos para aplicações em contêineres na AWS.
Permite executar tarefas do Fargate com um ou vários contêineres incorporados em um CloudFormation ciclo de vida e pode lidar com falhas de tarefas e reverter a pilha após uma falha na CloudFormation tarefa.
Oferece flexibilidade para adicionar dependências entre recursos e os resultados da execução das tarefas do Fargate, permitindo a criação de tarefas personalizadas ou a invocação de outros endpoints. Por exemplo, você pode pausar uma CloudFormation pilha e aguardar a migração do banco de dados (feita por uma tarefa do Fargate) e provisionar outros recursos que podem depender do sucesso da migração do banco de dados.
Pré-requisitos e limitações
Pré-requisitos
Um ativo Conta da AWS.
AWS Cloud Development Kit (AWS CDK) Interface de linha de comando (CLI) instalada em uma estação de trabalho local. Para obter mais informações, consulte a referência da AWS CDK CLI na AWS CDK documentação.
Gerenciador de pacotes Node (npm), instalado em uma estação de trabalho local e configurado para entrada.AWS CDK TypeScript Para obter mais informações, consulte Download e instalação do Node.js e npm
, na documentação do npm. O Yarn instalado em uma estação de trabalho local. Para obter mais informações, consulte Installation
na documentação do Yarn.
Limitações
Essa solução é implantada em um único Conta da AWS.
O código de retorno esperado do contêiner é
0, representando êxito. Qualquer outro código de retorno indica falha e a CloudFormation pilha será revertida.Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte Serviços da AWS by Region
. Para endpoints específicos, consulte Service endpoints and quotas e clique no link correspondente ao serviço desejado.
Arquitetura
O diagrama apresentado a seguir mostra a arquitetura do constructo.

O diagrama mostra o fluxo de trabalho para waitcondition-hook-for-aws-fargate-task:
WaitConditioneWaitConditionHandlersão provisionados para ouvir a resposta das AWS Lambda funções.Dependendo do resultado da tarefa, as funções
CallbackFunctionouErrorHandlerFunctionsão acionadas pelo término da tarefa do Fargate.A função do Lambda envia um sinal de SUCESSO ou FALHA para o
WaitConditionHandler.O
WaitConditionHandlercontinua a provisionar os recursos se o resultado da execução da tarefa do Fargate for bem-sucedido, ou reverte a pilha se a tarefa apresentar falhas.
O diagrama apresentado a seguir mostra um exemplo de fluxo de trabalho para a realização de uma migração de banco de dados.

O fluxo de trabalho de exemplo usa o constructo waitcondition-hook-for-aws-fargate-task para realizar uma migração de banco de dados, conforme descrito abaixo:
Uma instância do Amazon Relational Database Service (Amazon RDS) é provisionada.
A
waitcondition-hook-for-aws-fargate-taskconstrução executa a tarefa de migração do banco de dados e pausa a pilha como uma instância do Amazon Elastic Compute Cloud (Amazon EC2).Se a tarefa de migração for concluída com êxito, ela enviará um sinal de sucesso para CloudFormation. Caso contrário, ele envia um sinal de falha CloudFormation e reverte a pilha.
Ferramentas
Serviços da AWS
AWS Cloud Development Kit (AWS CDK)é uma estrutura de desenvolvimento de software que ajuda você a definir a infraestrutura de nuvem em código e provisioná-la por meio dela CloudFormation.
CloudFormationajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida em Contas da AWS e. Regiões da AWS
CloudWatchA Amazon ajuda você a monitorar as métricas dos seus AWS recursos e dos aplicativos em que você executa AWS em tempo real.
O Amazon Elastic Container Service (Amazon ECS) é um serviço de gerenciamento de contêineres escalável e rápido que facilita a execução, a interrupção e o gerenciamento de contêineres em um cluster.
AWS Fargateajuda você a executar contêineres sem precisar gerenciar servidores ou EC2 instâncias da Amazon. É usado em conjunto com o Amazon ECS.
AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.
O AWS Lambda é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
AWS Step Functionsé um serviço de orquestração sem servidor que ajuda você a combinar AWS Lambda funções e outras Serviços da AWS para criar aplicativos essenciais para os negócios.
A Amazon Virtual Private Cloud (Amazon VPC) ajuda você a lançar AWS recursos em uma rede virtual que você definiu. Esta rede virtual é parecida com uma rede tradicional que você gerenciaria em seu próprio data center, com as vantagens de aproveitar a infraestrutura escalável da AWS.
Outras ferramentas
O npm
é um registro de software executado em um ambiente Node.js e usado para compartilhar ou emprestar pacotes e gerenciar a implantação de pacotes privados. O Yarn
é um gerenciador de pacotes de código aberto que você pode usar para gerenciar dependências em JavaScript projetos. O Yarn pode auxiliar na instalação, atualização, configuração e remoção de dependências de pacotes.
Repositório de código
O código desse padrão está disponível no repositório GitHub waitcondition-hook-for-aws-fargate-task
Práticas recomendadas
Ao criar seu AWS CDK aplicativo, siga as melhores práticas para desenvolver e implantar a infraestrutura de nuvem AWS CDK na documentação AWS CDK v2.
Para a AWS Fargate tarefa, siga as melhores práticas para imagens de contêineres do Amazon ECS na documentação do Amazon ECS.
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Instale AWS CDK o. | Para instalar o AWS CDK em sua máquina local ou em outro ambiente, execute o seguinte comando:
| Arquiteto de nuvem, desenvolvedor de aplicativos |
Inicialize o. AWS CDK | A inicialização é o processo de preparar um ambiente para implantação. Para inicializar seu AWS CDK kit de ferramentas para o destino Conta da AWS e Região da AWS, execute o seguinte comando:
Esse comando cria uma CloudFormation pilha chamada | Arquiteto de nuvem |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Crie o projeto do CDK. | Crie um projeto do CDK com a linguagem de sua preferência. Esse padrão usa TypeScript. Para criar um projeto CDK usando TypeScript, execute o seguinte comando:
| Arquiteto de nuvem |
Instale o pacote . | Execute
| Arquiteto de nuvem |
Desenvolva sua aplicação do CDK e os componentes do Amazon ECS. | Desenvolva seu projeto do CDK. É necessário um recurso de definição de tarefa do Amazon ECS. Para obter mais informações sobre como criar uma definição de tarefa, consulte Definições de tarefa do Amazon ECS na documentação do Amazon ECS. O exemplo apresentado a seguir usa este constructo:
| Arquiteto de nuvem |
Sintetize e execute a aplicação do CDK. |
O constructo | Arquiteto de nuvem |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Limpar os recursos | Para remover os recursos provisionados na etapa anterior, execute o seguinte comando:
| Arquiteto de nuvem |
Solução de problemas
| Problema | Solução |
|---|---|
Falha geral CloudFormation na pilha | Para ajudar a solucionar falhas gerais de CloudFormation pilha, adicione o
Esse comando interromperá a reversão da CloudFormation pilha, o que fornece recursos para solucionar problemas. Para obter mais informações, consulte Escolha como lidar com falhas ao provisionar recursos na CloudFormation documentação. |
AWS Step Functions falha | Uma máquina de AWS Step Functions estado pode falhar na execução por diferentes motivos. Com a opção
Para obter mais informações, consulte Solução de problemas no Step Functions e Visualização dos detalhes da execução no console do Step Functions na AWS Step Functions documentação. |
AWS Lambda falha de função | Este constructo provisiona duas funções do Lambda:
Para obter mais informações, consulte Solução de problemas no Lambda na AWS Lambda documentação. |
Recursos relacionados
AWS documentação
Outros recursos
waitcondition-hook-for-aws-fargate-task
1.0.6 (pypi.org)