Verwalten einer Container-Aufgabe (Amazon ECS, Amazon SNS) - AWS Step Functions

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.

Verwalten einer Container-Aufgabe (Amazon ECS, Amazon SNS)

Dieses Beispielprojekt zeigt, wie Sie einenAWS Fargate-Aufgabe und anschließend eine Amazon SNS SNS-Benachrichtigung versenden, die darüber informiert, ob der Auftrag erfolgreich abgeschlossen wurde oder fehlgeschlagen ist. Durch die Bereitstellung dieses Beispielprojekts wird einAWS Step Functions-Zustandsautomat, ein Fargate-Cluster und ein Amazon SNS SNS-Thema.

In diesem Projekt verwendet Step Functions einen Zustandsautomaten, um die Fargate-Aufgabe synchron aufzurufen. Anschließend wartet er auf den Erfolg oder Misserfolg der Aufgabe und sendet ein Amazon SNS SNS-Thema mit einer Meldung, ob der Auftrag erfolgreich abgeschlossen wurde oder fehlgeschlagen ist.

Erstellen des Zustandsautomaten und Bereitstellen von Ressourcen

  1. Öffnen SieStep Functions -Konsoleund wähleErstellen eines Zustandsautomatenaus.

  2. Wählen Sie Sample Projects (Beispielprojekte) und anschließend Manage a container task (Verwalten einer Container-Aufgabe).

    Der Code und der Visual Workflow des Zustandsautomaten werden angezeigt.

    
          Benachrichtigungs-Workflow zu Container-Aufgaben.
  3. Wählen Sie Next (Weiter) aus.

    Die Seite Deploy resources (Ressourcen bereitstellen) wird angezeigt und listet die Ressourcen auf, die erstellt werden. Die Ressourcen für dieses Beispielprojekt sind u.a.:

    • Ein Fargate-Cluster

    • Amazon-SNS-Thema

  4. Wählen Sie Deploy Resources (Ressourcen bereitstellen) aus.

    Anmerkung

    Es kann bis zu 10 Minuten dauern, bis diese Ressourcen und dazu gehörende IAM-Berechtigungen erstellt werden. Wenn die Seite Deploy resources (Ressourcen bereitstellen) anzeigt wird, können Sie den Link Stack ID (Stack-ID) öffnen, um zu sehen, welche Ressourcen bereitgestellt werden.

Starten einer neuen Ausführung

  1. Geben Sie auf der Seite New execution (Neue Ausführung) einen Namen für die Ausführung (optional) ein und wählen Sie Start Execution (Ausführung starten).

  2. (Optional) Um die Ausführung leichter zu identifizieren, können Sie einen Namen für sie in derNameaus. Standardmäßig generiert Step Functions automatisch einen eindeutigen Ausführungsnamen.

    Anmerkung

    Mit Step Functions können Sie Statuscomputer-, Ausführungs- und Aktivitätsnamen erstellen, die Nicht-ASCII-Zeichen enthalten. Diese Nicht-ASCII-Namen funktionieren nicht mit AmazonCloudWatchaus. Um sicherzustellen, dass Sie verfolgen könnenCloudWatchMetriken, wählen Sie einen Namen, der nur ASCII-Zeichen verwendet.

  3. Optional können Sie auf den Step Functions zum neu erstellten Zustandsautomaten wechselnDashboardKlicken Sie auf und danach aufNeue Ausführungaus.

  4. Wenn eine Ausführung abgeschlossen ist, können Sie Zustände auf derVisueller Workflowund stöbern Sie durchEingabeundAusgabeunterSchritt-Detailsaus.

Code des Zustandsautomaten aus diesem Beispiel

Der Zustandsautomat in diesem Beispielprojekt lässt sich in integrierenAWS Fargateund Amazon SNS, indem Parameter direkt an diese Ressourcen übergeben werden. Navigieren Sie durch diesen Beispielzustandsautomaten, um zu sehen, wie Step Functions einen Zustandsautomaten verwendet, um die Fargate-Aufgabe synchron aufzurufen, auf den Erfolg oder Misserfolg der Aufgabe wartet und ein Amazon SNS SNS-Thema mit einer Meldung darüber sendet, ob der Auftrag erfolgreich war oder fehlgeschlagen ist.

Weitere Informationen darüber, wie AWS Step Functions andere AWS-Services steuern kann, finden Sie unter Verwenden von AWS Step Functions mit sonstigen Services.

{ "Comment": "An example of the Amazon States Language for notification on an AWS Fargate task completion", "StartAt": "Run Fargate Task", "TimeoutSeconds": 3600, "States": { "Run Fargate Task": { "Type": "Task", "Resource": "arn:aws:states:::ecs:runTask.sync", "Parameters": { "LaunchType": "FARGATE", "Cluster": "arn:aws:ecs:ap-northeast-1:123456789012:cluster/FargateTaskNotification-ECSCluster-VHLR20IF9IMP", "TaskDefinition": "arn:aws:ecs:ap-northeast-1:123456789012:task-definition/FargateTaskNotification-ECSTaskDefinition-13YOJT8Z2LY5Q:1", "NetworkConfiguration": { "AwsvpcConfiguration": { "Subnets": [ "subnet-07e1ad3abcfce6758", "subnet-04782e7f34ae3efdb" ], "AssignPublicIp": "ENABLED" } } }, "Next": "Notify Success", "Catch": [ { "ErrorEquals": [ "States.ALL" ], "Next": "Notify Failure" } ] }, "Notify Success": { "Type": "Task", "Resource": "arn:aws:states:::sns:publish", "Parameters": { "Message": "AWS Fargate Task started by Step Functions succeeded", "TopicArn": "arn:aws:sns:ap-northeast-1:123456789012:FargateTaskNotification-SNSTopic-1XYW5YD5V0M7C" }, "End": true }, "Notify Failure": { "Type": "Task", "Resource": "arn:aws:states:::sns:publish", "Parameters": { "Message": "AWS Fargate Task started by Step Functions failed", "TopicArn": "arn:aws:sns:ap-northeast-1:123456789012:FargateTaskNotification-SNSTopic-1XYW5YD5V0M7C" }, "End": true } } }

IAM-Beispiel

Dieses BeispielAWS Identity and Access Management(IAM-Richtlinie), die vom Beispielprojekt erstellt wurde, enthält die geringstmöglichen Privilegien, die für die Ausführung des Zustandsautomaten und der verwandten Ressourcen erforderlich sind. Es ist eine bewährte Methode, nur die erforderlichen Berechtigungen in die IAM-Richtlinien aufzunehmen.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:ap-northeast-1:123456789012:FargateTaskNotification-SNSTopic-1XYW5YD5V0M7C" ], "Effect": "Allow" }, { "Action": [ "ecs:RunTask" ], "Resource": [ "arn:aws:ecs:ap-northeast-1:123456789012:task-definition/FargateTaskNotification-ECSTaskDefinition-13YOJT8Z2LY5Q:1" ], "Effect": "Allow" }, { "Action": [ "ecs:StopTask", "ecs:DescribeTasks" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:ap-northeast-1:123456789012:rule/StepFunctionsGetEventsForECSTaskRule" ], "Effect": "Allow" } ] }

Weitere Informationen zum Konfigurieren von IAM bei Verwendung von Step Functions mit anderenAWSDienstleistungen, sieheIAM-Richtlinien für integrierte Diensteaus.