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 mithilfe von Step Functions API Gateway aufrufen, um mit einem Dienst auf zu interagierenAWS Fargateund auch um zu überprüfen, ob der Aufruf erfolgreich war.

Weitere Informationen zu den Serviceintegrationen des API Gateway und Step Functions 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.

Schritt 1: Den Zustandsmaschine erstellen und Ressourcen bereitstellen

  1. Öffne denStep Functions Functions-Konsoleund wähleZustandsmaschine erstellen.

  2. Geben Sie einCall a microservice with API Gatewayim Suchfeld und dannRufen Sie einen Microservice an mitAPI Gatewayaus den Suchergebnissen, die zurückgegeben werden.

  3. Wählen Sie Next (Weiter), um fortzufahren.

  4. Step Functions listet dieAWS-Servicesverwendet in dem von Ihnen ausgewählten Beispielprojekt. Außerdem wird ein Workflow-Diagramm für das Beispielprojekt angezeigt. Stellen Sie dieses Projekt in Ihrem bereitAWS-Kontooder verwenden Sie es als Ausgangspunkt, um Ihre eigenen Projekte zu erstellen. Je nachdem, wie Sie vorgehen möchten, wählen SieEine Demo ausführenoderDarauf bauen.

    Dieses Beispielprojekt stellt die folgenden Ressourcen bereit:

    • EinAmazon API GatewayHTTP-API, die von der Zustandsmaschine aufgerufen wird.

    • EinAmazon API Gateway Amazon VPCLink.

    • Eine Amazon Virtual Private Cloud

    • Eine Application Load Balancer

    • EINFargateCluster.

    • Ein Amazon SNS-Thema

    • Ein AWS Step Functions-Zustandsautomat

    • VerwandtAWS Identity and Access Management(IAM-) Rollen

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

    Die folgende Abbildung zeigt das Workflow-Diagramm fürRufen Sie einen Microservice auf mitAPI GatewayBeispielprojekt:

    
            Workflow-Diagramm desRufen Sie einen Microservice auf mitAPI GatewayBeispielprojekt.
  5. WähleSchablone verwendenum mit Ihrer Auswahl fortzufahren.

  6. Führen Sie eine der folgenden Aktionen aus:

    • Wenn Sie ausgewählt habenDarauf bauen, Step Functions erstellt den Workflow-Prototyp für das von Ihnen ausgewählte Beispielprojekt. Step Functions stellt die in der Workflow-Definition aufgeführten Ressourcen nicht bereit.

      In den von Workflow StudioEntwurfsmodus, ziehen Sie Status per Drag-and-Drop aus demBrowser für Staatenum mit der Erstellung Ihres Workflow-Prototyps fortzufahren. Oder wechseln Sie zuCodemodusdas bietet einen integrierten Code-Editor ähnlich wie VS Code zum Aktualisieren vonAmazon States Language(ASL) Definition Ihrer Zustandsmaschine in der Step Functions Functions-Konsole. Weitere Informationen zur Verwendung von Workflow Studio zum Erstellen Ihrer Zustandsmaschinen finden Sie unterVerwenden von Workflow Studio.

      Wichtig

      Denken Sie daran, den Platzhalter Amazon Resource Name (ARN), den die im Beispielprojekt vor Ihnen verwendeten Ressourcen verwenden soll.führe deinen Workflow aus.

    • Wenn Sie ausgewählt habenEine Demo ausführen, Step Functions erstellt ein schreibgeschütztes Beispielprojekt, das eineAWS CloudFormationVorlage für die Bereitstellung desAWSRessourcen, die in dieser Vorlage aufgeführt sind, für IhreAWS-Konto.

      Tipp

      Um die State-Machine-Definition des Beispielprojekts anzuzeigen, wählen SieCode.

      Wenn du bereit bist, wähleBereitstellen und ausführenum das Beispielprojekt bereitzustellen und die Ressourcen zu erstellen.

      Es kann bis zu 10 Minuten dauern, bis diese Ressourcen und die zugehörigen IAM-Berechtigungen erstellt werden. Während Ihre Ressourcen bereitgestellt werden, können Sie das öffnen CloudFormation Stack-ID-Link, um zu sehen, welche Ressourcen bereitgestellt werden.

      Nachdem alle Ressourcen im Beispielprojekt erstellt wurden, können Sie das neue Beispielprojekt auf derStaatsmaschinenseite.

      Wichtig

      Für jeden in Anspruch genommenen Dienst können Standardgebühren anfallen CloudFormation Schablone.

