Rufen Sie mithilfe der API Gateway Gateway-Integration einen auf Fargate laufenden Microservice auf - 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.

Rufen Sie mithilfe der API Gateway Gateway-Integration einen auf Fargate laufenden Microservice auf

Dieses Beispielprojekt zeigt, wie Sie Step Functions verwenden, um API Gateway aufzurufen, um mit einem Dienst aufAWS Fargate, und auch um zu überprüfen, ob der Anruf erfolgreich war. Dieses Beispielprojekt erstellt Folgendes:

  • Eine Amazon API Gateway Gateway-HTTP-API, die von der Zustandsmaschine aufgerufen wird.

  • Ein Amazon API Gateway Amazon VPC Link.

  • Eine Amazon Virtual Private Cloud.

  • Einen Application Load Balancer.

  • Ein Fargate-Cluster.

  • Amazon-SNS-Thema

  • verbundenAWS Identity and Access Management(IAM) -Rollen

  • Verschiedene zusätzliche Dienste, die erforderlich sind, damit diese Ressourcen zusammenarbeiten können.

Weitere Informationen zu API Gateway und Step Functions Functions--Serviceintegrationen finden Sie im Folgenden:

Anmerkung

Für dieses Beispielprojekt können Gebühren anfallen.

Für neue AWS-Benutzer steht ein kostenloses Nutzungskontingent zur Verfügung. Im Rahmen dieses Kontingents sind die Services bis zu einem bestimmten Nutzungsumfang kostenlos. Weitere Informationen zu AWS-Kosten und zum kostenlosen Kontingent finden Sie unter -Preise.

Erstellen des Zustandsautomaten und Bereitstellen von Ressourcen

  1. Öffnen SieStep Functions Functionund wähleErstellen eines Zustandsautomatenaus.

  2. Klicken Sie aufBeispielprojekteund wählen Sie dannRufen Sie einen Microservice mit API Gateway aufaus.

    Der Code und der Visual Workflow des Zustandsautomaten werden angezeigt.

    
            Schulungsmodell-Workflow.
  3. Wählen Sie Next (Weiter).

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

    • Eine API Gateway HTTP-API

    • Ein API Gateway VpcLink

    • Einen Application Load Balancer

    • Ein Fargate-Cluster

    • Ein -Zustandsautomat

    • Amazon-SNS-Thema

    • Zugehörige IAM-Rollen

    • Verschiedene zusätzliche Dienste, die erforderlich sind, damit diese Ressourcen zusammenarbeiten können.

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

    Anmerkung

    Es kann bis zu 10 Minuten dauern, bis diese Ressourcen und dazugehö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. Öffnen SieStep Functions Functionaus.

  2. Auf derZustandsautomatenaus, wählen Sie denApiGatewayECSStateMachineZustandsautomaten, der vom Beispielprojekt erstellt wurde, und wählen Sie dannStarten der Ausführungaus.

  3. 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).

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

    Anmerkung

    Mit Step Functions können Sie Zustandsmaschinen-, Ausführungs- und Aktivitätsnamen erstellen, die Nicht-ASCII-Zeichen enthalten. Diese Nicht-ASCII-Namen funktionieren nicht mit Amazon CloudWatchaus. Um sicherzustellen, dass Sie verfolgen können CloudWatch -Metriken einen Namen aus, der nur ASCII-Zeichen verwendet.

  5. (Optional) Wechseln Sie zum neu erstellten Zustandsautomaten im Step Functions Functions-BereichDashboardund wählen Sie dannNeue Ausführungaus.

  6. Wenn eine Ausführung abgeschlossen ist, können Sie auf der SeiteVisueller Workflowund stöbern Sie imEingabeundAusgabeunterEinzelheiten zum Schrittaus.

Code des Zustandsautomaten aus diesem Beispiel

Der Zustandsautomat in diesem Beispielprojekt lässt sich in API Gateway, indem eine API Gateway Gateway-HTTP-API aufruft, die mit einem Dienst auf Fargate verbunden ist. Dies wird in einem privaten Subnetz gehostet und der Zugriff erfolgt über einen privaten Application Load Balancer.

Durchsuchen Sie diesen Beispiel-Zustandsautomaten, um zu sehen, wie Step Functions Functions-Interaktion mit API Gateway und Ergebnisse zurückgibt.

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": "Calling APIGW HTTP Endpoint", "StartAt": "Call API", "States": { "Call API": { "Type": "Task", "Resource": "arn:<PARTITION>:states:::apigateway:invoke", "Parameters": { "ApiEndpoint": "<API_ENDPOINT>", "Method": "GET", "AuthType": "IAM_ROLE" }, "Next": "Call Successful?" }, "Call Successful?": { "Type": "Choice", "Choices": [ { "Variable": "$.StatusCode", "NumericEquals": 200, "Next": "Notify Success" } ], "Default": "Notify Failure" }, "Notify Success": { "Type": "Task", "Resource": "arn:<PARTITION>:states:::sns:publish", "Parameters": { "Message": "Call was successful", "TopicArn": "<SNS_TOPIC_ARN>" }, "End": true }, "Notify Failure": { "Type": "Task", "Resource": "arn:<PARTITION>:states:::sns:publish", "Parameters": { "Message": "Call was not successful", "TopicArn": "<SNS_TOPIC_ARN>" }, "End": true } } }

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

IAM-Beispiel

Diese BeispieleAWS Identity and Access Management(IAM) -Policies, die vom Beispielprojekt erstellt wurden, enthalten die geringstmöglichen Privilegien, die für die Ausführung des Zustandsautomaten und der Wir empfehlen, nur die erforderlichen Berechtigungen in Ihre IAM-Richtlinien aufzunehmen.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:us-east-1:111122223333:apigw-ecs-sample-2000-SNSTopic-444455556666" ], "Effect": "Allow" }, { "Action": [ "execute-api:Invoke" ], "Resource": [ "arn:aws:execute-api:us-east-1:111122223333:444444444444/*/GET/*" ], "Effect": "Allow" } ] }
{ "Statement": [ { "Action": [ "ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:Describe*", "ec2:DetachNetworkInterface", "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", "elasticloadbalancing:DeregisterTargets", "elasticloadbalancing:Describe*", "elasticloadbalancing:RegisterInstancesWithLoadBalancer", "elasticloadbalancing:RegisterTargets" ], "Resource": "*", "Effect": "Allow" } ] }
{ "Statement": [ { "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*", "Effect": "Allow" } ] }

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