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.
Zum Erstellen von Step Functions Functions-Workflows verwenden AWS SAM
Sie können Step Functions verwenden AWS Serverless Application Model , um Workflows zu erstellen und die Infrastruktur bereitzustellen, die Sie benötigen, einschließlich Lambda-Funktionen APIs und Ereignisse, um serverlose Anwendungen zu erstellen.
Sie können die AWS Serverless Application Model CLI auch in Verbindung mit der AWS Toolkit for Visual Studio Code als Teil einer integrierten Erfahrung verwenden, um AWS Step Functions Zustandsmaschinen zu erstellen und bereitzustellen. Sie können eine serverlose Anwendung mit AWS SAM der VS Code IDE erstellen und dann Ihre Zustandsmaschine ausbauen. Anschließend können Sie Ihre Ressourcen validieren, verpacken und bereitstellen.
Tipp
Informationen zur Bereitstellung einer serverlosen Beispielanwendung, mit der ein Step Functions Functions-Workflow gestartet wird AWS SAM, finden Sie unter Deploy with AWS SAM
Warum sollten Sie Step Functions mit verwenden AWS SAM?
Wenn Sie Step Functions mit verwenden AWS SAM , können Sie:
-
Beginnen Sie mit einer AWS SAM Beispielvorlage.
-
Integrieren Sie Ihren Zustandsautomaten in Ihre serverlose Anwendung.
-
Verwenden Sie die Variablenersetzung, um ARNs sie zum Zeitpunkt der Bereitstellung durch Ihre Zustandsmaschine zu ersetzen.
AWS CloudFormation unterstützt
DefinitionSubstitutions
, mit denen Sie dynamische Verweise in Ihrer Workflow-Definition zu einem Wert hinzufügen können, den Sie in Ihrem CloudFormation Vorlage. Sie können dynamische Verweise hinzufügen, indem Sie Ihrer Workflow-Definition mithilfe der${dollar_sign_brace}
Notation Substitutionen hinzufügen. Sie müssen diese dynamischen Verweise auch in derDefinitionSubstitutions
Eigenschaft für die StateMachine Ressource in Ihrem definieren CloudFormation Vorlage. Diese Ersetzungen werden während der CloudFormation Prozess der Stapelerstellung. Weitere Informationen finden Sie unter DefinitionSubstitutions in AWS SAM Vorlagen. -
Geben Sie die Rolle Ihrer Zustandsmaschine mithilfe von AWS SAM Richtlinienvorlagen an.
-
Initiieren Sie State-Machine-Ausführungen mit API Gateway, EventBridge Ereignissen oder nach einem Zeitplan innerhalb Ihrer AWS SAM Vorlage.
Step Functions Integration mit der AWS SAM Spezifikation
Sie können die AWS SAM Richtlinienvorlagen verwenden, um Ihrem Zustandsmaschine Berechtigungen hinzuzufügen. Mit diesen Berechtigungen können Sie Lambda-Funktionen und andere AWS Ressourcen orchestrieren, um komplexe und robuste Workflows zu bilden.
Integration von Schrittfunktionen in die SAM-CLI
Step Functions ist in die AWS SAM CLI integriert. Verwenden Sie diese Option, um einen Zustandsautomaten schnell in Ihre serverlose Anwendung zu entwickeln.
Probieren Sie das Erstellen Sie eine Step Functions Functions-Zustandsmaschine mit AWS SAM Tutorial aus, um zu erfahren, wie Sie AWS SAM Zustandsmaschinen erstellen.
Zu den unterstützten AWS SAM CLI-Funktionen gehören:
CLI-Befehl | Beschreibung |
---|---|
sam init |
Initialisiert eine serverlose Anwendung mit einer Vorlage. AWS SAM Kann mit einer SAM-Vorlage für Schrittfunktionen verwendet werden. |
sam validate | Validiert eine Vorlage. AWS SAM |
sam package |
Verpackt eine AWS SAM Anwendung. Es erstellt eine ZIP-Datei mit Ihrem Code und Ihren Abhängigkeiten und lädt sie dann auf Amazon S3 hoch. Anschließend wird eine Kopie Ihrer AWS SAM -Vorlage zurückgegeben, wobei Verweise auf lokale Artefakte durch den Amazon S3-Speicherort ersetzt werden, zu dem der Befehl die Artefakte hochgeladen hat. |
sam deploy | Stellt eine AWS SAM Anwendung bereit. |
sam publish |
Veröffentlichen Sie eine AWS SAM Anwendung auf der AWS Serverless Application Repository. Dieser Befehl verwendet ein AWS SAM Vorlagenpaket und veröffentlicht die Anwendung in der angegebenen Region. |
Anmerkung
Wenn Sie AWS SAM local verwenden, können Sie Lambda und API Gateway lokal emulieren. Sie können Step Functions jedoch nicht lokal emulieren, indem Sie AWS SAM.
DefinitionSubstitutions in AWS SAM Vorlagen
Sie können Zustandsmaschinen definieren mit CloudFormation Vorlagen mit AWS SAM. Verwenden AWS SAMkönnen Sie die Zustandsmaschine direkt in der Vorlage oder in einer separaten Datei definieren. Folgendes AWS SAM Die Vorlage enthält eine Zustandsmaschine, die einen Aktienhandelsablauf simuliert. Diese Zustandsmaschine ruft drei auf Lambda Funktionen, um den Kurs einer Aktie zu überprüfen und festzustellen, ob die Aktie gekauft oder verkauft werden soll. Diese Transaktion wird dann in einem aufgezeichnet Amazon DynamoDB Tabelle. Der ARNs für den Lambda Funktionen und DynamoDB Die Tabelle in der folgenden Vorlage wird mit angegeben DefinitionSubstitutions
.
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: | step-functions-stock-trader Sample SAM Template for step-functions-stock-trader Resources: StockTradingStateMachine: Type: AWS::Serverless::StateMachine Properties: DefinitionSubstitutions: StockCheckerFunctionArn: !GetAtt StockCheckerFunction.Arn StockSellerFunctionArn: !GetAtt StockSellerFunction.Arn StockBuyerFunctionArn: !GetAtt StockBuyerFunction.Arn DDBPutItem: !Sub arn:${AWS::Partition}:states:::dynamodb:putItem DDBTable: !Ref TransactionTable Policies: - DynamoDBWritePolicy: TableName: !Ref TransactionTable - LambdaInvokePolicy: FunctionName: !Ref StockCheckerFunction - LambdaInvokePolicy: FunctionName: !Ref StockBuyerFunction - LambdaInvokePolicy: FunctionName: !Ref StockSellerFunction DefinitionUri: statemachine/stock_trader.asl.json StockCheckerFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/stock-checker/ Handler: app.lambdaHandler Runtime: nodejs18.x Architectures: - x86_64 StockSellerFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/stock-seller/ Handler: app.lambdaHandler Runtime: nodejs18.x Architectures: - x86_64 StockBuyerFunction: Type: AWS::Serverless::Function Properties: CodeUri: functions/stock-buyer/ Handler: app.lambdaHandler Runtime: nodejs18.x Architectures: - x86_64 TransactionTable: Type: AWS::DynamoDB::Table Properties: AttributeDefinitions: - AttributeName: id AttributeType: S
Der folgende Code ist die Zustandsmaschinen-Definition in der Dateistock_trader.asl.json
, die im Erstellen Sie eine Step Functions Functions-Zustandsmaschine mit AWS SAM Tutorial verwendet wird. Diese Zustandsmaschinen-Definition enthält mehrere Zustandsmaschinen, die durch die Notation DefinitionSubstitutions
gekennzeichnet sind. ${dollar_sign_brace}
Anstatt beispielsweise eine statische Angabe zu machen Lambda Funktion ARN für die Check Stock Value
Aufgabe, die Substitution ${StockCheckerFunctionArn}
wird verwendet. Diese Substitution ist in der DefinitionSubstitutions Eigenschaft der Vorlage definiert. DefinitionSubstitutions
ist eine Zuordnung von Schlüssel-Wert-Paaren für die Zustandsmaschinen-Ressource. InDefinitionSubstitutions
, $ {StockCheckerFunctionArn} wird dem ARN der StockCheckerFunction
Ressource zugeordnet, wobei der CloudFormation intrinsische Funktion. !GetAtt
Wenn Sie das bereitstellen AWS SAM Bei der Vorlage werden die DefinitionSubstitutions
in der Vorlage enthaltenen Werte durch die tatsächlichen Werte ersetzt.
{ "Comment": "A state machine that does mock stock trading.", "StartAt": "Check Stock Value", "States": { "Check Stock Value": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.Payload", "Parameters": { "Payload.$": "$", "FunctionName": "${StockCheckerFunctionArn}" }, "Next": "Buy or Sell?" }, "Buy or Sell?": { "Type": "Choice", "Choices": [ { "Variable": "$.stock_price", "NumericLessThanEquals": 50, "Next": "Buy Stock" } ], "Default": "Sell Stock" }, "Buy Stock": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.Payload", "Parameters": { "Payload.$": "$", "FunctionName": "${StockBuyerFunctionArn}" }, "Retry": [ { "ErrorEquals": [ "Lambda.ServiceException", "Lambda.AWSLambdaException", "Lambda.SdkClientException", "Lambda.TooManyRequestsException" ], "IntervalSeconds": 1, "MaxAttempts": 3, "BackoffRate": 2 } ], "Next": "Record Transaction" }, "Sell Stock": { "Type": "Task", "Resource": "arn:aws:states:::lambda:invoke", "OutputPath": "$.Payload", "Parameters": { "Payload.$": "$", "FunctionName": "${StockSellerFunctionArn}" }, "Next": "Record Transaction" }, "Record Transaction": { "Type": "Task", "Resource": "arn:aws:states:::dynamodb:putItem", "Parameters": { "TableName": "${DDBTable}", "Item": { "Id": { "S.$": "$.id" }, "Type": { "S.$": "$.type" }, "Price": { "N.$": "$.price" }, "Quantity": { "N.$": "$.qty" }, "Timestamp": { "S.$": "$.timestamp" } } }, "End": true } } }
Nächste Schritte
In den folgenden Ressourcen erfahren Sie mehr über die Verwendung von Step Functions: AWS SAM
-
Schließen Sie das Erstellen Sie eine Step Functions Functions-Zustandsmaschine mit AWS SAM Tutorial ab, um eine Zustandsmaschine mit zu erstellen AWS SAM.
-
Geben Sie eine AWS::Serverless::StateMachineRessource an.
-
Suchen Sie die zu verwendenden AWS SAM -Richtlinienvorlagen.
-
AWS Toolkit for Visual Studio CodeMit Step Functions verwenden.
-
Weitere Informationen zu den in verfügbaren Funktionen finden Sie in der AWS SAM CLI-Referenz AWS SAM.
Sie können Ihre Workflows auch mithilfe von Visual Buildern wie Workflow Studio in Infrastructure as Code (IaC) entwerfen und erstellen Infrastructure Composer. Weitere Informationen finden Sie unterVerwenden von Workflow Studio in Infrastructure Composer um Step Functions Functions-Workflows zu erstellen.