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 das auch zusammen mit AWS Serverless Application Model CLI dem 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 dem AWS SAM 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, die einen Step Functions Functions-Workflow mit AWS SAM Ihrem startet AWS-Konto, finden Sie in Modul 11 — Bereitstellen mit 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 CloudFormationunterstützt
DefinitionSubstitutions
, mit denen Sie dynamische Verweise in Ihrer Workflow-Definition zu einem Wert hinzufügen können, den Sie in Ihrer CloudFormation Vorlage angeben. 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 Ihrer CloudFormation Vorlage definieren. Diese Ersetzungen werden bei der Erstellung des CloudFormation Stacks durch tatsächliche Werte ersetzt. Weitere Informationen finden Sie unter DefinitionSubstitutions in Vorlagen AWS SAM. -
Geben Sie die Rolle Ihres Zustandsmaschinen 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.
Step Functions Integration mit dem SAM CLI
Step Functions ist in die integriert AWS SAM CLI. 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:
CLIBefehl | Beschreibung |
---|---|
sam init |
Initialisiert eine serverlose Anwendung mit einer Vorlage. AWS SAM Kann mit einer SAM Vorlage für Step Functions verwendet werden. |
sam validate | Validiert eine AWS SAM Vorlage. |
sam package |
Paketiert 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 Vorlagen AWS SAM
Sie können Zustandsmaschinen mithilfe von CloudFormation Vorlagen mit definierenAWS SAM. Unter Verwendung von AWS SAM können Sie den Zustandsautomaten inline in der Vorlage oder in einer separaten Datei definieren. Die folgende AWS SAM Vorlage enthält eine Zustandsmaschine, die einen Aktienhandelsablauf simuliert. Diese Zustandsmaschine ruft drei Lambda Funktionen auf, um den Kurs einer Aktie zu überprüfen und festzustellen, ob die Aktie gekauft oder verkauft werden soll. Diese Transaktion wird dann in einer Amazon DynamoDB Tabelle aufgezeichnet. Die ARNs Lambda Funktionen und die DynamoDB Tabelle in der folgenden Vorlage werden 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 Lambda Funktion ARN für die Check Stock Value
Aufgabe anzugeben, wird die Substitution verwendet. ${StockCheckerFunctionArn}
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 der StockCheckerFunction
Ressource mithilfe ARN der CloudFormation systemeigenen Funktion zugeordnet. !GetAtt
Wenn Sie die AWS SAM Vorlage bereitstellen, 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:: StateMachine -Ressource an.
-
Suchen Sie die zu verwendenden AWS SAM -Richtlinienvorlagen.
-
AWS Toolkit for Visual Studio CodeMit Step Functions verwenden.
-
Lesen Sie die AWS SAM CLIReferenz, um mehr über die Funktionen zu erfahren, die in verfügbar sind AWS SAM.
Sie können Ihre Workflows auch in Infrastructure as Code (IaC) mithilfe von Visual Buildern wie Workflow Studio in Application Composer entwerfen und erstellen. Weitere Informationen finden Sie unter Verwenden von Workflow Studio in Application Composer um Step Functions Functions-Workflows zu erstellen.