

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Coordina la dipendenza dalle risorse e l'esecuzione delle attività utilizzando il costrutto AWS Fargate WaitCondition hook
<a name="use-the-aws-fargate-waitcondition-hook-construct"></a>

*Stan Fan, Amazon Web Services*

## Riepilogo
<a name="use-the-aws-fargate-waitcondition-hook-construct-summary"></a>

Questo modello descrive il pacchetto WaitCondition hook (`waitcondition-hook-for-aws-fargate-task`) npm, una soluzione nativa per il cloud progettata per orchestrare le [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html)attività nei cluster Amazon Elastic Container Service (Amazon ECS) Elastic Container Service (Amazon ECS). 

L' WaitCondition hook è un AWS Cloud Development Kit (AWS CDK) costrutto specificamente progettato per l'integrazione con. AWS CloudFormation L' WaitCondition hook offre le seguenti funzionalità chiave:
+ Funziona come un meccanismo di attesa, sospendendo l'esecuzione CloudFormation dello stack fino al completamento di un'attività Fargate specificata, il che aiuta con le distribuzioni ordinate e l'approvvigionamento delle risorse.
+ Supporti TypeScript e Python, che lo rendono ideale per i AWS CDK progetti.
+ Consente a sviluppatori e architetti di orchestrare le implementazioni coordinando il completamento delle attività e la gestione delle risorse per le applicazioni containerizzate su. AWS
+ Consente l'esecuzione delle attività di Fargate con uno o più contenitori incorporati in un CloudFormation ciclo di vita e può gestire gli errori delle attività e ripristinare lo stack dopo un errore di attività. CloudFormation 
+ Fornisce la flessibilità necessaria per aggiungere dipendenze tra le risorse e i risultati dell'esecuzione delle attività di Fargate, abilitando attività personalizzate o richiamando altri endpoint. Ad esempio, è possibile mettere in pausa uno CloudFormation stack e attendere una migrazione del database (eseguita da un'attività di Fargate) e fornire altre risorse che potrebbero dipendere dal successo della migrazione del database.

## Prerequisiti e limitazioni
<a name="use-the-aws-fargate-waitcondition-hook-construct-prereqs"></a>

