Rufen Sie synchrone Express-Workflows über Gateway auf API - 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 synchrone Express-Workflows über Gateway auf API

Dieses Beispielprojekt zeigt, wie Synchronous Express Workflows über Amazon API Gateway aufgerufen werden, um eine Mitarbeiterdatenbank zu verwalten.

In diesem Projekt verwendet Step Functions API Gateway-Endpunkte, um synchrone Express-Workflows von Step Functions zu starten. Diese verwenden dann DynamoDB, um Mitarbeiter in einer Mitarbeiterdatenbank zu suchen, hinzuzufügen und zu entfernen.

Weitere Informationen zu Step Functions Synchronous Express-Workflows finden Sie unterSynchrone und asynchrone Express-Workflows in Step Functions.

Anmerkung

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

Für neue AWS Für Benutzer ist ein kostenloses Nutzungskontingent verfügbar. Im Rahmen dieses Kontingents sind die Services bis zu einem bestimmten Nutzungsumfang kostenlos. Weitere Informationen zur AWS Kosten und das kostenlose Kontingent, siehe Preise für Step Functions.

Schritt 1: Erstellen Sie die Zustandsmaschine

  1. Öffnen Sie die Step Functions Functions-Konsole und wählen Sie Create State Machine.

  2. Geben Sie den Text Invoke Synchronous Express Workflows through API Gateway in das Suchfeld ein und wählen Sie dann Synchronous Express Workflows aufrufen über API Gatewayaus den zurückgegebenen Suchergebnissen.

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

  4. Wählen Sie „Demo ausführen“, um eine schreibgeschützte Version und einen ready-to-deploy Workflow zu erstellen, oder wählen Sie „Darauf aufbauen“, um eine editierbare Zustandsmaschinen-Definition zu erstellen, auf der Sie aufbauen und diese später bereitstellen können.

    In diesem Beispielprojekt werden die folgenden Ressourcen bereitgestellt:

    • Importieren in &S3; Amazon API Gateway HTTPSAPIdas wird von einer Zustandsmaschine aufgerufen.

    • Importieren in &S3; Amazon DynamoDB Tabelle.

    • Drei AWS Step Functions Staatsmaschinen.

    • Verwandt AWS Identity and Access Management (IAM) Rollen.

    Die folgende Abbildung zeigt das Workflow-Diagramm für die Invoke Synchronous Express-Workflows über API GatewayBeispielprojekt:

    Workflow-Diagramm der Invoke Synchronous Express-Workflows bis API GatewayBeispielprojekt.
  5. Wählen Sie Vorlage verwenden, um mit Ihrer Auswahl fortzufahren.

Die nächsten Schritte hängen von Ihrer vorherigen Auswahl ab:

  1. Führen Sie eine Demo durch — Sie können den Status Machine überprüfen, bevor Sie ein schreibgeschütztes Projekt mit Ressourcen erstellen, die bereitgestellt werden von AWS CloudFormation zu Ihrem AWS-Konto.

    Sie können sich die State-Machine-Definition ansehen. Wenn Sie bereit sind, wählen Sie Deploy and run, um das Projekt bereitzustellen und die Ressourcen zu erstellen.

    Die Bereitstellung kann bis zu 10 Minuten dauern, bis Ressourcen und Berechtigungen erstellt sind. Sie können den Stack-ID-Link verwenden, um den Fortschritt zu überwachen AWS CloudFormation.

    Nach Abschluss der Bereitstellung sollte Ihre neue Zustandsmaschine in der Konsole angezeigt werden.

  2. Darauf aufbauen — Sie können die Workflow-Definition überprüfen und bearbeiten. Möglicherweise müssen Sie Werte für Platzhalter im Beispielprojekt festlegen, bevor Sie versuchen, Ihren benutzerdefinierten Workflow auszuführen.

Anmerkung

Für Dienste, die für Ihr Konto bereitgestellt werden, können Standardgebühren anfallen.

