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.
Coordine la dependencia de los recursos y la ejecución de las tareas mediante la construcción AWS Fargate WaitCondition hook
Stan Fan, Amazon Web Services
Resumen
Este patrón describe el paquete npm WaitCondition hook (waitcondition-hook-for-aws-fargate-task), que es una solución nativa de la nube diseñada para organizar tareas AWS Fargateen clústeres de Amazon Elastic Container Service (Amazon ECS).
El WaitCondition gancho es una AWS Cloud Development Kit (AWS CDK) construcción diseñada específicamente para su integración con. AWS CloudFormation El WaitCondition gancho ofrece las siguientes funciones clave:
Actúa como un mecanismo de condición de espera y detiene la ejecución de la CloudFormation pila hasta que se complete una tarea específica de Fargate, lo que ayuda a organizar las implementaciones y el aprovisionamiento de recursos.
Soporta TypeScript Python, lo que lo hace ideal para AWS CDK proyectos.
Permite a los desarrolladores y arquitectos orquestar las implementaciones coordinando la finalización de las tareas y la administración de los recursos para las aplicaciones en contenedores en AWS.
Permite ejecutar tareas de Fargate con uno o varios contenedores integrados en un CloudFormation ciclo de vida, y puede gestionar los errores de las tareas y revertir la CloudFormation pila después de un error en las tareas.
Proporciona flexibilidad para agregar dependencias entre los recursos y los resultados de la ejecución de tareas de Fargate, lo que permite personalizar tareas o invocar otros puntos de conexión. Por ejemplo, puede pausar una CloudFormation pila y esperar a que se realice una migración de base de datos (realizada mediante una tarea de Fargate) y aprovisionar otros recursos que podrían depender del éxito de la migración de la base de datos.
Requisitos previos y limitaciones
Requisitos previos
Un activo Cuenta de AWS.
AWS Cloud Development Kit (AWS CDK) Interfaz de línea de comandos (CLI) instalada en una estación de trabajo local. Para obtener más información, consulte la referencia de AWS CDK CLI en la AWS CDK documentación.
Gestor de paquetes de nodos (npm), instalado en una estación de trabajo local y configurado para entrar.AWS CDK TypeScript Para obtener más información, consulte Descarga e instalación de Node.js y npm
en la documentación de npm. Yarn instalado en un equipo de trabajo local. Para más información, consulte Installation
en la documentación de Yarn.
Limitaciones
Esta solución se implementa en una sola. Cuenta de AWS
El código de retorno esperado del contenedor es
0para indicar que es correcto. Cualquier otro código devuelto indica un error y la CloudFormation pila se revertirá.Algunos Servicios de AWS no están disponibles en todos Regiones de AWS. Para obtener información sobre la disponibilidad en regiones, consulte Servicios de AWS by Region
. Para ver los puntos de conexión específicos, consulte Service endpoints and quotas y elija el enlace del servicio.
Arquitectura
En el siguiente diagrama se muestra la arquitectura del constructo.

En el diagrama siguiente se muestra el flujo de trabajo de waitcondition-hook-for-aws-fargate-task:
WaitConditionyWaitConditionHandlerestán aprovisionados para escuchar la respuesta de las funciones. AWS LambdaSegún el resultado de la tarea, se desencadena
CallbackFunctionoErrorHandlerFunctional finalizar la tarea de Fargate.La función de Lambda envía una señal de CORRECTO o ERROR a
WaitConditionHandler.WaitConditionHandlercontinúa aprovisionando los recursos si el resultado de la ejecución de la tarea de Fargate es correcto o revierte la pila si se produjo un error en la tarea.
En el diagrama siguiente se muestra un ejemplo de un flujo de trabajo para hacer una migración de bases de datos.