**Prerequisiti**
+ Un attivo. Account AWS
+ AWS Cloud Development Kit (AWS CDK) Interfaccia a riga di comando (CLI) installata su una workstation locale. Per ulteriori informazioni, consulta il [riferimento alla AWS CDK CLI](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) AWS CDK nella documentazione.
+ [Node package manager (npm), installato su una workstation locale e configurato per l'ingresso.AWS CDK TypeScript](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-typescript.html) Per ulteriori informazioni, vedere [Download e installazione di Node.js e npm nella documentazione di npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).
+ Yarn installato su una workstation locale. Per ulteriori informazioni, vedere [Installazione nella documentazione di](https://yarnpkg.com/getting-started/install) Yarn.

**Limitazioni**
+ Questa soluzione viene distribuita su un unico dispositivo. Account AWS
+ Il codice di ritorno previsto `0` per il contenitore indica l'esito positivo. Qualsiasi altro codice restituito indica un errore e lo CloudFormation stack verrà ripristinato. 
+ Alcuni Servizi AWS non sono disponibili in tutti Regioni AWS. Per la disponibilità per regione, vedi [Servizi AWS per regione](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Per endpoint specifici, consulta [Endpoints and quotas del servizio](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e scegli il link relativo al servizio.

## Architecture
<a name="use-the-aws-fargate-waitcondition-hook-construct-architecture"></a>

Il diagramma seguente mostra l'architettura di costruzione.

![\[Flusso di lavoro AWS Step Functions di waitcondition-hook-for-aws -fargate-task construct.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/e58680e3-f89f-422f-b0e1-e85605ae8bf9/images/598020df-908c-4486-9844-c05af759c18a.png)


Il diagramma mostra il flusso di lavoro di: `waitcondition-hook-for-aws-fargate-task`

1. `WaitCondition`e `WaitConditionHandler` sono predisposti per ascoltare la risposta delle funzioni. AWS Lambda 

1. A seconda del risultato dell'attività, il `CallbackFunction` o il `ErrorHandlerFunction` viene attivato dal completamento dell'attività Fargate.

1. La funzione Lambda invia un segnale SUCCEED o FAILURE a. `WaitConditionHandler`

1. `WaitConditionHandler`continua a fornire le risorse se il risultato dell'esecuzione dell'attività Fargate ha esito positivo o ripristina lo stack se l'attività non è riuscita.

Il diagramma seguente mostra un esempio di flusso di lavoro per eseguire una migrazione del database.

![\[Flusso di lavoro di migrazione del database Amazon RDS tramite WaitCondition hook construct.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/e58680e3-f89f-422f-b0e1-e85605ae8bf9/images/3b83fc2a-80bb-4ba9-9637-782060493cf0.png)


Il flusso di lavoro di esempio utilizza il `waitcondition-hook-for-aws-fargate-task` costrutto per eseguire una migrazione del database, come segue:

1. Viene fornita un'istanza Amazon Relational Database Service (Amazon RDS).

1. Il `waitcondition-hook-for-aws-fargate-task` costrutto esegue l'attività di migrazione del database e mette in pausa lo stack come istanza Amazon Elastic Compute Cloud (Amazon EC2).

1. Se l'attività di migrazione viene completata correttamente, invia un segnale Succeed a. CloudFormation Altrimenti, invia un segnale Fail CloudFormation e ripristina lo stack.

## Tools (Strumenti)
<a name="use-the-aws-fargate-waitcondition-hook-construct-tools"></a>

**Servizi AWS**
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)è un framework di sviluppo software che consente di definire l'infrastruttura cloud in codice e di eseguirne il provisioning. CloudFormation
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ti aiuta a configurare AWS le risorse, a fornirle in modo rapido e coerente e a gestirle durante tutto il loro ciclo di vita tra Account AWS e. Regioni AWS
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) ti CloudWatch aiuta a monitorare i parametri delle tue AWS risorse e delle applicazioni su cui esegui AWS in tempo reale.
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) è un servizio rapido e scalabile di gestione dei container che ti aiuta a eseguire, arrestare e gestire container in un cluster.
+ [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html)ti aiuta a eseguire contenitori senza dover gestire server o istanze Amazon EC2. Viene utilizzato in combinazione con Amazon ECS.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ti aiuta a gestire in modo sicuro l'accesso alle tue AWS risorse controllando chi è autenticato e autorizzato a utilizzarle.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) è un servizio di calcolo che consente di eseguire il codice senza gestire i server o effettuarne il provisioning. Esegue il codice solo quando necessario e si ridimensiona automaticamente, quindi paghi solo per il tempo di elaborazione che utilizzi.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)è un servizio di orchestrazione senza server che consente di combinare AWS Lambda funzioni e altro Servizi AWS per creare applicazioni aziendali critiche.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) ti aiuta a lanciare AWS risorse in una rete virtuale che hai definito. Questa rete virtuale è simile a una rete tradizionale che gestiresti nel tuo data center, con i vantaggi dell'utilizzo dell'infrastruttura scalabile di. AWS

**Altri strumenti**
+ [npm](https://docs.npmjs.com/about-npm) è un registro software che viene eseguito in un ambiente Node.js e viene utilizzato per condividere o prendere in prestito pacchetti e gestire la distribuzione di pacchetti privati.
+ [Yarn](https://yarnpkg.com/) è un gestore di pacchetti open source che puoi utilizzare per gestire le dipendenze nei progetti. JavaScript Yarn può aiutarti a installare, aggiornare, configurare e rimuovere le dipendenze dei pacchetti.

**Archivio di codice**

Il codice per questo pattern è disponibile nel repository GitHub [waitcondition-hook-for-aws-fargate-task](https://github.com/aws-samples/waitcondition-hook-for-aws-fargate-task).

## Best practice
<a name="use-the-aws-fargate-waitcondition-hook-construct-best-practices"></a>
+ Quando crei la tua AWS CDK app, segui le [migliori pratiche per lo sviluppo e la distribuzione dell'infrastruttura cloud con la](https://docs.aws.amazon.com/cdk/v2/guide/best-practices.html) documentazione contenuta nella v2. AWS CDK AWS CDK 
+ Per AWS Fargate questo compito, segui le [best practice per le immagini dei container Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/application.html) nella documentazione di Amazon ECS.

## Epiche
<a name="use-the-aws-fargate-waitcondition-hook-construct-epics"></a>

### Configura il AWS CDK
<a name="set-up-the-cdk"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa il AWS CDK. | Per installarlo AWS CDK sul computer locale o in un altro ambiente, esegui il seguente comando: <pre>npm install -g aws-cdk@latest</pre> | Architetto del cloud, sviluppatore di app | 
| Bootstrap il. AWS CDK | Il [bootstrap](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) è il processo di preparazione di un [ambiente](https://docs.aws.amazon.com/cdk/v2/guide/environments.html) per la distribuzione. Per avviare il AWS CDK toolkit per il target Account AWS e Regione AWS, esegui il seguente comando:<pre>cdk bootstrap aws://ACCOUNT-NUMBER-1/REGION-1 </pre>Questo comando crea uno CloudFormation stack denominato. `CDKToolkit`  | Architetto del cloud | 

### Esegui l' WaitCondition hook for AWS Fargate tasks construct
<a name="run-the-waitcondition-hook-for-fargatelong-tasks-construct"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea il progetto CDK. | Crea un progetto CDK usando il linguaggio che preferisci. Questo modello utilizza TypeScript. Per creare un progetto CDK utilizzando TypeScript, esegui il seguente comando: `cdk init app —language typescript` | Architetto cloud | 
| Installare il pacchetto . | Esegui `npm install` sul percorso principale del tuo progetto CDK. Dopo aver installato la libreria CDK, esegui il seguente comando per installarla: `waitcondition-hook-for-aws-fargate-task` `yarn add waitcondition-hook-for-aws-fargate-task` | Architetto del cloud | 
| Crea la tua applicazione CDK e i componenti Amazon ECS. | Crea il tuo progetto CDK. È richiesta una risorsa di definizione delle attività di Amazon ECS. Per informazioni sulla creazione di una definizione di attività, consulta [le definizioni delle attività di Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) nella documentazione di Amazon ECS.L'esempio seguente utilizza questo costrutto:<pre>import * as cdk from 'aws-cdk-lib';<br />import { Vpc } from 'aws-cdk-lib/aws-ec2';<br />import * as ecr from 'aws-cdk-lib/aws-ecr';<br />import * as ecs from 'aws-cdk-lib/aws-ecs';<br />import { Construct } from 'constructs';<br />import { FargateRunner } from 'waitcondition-hook-for-aws-fargate-task';<br />import { Queue } from 'aws-cdk-lib/aws-sqs';<br /><br />export class FargateRunnerStack extends cdk.Stack {<br />    constructor(scope: Construct, id: string, props?: cdk.StackProps) {<br />        super(scope, id, props);<br />        // Define the VPC<br />        const vpc = new Vpc(this, 'MyVpc')<br />        // Define the Fargate Task<br />        const taskDefinition = new ecs.FargateTaskDefinition(this, 'MyTask', {});<br />        // Import exiting ecr repo<br />        const repo = ecr.Repository.fromRepositoryName(this, 'MyRepo', 'RepoName');<br />        // Add a container to the task<br />        taskDefinition.addContainer('MyContainer', {<br />            image: ecs.ContainerImage.fromEcrRepository(repo),<br />        });<br />        // Create the Fargate runner<br />        const myFargateRunner = new FargateRunner(this, 'MyRunner', {<br />            fargateTaskDef: taskDefinition,<br />            timeout: `${60 * 5}`,<br />            vpc: vpc,<br />        });<br />        // Create the SQS queue<br />        const myQueue = new Queue(this, 'MyQueue', {});<br />        // Add dependency<br />        myQueue.node.addDependency(myFargateRunner);<br />    }<br />}</pre> | Architetto del cloud | 
| Sintetizza e avvia l'applicazione CDK. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/use-the-aws-fargate-waitcondition-hook-construct.html)Il `waitcondition-hook-for-aws-fargate-task` costrutto esegue il task Fargate.  | Architetto del cloud | 

### Eliminazione
<a name="clean-up"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eliminare le risorse. | Per ripulire le risorse fornite nel passaggio precedente, esegui il comando seguente:<pre>cdk destroy </pre> | Architetto del cloud | 

## Risoluzione dei problemi
<a name="use-the-aws-fargate-waitcondition-hook-construct-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Guasto generale CloudFormation dello stack | Per facilitare la risoluzione dei problemi generali CloudFormation dello stack, aggiungete il `--no-rollback` flag come mostrato nell'esempio seguente: <pre>cdk deploy --no-rollback</pre>Questo comando interromperà il rollback dello CloudFormation stack, il che offre risorse per la risoluzione dei problemi. Per ulteriori informazioni, consulta [Scegliere come gestire gli errori durante il provisioning](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-failure-options.html) delle risorse nella documentazione. CloudFormation  | 
| AWS Step Functions fallimento | Una macchina a AWS Step Functions stati potrebbe non riuscire a funzionare per diversi motivi. Una volta `—disable-rollback` configurato, utilizza i seguenti passaggi per risolvere i problemi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/use-the-aws-fargate-waitcondition-hook-construct.html)Per ulteriori informazioni, consulta [Risoluzione dei problemi in Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/troubleshooting.html) e [Visualizzazione dei dettagli di esecuzione nella console Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-view-execution-details.html#exec-details-intf-step-details) nella AWS Step Functions documentazione. | 
| AWS Lambda errore della funzione | Questo costrutto fornisce due funzioni `CallbackFunction` Lambda: e. `ErrorhandlerFunction` Possono fallire per vari motivi, ad esempio eccezioni non gestite. Utilizza i seguenti passaggi per risolvere i problemi: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/use-the-aws-fargate-waitcondition-hook-construct.html)Per ulteriori informazioni, consulta [Risoluzione dei problemi in Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-troubleshooting.html) nella AWS Lambda documentazione. | 

## Risorse correlate
<a name="use-the-aws-fargate-waitcondition-hook-construct-resources"></a>

**AWS documentazione**
+ [AWS CDK Costruisci un riferimento all'API](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-construct-library.html)
+ [Iniziare con AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html)
+ [Scopri come creare e utilizzare le risorse Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/getting-started.html)
+ [Scopri come iniziare a usare Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/getting-started-with-sfn.html)
+ [Che cos'è AWS CDK?](https://docs.aws.amazon.com/cdk/v2/guide/home.html)

**Altre risorse**
+ [Waitcondition Hook for AWS Fargate task (npm](https://pypi.org/project/waitcondition-hook-for-aws-fargate-task/))
+ [waitcondition-hook-for-aws-fargate-task 1.0.6 (pypi.org](https://pypi.org/project/waitcondition-hook-for-aws-fargate-task/))