

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Koordinieren Sie die Ressourcenabhängigkeit und die Aufgabenausführung mithilfe des AWS Fargate WaitCondition Hook-Konstrukts
<a name="use-the-aws-fargate-waitcondition-hook-construct"></a>

*Stan Fan, Amazon Web Services*

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

Dieses Muster beschreibt das WaitCondition hook (`waitcondition-hook-for-aws-fargate-task`) npm-Paket, eine cloudnative Lösung, die für die Orchestrierung von [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html)Aufgaben in Amazon Elastic Container Service (Amazon ECS) -Clustern entwickelt wurde. 

Der WaitCondition Hook ist ein AWS Cloud Development Kit (AWS CDK) Konstrukt, das speziell auf die Integration mit zugeschnitten ist. AWS CloudFormation Der WaitCondition Hook bietet die folgenden wichtigen Funktionen:
+ Dient als Mechanismus für Wartebedingungen und unterbricht die CloudFormation Stack-Ausführung, bis eine bestimmte Fargate-Aufgabe abgeschlossen ist. Dies hilft bei ordnungsgemäßer Bereitstellung und Ressourcenbereitstellung.
+ Unterstützt Python TypeScript und ist somit ideal für AWS CDK Projekte.
+ Ermöglicht Entwicklern und Architekten die Orchestrierung von Bereitstellungen, indem sie die Ausführung von Aufgaben und das Ressourcenmanagement für containerisierte Anwendungen koordinieren. AWS
+ Ermöglicht die Ausführung von Fargate-Aufgaben mit einem oder mehreren Containern, die in einen CloudFormation Lebenszyklus eingebettet sind, und kann Aufgabenausfälle behandeln und den CloudFormation Stack nach einem Aufgabenausfall rückgängig machen.
+ Bietet Flexibilität beim Hinzufügen von Abhängigkeiten zwischen Ressourcen und den Ergebnissen der Fargate-Aufgabenausführung, wodurch benutzerdefinierte Aufgaben aktiviert oder andere Endpunkte aufgerufen werden können. Sie können beispielsweise einen CloudFormation Stack anhalten und auf eine Datenbankmigration warten (die durch eine Fargate-Aufgabe durchgeführt wird) und andere Ressourcen bereitstellen, die möglicherweise vom Erfolg der Datenbankmigration abhängen.

## Voraussetzungen und Einschränkungen
<a name="use-the-aws-fargate-waitcondition-hook-construct-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto.
+ AWS Cloud Development Kit (AWS CDK) Die Befehlszeilenschnittstelle (CLI) ist auf einer lokalen Workstation installiert. Weitere Informationen finden Sie in der [AWS CDK CLI-Referenz](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) in der AWS CDK Dokumentation.
+ Node Package Manager (npm), auf einer lokalen Workstation installiert und für den [AWS CDK in TypeScript](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-typescript.html) konfiguriert. Weitere Informationen finden Sie in der [npm-Dokumentation unter Node.js und npm herunterladen und installieren](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).
+ Yarn wurde auf einer lokalen Workstation installiert. Weitere Informationen finden Sie unter [Installation](https://yarnpkg.com/getting-started/install) in der Yarn-Dokumentation.

**Einschränkungen**
+ Diese Lösung wird in einer einzigen Lösung bereitgestellt AWS-Konto.
+ Der erwartete Rückgabecode des Containers steht `0` für Erfolg. Jeder andere Rückgabecode weist auf einen Fehler hin und der CloudFormation Stack wird zurückgesetzt. 
+ Einige AWS-Services sind nicht in allen verfügbar AWS-Regionen. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie [AWS-Services unter Nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Informationen zu bestimmten Endpunkten finden Sie unter [Dienstendpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html). Wählen Sie dort den Link für den Dienst aus.

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

Das folgende Diagramm zeigt die Konstruktarchitektur.

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


Das Diagramm zeigt den Arbeitsablauf von: `waitcondition-hook-for-aws-fargate-task`

1. `WaitCondition`und `WaitConditionHandler` sind so eingerichtet, dass sie die Antwort der AWS Lambda Funktionen abhören.

1. Je nach Ergebnis der Aufgabe `ErrorHandlerFunction` wird entweder der `CallbackFunction` oder der durch das Ende der Fargate-Aufgabe ausgelöst.

1. Die Lambda-Funktion sendet ein SUCCEED- oder FAILURE-Signal an`WaitConditionHandler`.

1. `WaitConditionHandler`setzt die Bereitstellung der Ressourcen fort, wenn das Ausführungsergebnis der Fargate-Aufgabe erfolgreich ist, oder setzt den Stack zurück, wenn die Aufgabe fehlgeschlagen ist.

Das folgende Diagramm zeigt ein Beispiel für einen Workflow zur Durchführung einer Datenbankmigration.

![\[Ablauf der Amazon RDS-Datenbankmigration mit WaitCondition Hook-Konstrukt.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/e58680e3-f89f-422f-b0e1-e85605ae8bf9/images/3b83fc2a-80bb-4ba9-9637-782060493cf0.png)


Der Beispiel-Workflow verwendet das `waitcondition-hook-for-aws-fargate-task` Konstrukt, um eine Datenbankmigration wie folgt durchzuführen:

1. Eine Amazon Relational Database Service (Amazon RDS) -Instance wird bereitgestellt.

1. Das `waitcondition-hook-for-aws-fargate-task` Konstrukt führt die Datenbankmigrationsaufgabe aus und pausiert den Stack als Amazon Elastic Compute Cloud (Amazon EC2) -Instance.

1. Wenn die Migrationsaufgabe erfolgreich abgeschlossen wurde, sendet sie ein Erfolgssignal an. CloudFormation Andernfalls sendet sie ein Fehlersignal an den Stack CloudFormation und führt ein Rollback durch.

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

**AWS-Services**
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)ist ein Framework für die Softwareentwicklung, mit dem Sie Cloud-Infrastruktur im Code definieren und bereitstellen können CloudFormation.
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)hilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und zu verwalten AWS-Regionen.
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) hilft Ihnen dabei, die Kennzahlen Ihrer AWS Ressourcen und der Anwendungen, auf denen Sie laufen, AWS in Echtzeit zu überwachen.
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) ist ein hoch skalierbarer, schneller Container-Management-Service, der das Ausführen, Beenden und Verwalten von Containern in einem Cluster vereinfacht.
+ [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html)hilft Ihnen beim Betrieb von Containern, ohne Server oder Amazon EC2 EC2-Instances verwalten zu müssen. Es wird in Verbindung mit Amazon ECS verwendet.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)ist ein serverloser Orchestrierungsservice, mit dem Sie AWS Lambda Funktionen und andere Funktionen kombinieren können, um geschäftskritische AWS-Services Anwendungen zu erstellen.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) hilft Ihnen dabei, AWS Ressourcen in einem von Ihnen definierten virtuellen Netzwerk bereitzustellen. Dieses virtuelle Netzwerk ähnelt einem herkömmlichen Netzwerk, das Sie in Ihrem eigenen Rechenzentrum betreiben würden, und bietet die Vorteile der Nutzung der skalierbaren Infrastruktur von AWS. 