Schritt 2: Den State Machine ausführen

  1. Auf demStaatsmaschinenSeite, wählen Sie Ihr Beispielprojekt aus.

  2. Wählen Sie auf der Seite mit dem BeispielprojektAusführung starten.

  3. In derAusführung startenGehen Sie im Dialogfeld wie folgt vor:

    1. (Optional) Um Ihre Ausführung zu identifizieren, können Sie einen Namen dafür in derNameKiste. 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 CloudWatch. Um sicherzustellen, dass Sie nachverfolgen können CloudWatch Metriken: Wählen Sie einen Namen, der nur ASCII-Zeichen verwendet.

    2. (Optional) ImEingabeFeld, geben Sie Eingabewerte im JSON-Format ein, um Ihren Workflow auszuführen.

      Wenn Sie sich dafür entschieden habenEine Demo ausführen, Sie müssen keine Ausführungseingaben angeben.

      Anmerkung

      Wenn das von Ihnen bereitgestellte Demo-Projekt vorab ausgefüllte Eingabedaten für die Ausführung enthält, verwenden Sie diese Eingabe, um den Zustandsmaschine auszuführen.

    3. Wählen Sie Start execution (Ausführung starten) aus.

    4. Die Step Functions Functions-Konsole leitet Sie zu einer Seite weiter, die mit Ihrer Ausführungs-ID betitelt ist. Diese Seite ist bekannt alsEinzelheiten zur Ausführungseite. Auf dieser Seite können Sie die Ausführungsergebnisse im Verlauf oder nach Abschluss der Ausführung überprüfen.

      Um die Ausführungsergebnisse zu überprüfen, wählen Sie einzelne Bundesstaaten auf derGraphische Ansicht, und wählen Sie dann die einzelnen Tabs aufEinzelheiten zum SchrittBereich, um die Details der einzelnen Bundesstaaten, einschließlich Eingabe, Ausgabe und Definition, anzuzeigen. Einzelheiten zu den Ausführungsinformationen finden Sie auf derEinzelheiten zur AusführungSeite, sieheSeite mit den Ausführungsdetails — Übersicht über die Benutzeroberfläche.

Code des Zustandsautomaten aus diesem Beispiel

Die Zustandsmaschine in diesem Beispielprojekt integriert sich in API Gateway, indem sie eine API Gateway Gateway-HTTP-API aufruft, die mit einem Dienst auf Fargate verbunden ist. Diese wird in einem privaten Subnetz gehostet und der Zugriff erfolgt über einen privaten Application Load Balancer.

Sehen Sie sich diese Beispiel-Zustandsmaschine an, um zu sehen, wie Step Functions mit API Gateway interagiert 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 } } }

Für Informationen zur Konfiguration von IAM, wenn Sie Step Functions zusammen mit anderen verwendenAWSDienste finden Sie unterIAM-Richtlinien für integrierte Dienste.

IAM-Beispiel

Dieses BeispielAWS Identity and Access ManagementDie vom Beispielprojekt generierten (IAM-) Richtlinien beinhalten die geringsten Rechte, die für die Ausführung der Zustandsmaschine und der zugehörigen Ressourcen erforderlich sind. Wir empfehlen, dass Sie nur die Berechtigungen in Ihre IAM-Richtlinien aufnehmen, die erforderlich sind.

{ "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" } ] }

Für Informationen zur Konfiguration von IAM, wenn Sie Step Functions zusammen mit anderen verwendenAWSDienste finden Sie unterIAM-Richtlinien für integrierte Dienste.