Schritt 2: Führen Sie die Zustandsmaschine aus

  1. Wählen Sie auf der Seite State Machines Ihr Beispielprojekt aus.

  2. Wählen Sie auf der Seite mit dem Beispielprojekt die Option Ausführung starten aus.

  3. Gehen Sie im Dialogfeld Ausführung starten wie folgt vor:

    1. (Optional) Geben Sie einen benutzerdefinierten Ausführungsnamen ein, um den generierten Standard zu überschreiben.

      ASCIINichtnamen und Protokollierung

      Step Functions akzeptiert Namen für Zustandsmaschinen, Ausführungen, Aktivitäten und Beschriftungen, die ASCII Nichtzeichen enthalten. Da solche Zeichen nicht mit Amazon funktionieren, empfehlen wir CloudWatch, nur ASCII Zeichen zu verwenden, damit Sie die Messwerte verfolgen können CloudWatch.

    2. (Optional) Geben Sie im Eingabefeld die Eingabewerte als einJSON. Sie können diesen Schritt überspringen, wenn Sie eine Demo ausführen.

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

    Die Step Functions Functions-Konsole leitet Sie zu einer Seite mit den Ausführungsdetails weiter, auf der Sie Status in der Diagrammansicht auswählen können, um die zugehörigen Informationen im Einzelheiten zu den Schritten Bereich zu untersuchen.

Code des Zustandsautomaten aus diesem Beispiel

Die Zustandsmaschine in diesem Beispielprojekt lässt sich in API Gateway und DynamoDB integrieren, indem sie API Gateway verwendet, um einen synchronen Express-Workflow aufzurufen, der dann mithilfe von DynamoDB die Mitarbeiterdatenbank aktualisiert oder aus ihr liest.

Sehen Sie sich diese Beispiel-Zustandsmaschine an, um zu sehen, wie Step Functions Daten aus DynamoDB liest, um Mitarbeiterinformationen abzurufen.

Weitere Informationen zum Aufrufen von Step Functions mithilfe von API Gateway finden Sie im Folgenden.

Weitere Informationen darüber, wie AWS Step Functions kann andere kontrollieren AWS Dienstleistungen, sieheIntegration von Diensten mit Step Functions.

{ "Comment": "This state machine returns an employee entry from DynamoDB", "StartAt": "Read From DynamoDB", "States": { "Read From DynamoDB": { "Type": "Task", "Resource": "arn:aws:states:::dynamodb:getItem", "Parameters": { "TableName": "StepFunctionsSample-SynchronousExpressWorkflowAKIAIOSFODNN7EXAMPLE-DynamoDBTable-ANPAJ2UCCR6DPCEXAMPLE", "Key": { "EmployeeId": {"S.$": "$.employee"} } }, "Retry": [ { "ErrorEquals": [ "DynamoDB.AmazonDynamoDBException" ], "IntervalSeconds": 3, "MaxAttempts": 2, "BackoffRate": 1.5 } ], "Next": "Is Get Successful" }, "Is Get Successful": { "Type": "Choice", "Choices": [ { "Variable": "$.Item", "IsPresent": true, "Next": "Succeed Execution" } ], "Default": "Fail Execution" }, "Succeed Execution": { "Type": "Pass", "Parameters" : { "employee.$": "$.Item.EmployeeId.S", "jobTitle.$": "$.Item.JobTitle.S" }, "End": true }, "Fail Execution": { "Type": "Fail", "Error": "EmployeeDoesNotExist" } } }

Für Informationen zur Konfiguration IAM bei der Verwendung von Step Functions mit anderen AWS Dienste finden Sie unterSo generiert Step Functions IAM Richtlinien für integrierte Dienste.

IAMBeispiele

Diese Beispiele AWS Identity and Access Management (IAM) Die durch das Beispielprojekt generierten 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": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": "*" } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem" ], "Resource": [ "arn:aws:dynamodb:us-east-1:111122223333:table/Write" ] } ] }

Für Informationen zur Konfiguration IAM bei der Verwendung von Step Functions mit anderen AWS Dienste finden Sie unterSo generiert Step Functions IAM Richtlinien für integrierte Dienste.