El flujo de trabajo de ejemplo utiliza el constructo waitcondition-hook-for-aws-fargate-task para hacer una migración de base de datos de la manera siguiente:
Una instancia de Amazon Relational Database Service (Amazon RDS) aprovisionada.
La
waitcondition-hook-for-aws-fargate-taskconstrucción ejecuta la tarea de migración de la base de datos y pausa la pila como una instancia de Amazon Elastic Compute Cloud (Amazon EC2).Si la tarea de migración finaliza correctamente, envía una señal de éxito a CloudFormation. De lo contrario, envía una señal de error a la pila CloudFormation y la revierte.
Tools (Herramientas)
Servicios de AWS
AWS Cloud Development Kit (AWS CDK)es un marco de desarrollo de software que le ayuda a definir la infraestructura de la nube en código y a aprovisionarla CloudFormation.
CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y gestionarlos a lo largo de su ciclo de vida en todo el Cuentas de AWS mundo Regiones de AWS.
Amazon le CloudWatch ayuda a supervisar las métricas de sus AWS recursos y las aplicaciones en las que se ejecuta AWS en tiempo real.
Amazon Elastic Container Service (Amazon ECS) es un servicio de administración de contenedores escalable y rápido que ayuda a ejecutar, detener y administrar contenedores en un clúster.
AWS Fargatele ayuda a ejecutar contenedores sin necesidad de gestionar servidores o EC2 instancias de Amazon. Se utiliza en conjunto con Amazon ECS.
AWS Identity and Access Management (IAM) le ayuda a administrar de forma segura el acceso a sus AWS recursos al controlar quién está autenticado y autorizado a usarlos.
AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
AWS Step Functionses un servicio de organización sin servidor que le ayuda a combinar AWS Lambda funciones y otras Servicios de AWS para crear aplicaciones esenciales para la empresa.
Amazon Virtual Private Cloud (Amazon VPC) le ayuda a lanzar AWS recursos en una red virtual que haya definido. Esa red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de utilizar la infraestructura escalable de AWS.
Otras herramientas
npm
es un registro de software que se ejecuta en un entorno Node.js y se utiliza para compartir o tomar prestados paquetes y administrar la implementación de paquetes privados. Yarn
es un administrador de paquetes de código abierto que puede usar para administrar las dependencias en JavaScript los proyectos. Yarn puede serle útil para instalar, actualizar, configurar y eliminar las dependencias de los paquetes.
Repositorio de código
El código de este patrón está disponible en el repositorio GitHub waitcondition-hook-for-aws-fargate-task
Prácticas recomendadas
Al crear su AWS CDK aplicación, siga las prácticas recomendadas para desarrollar e implementar una infraestructura de nube que figuran AWS CDK en la documentación de la versión 2. AWS CDK
Para la AWS Fargate tarea, siga las prácticas recomendadas para las imágenes de contenedores de Amazon ECS de la documentación de Amazon ECS.
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Instale el AWS CDK. | Para instalarlo AWS CDK en su máquina local u otro entorno, ejecute el siguiente comando:
| Arquitecto de la nube, desarrollador de aplicaciones |
Arranque el AWS CDK. | El arranque es el proceso para preparar un entorno para la implementación. Para iniciar su AWS CDK kit de herramientas para el objetivo Cuenta de AWS Región de AWS, ejecute el siguiente comando:
Este comando crea una CloudFormation pila con el nombre. | Arquitecto de la nube |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Crear el proyecto de CDK | Cree un proyecto de CDK con el lenguaje que prefiera. Este patrón usa TypeScript. Para crear un proyecto de CDK mediante TypeScript, ejecute el siguiente comando:
| Arquitecto de la nube |
Instale el paquete. | Ejecute
| Arquitecto de la nube |
Cree su aplicación de CDK y los componentes de Amazon ECS. | Cree el proyecto de CDK. Se requiere un recurso de definición de tareas de Amazon ECS. Para obtener información acerca de la creación de una definición de tareas, consulte Definiciones de tareas de Amazon ECS en la documentación de Amazon ECS. El ejemplo siguiente utiliza este constructo:
| Arquitecto de la nube |
Sintetice y lance la aplicación de CDK. |
El constructo | Arquitecto de la nube |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Eliminación de recursos. | Para limpiar los recursos aprovisionados en el paso anterior, ejecute el comando siguiente:
| Arquitecto de la nube |
Resolución de problemas
| Problema | Solución |
|---|---|
Fallo general en la CloudFormation pila | Para ayudar a solucionar los errores generales de la CloudFormation pila, añade la
Este comando hará que la CloudFormation pila deje de revertirse, lo que te proporcionará recursos para solucionar problemas. Para obtener más información, consulte Elegir cómo gestionar los errores al aprovisionar recursos en la CloudFormation documentación. |
AWS Step Functions error | Es posible que una máquina de AWS Step Functions estados no se ejecute por diferentes motivos. Una vez configurado
Para obtener más información, consulte Solución de problemas en Step Functions y Visualización de los detalles de ejecución en la consola de Step Functions en la AWS Step Functions documentación. |
AWS Lambda fallo de función | Este constructo proporciona dos funciones de Lambda:
Para obtener más información, consulte Solución de problemas en Lambda en la AWS Lambda documentación. |
Recursos relacionados
AWS documentación
Otros recursos