**Andere Tools**
+ [npm](https://docs.npmjs.com/about-npm) ist eine Softwareregistrierung, die in einer Node.js -Umgebung ausgeführt wird und verwendet wird, um Pakete gemeinsam zu nutzen oder auszuleihen und die Bereitstellung von privaten Paketen zu verwalten.
+ [Yarn](https://yarnpkg.com/) ist ein Open-Source-Paketmanager, mit dem Sie Abhängigkeiten in JavaScript Projekten verwalten können. Yarn kann Sie bei der Installation, Aktualisierung, Konfiguration und Entfernung von Paketabhängigkeiten unterstützen.

**Code-Repository**

Der Code für dieses Muster ist im Repository GitHub [waitcondition-hook-for-aws-fargate-task](https://github.com/aws-samples/waitcondition-hook-for-aws-fargate-task) verfügbar.

## Best Practices
<a name="use-the-aws-fargate-waitcondition-hook-construct-best-practices"></a>
+ Folgen Sie beim Erstellen Ihrer AWS CDK App den [Best Practices für die Entwicklung und Bereitstellung der Cloud-Infrastruktur AWS CDK in der v2-Dokumentation](https://docs.aws.amazon.com/cdk/v2/guide/best-practices.html). AWS CDK 
+ Folgen Sie für AWS Fargate diese Aufgabe den [Best Practices für Amazon ECS-Container-Images](https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/application.html) in der Amazon ECS-Dokumentation.

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

### Richten Sie das ein AWS CDK
<a name="set-up-the-cdk"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie das AWS CDK. | Führen Sie den folgenden Befehl aus, um den AWS CDK auf Ihrem lokalen Computer oder einer anderen Umgebung zu installieren: <pre>npm install -g aws-cdk@latest</pre> | Cloud-Architekt, App-Entwickler | 
| Bootstrap das AWS CDK. | [Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) ist der Prozess der Vorbereitung einer [Umgebung](https://docs.aws.amazon.com/cdk/v2/guide/environments.html) für die Bereitstellung. Führen Sie den folgenden Befehl aus, um Ihr AWS CDK Toolkit für das Ziel AWS-Konto und zu AWS-Region booten:<pre>cdk bootstrap aws://ACCOUNT-NUMBER-1/REGION-1 </pre>Dieser Befehl erstellt einen CloudFormation Stack mit dem Namen. `CDKToolkit`  | Cloud-Architekt | 

### Führen Sie das Konstrukt WaitCondition Hook for AWS Fargate Tasks aus
<a name="run-the-waitcondition-hook-for-fargatelong-tasks-construct"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das CDK-Projekt. | Erstellen Sie ein CDK-Projekt in der Sprache, die Sie bevorzugen. Dieses Muster verwendet TypeScript. Führen Sie den folgenden Befehl aus TypeScript, um ein CDK-Projekt mit zu erstellen: `cdk init app —language typescript` | Cloud-Architekt | 
| Installieren Sie das Paket . | Führen Sie es `npm install` im Root-Pfad Ihres CDK-Projekts aus. Nachdem die CDK-Bibliothek installiert wurde, führen Sie zur Installation den folgenden Befehl aus: `waitcondition-hook-for-aws-fargate-task` `yarn add waitcondition-hook-for-aws-fargate-task` | Cloud-Architekt | 
| Erstellen Sie Ihre CDK-Anwendung und Amazon ECS-Komponenten. | Erstellen Sie Ihr CDK-Projekt. Eine Amazon ECS-Aufgabendefinitionsressource ist erforderlich. Informationen zum Erstellen einer Aufgabendefinition finden Sie unter [Amazon ECS-Aufgabendefinitionen](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html) in der Amazon ECS-Dokumentation.Das folgende Beispiel verwendet dieses Konstrukt:<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> | Cloud-Architekt | 
| Synchronisieren und starten Sie die CDK-Anwendung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/use-the-aws-fargate-waitcondition-hook-construct.html)Das `waitcondition-hook-for-aws-fargate-task` Konstrukt führt die Fargate-Aufgabe aus.  | Cloud-Architekt | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereinigen Sie die Ressourcen. | Führen Sie den folgenden Befehl aus, um die im vorherigen Schritt bereitgestellten Ressourcen zu bereinigen:<pre>cdk destroy </pre> | Cloud-Architekt | 

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


| Problem | Lösung | 
| --- | --- | 
| Allgemeiner CloudFormation Stack-Fehler | Um allgemeine CloudFormation Stack-Fehler zu beheben, fügen Sie das `--no-rollback` Flag hinzu, wie im folgenden Beispiel gezeigt: <pre>cdk deploy --no-rollback</pre>Dieser Befehl unterbricht das Rollback des CloudFormation Stacks, sodass Sie Ressourcen für die Fehlerbehebung erhalten. Weitere Informationen finden Sie in der CloudFormation Dokumentation unter [Wählen Sie aus, wie mit Fehlern bei der Bereitstellung von Ressourcen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-failure-options.html) umgegangen werden soll. | 
| AWS Step Functions Fehlschlag | Eine AWS Step Functions Zustandsmaschine kann aus verschiedenen Gründen nicht ausgeführt werden. Wenn `—disable-rollback` konfiguriert, gehen Sie wie folgt vor, um Fehler zu beheben:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/use-the-aws-fargate-waitcondition-hook-construct.html)Weitere Informationen finden Sie in der AWS Step Functions Dokumentation unter [Problembehandlung in Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/troubleshooting.html) und [Anzeigen von Ausführungsdetails in der Step Functions Functions-Konsole](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-view-execution-details.html#exec-details-intf-step-details). | 
| AWS Lambda Funktionsfehler | Dieses Konstrukt stellt zwei Lambda-Funktionen bereit: `CallbackFunction` und`ErrorhandlerFunction`. Sie können aus verschiedenen Gründen fehlschlagen, z. B. aufgrund unbehandelter Ausnahmen. Gehen Sie wie folgt vor, um Fehler zu beheben: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/use-the-aws-fargate-waitcondition-hook-construct.html)Weitere Informationen finden Sie in der AWS Lambda Dokumentation unter [Problembehandlung in Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-troubleshooting.html). | 

## Zugehörige Ressourcen
<a name="use-the-aws-fargate-waitcondition-hook-construct-resources"></a>

**AWS Dokumentation**
+ [AWS CDK API-Referenz erstellen](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-construct-library.html)
+ [Erste Schritte mit dem AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html)
+ [Erfahren Sie, wie Sie Amazon ECS-Ressourcen erstellen und verwenden](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/getting-started.html)
+ [Erfahren Sie, wie Sie mit Step Functions beginnen](https://docs.aws.amazon.com/step-functions/latest/dg/getting-started-with-sfn.html)
+ [Was ist AWS CDK?](https://docs.aws.amazon.com/cdk/v2/guide/home.html)

**Sonstige Ressourcen**
+ [Waitcondition Hook für die AWS Fargate Aufgabe](https://pypi.org/project/waitcondition-hook-for-aws-fargate-task/) (npm)
+ [waitcondition-hook-for-aws-fargate-task](https://pypi.org/project/waitcondition-hook-for-aws-fargate-task/) 1.0.6 (pypi.org)