Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Puoi utilizzarlo AWS Serverless Application Model con Step Functions per creare flussi di lavoro e distribuire l'infrastruttura di cui hai bisogno, comprese le funzioni Lambda APIs e gli eventi, per creare applicazioni serverless.
Puoi anche utilizzare la AWS Serverless Application Model CLI insieme a AWS Toolkit for Visual Studio Code come parte di un'esperienza integrata per creare e distribuire AWS Step Functions macchine a stati. Puoi creare un'applicazione serverless con AWS SAM, quindi creare la tua macchina a stati nell'IDE VS Code. Quindi puoi convalidare, impacchettare e distribuire le tue risorse.
Suggerimento
Per distribuire un'applicazione serverless di esempio che avvia un flusso di lavoro Step Functions utilizzando AWS SAM, vedi Deploy with AWS SAM
Perché usare Step Functions con AWS SAM?
Quando usi Step Functions con AWS SAM puoi:
-
Inizia a utilizzare un modello AWS SAM di esempio.
-
Costruire la tua macchina a stati nella tua applicazione serverless.
-
Utilizza la sostituzione delle variabili per sostituirla ARNs nella tua macchina a stati al momento della distribuzione.
AWS CloudFormation supporti
DefinitionSubstitutions
che consentono di aggiungere riferimenti dinamici nella definizione del flusso di lavoro a un valore fornito nel CloudFormation modello. È possibile aggiungere riferimenti dinamici aggiungendo sostituzioni alla definizione del flusso di lavoro utilizzando la${dollar_sign_brace}
notazione. È inoltre necessario definire questi riferimenti dinamici nellaDefinitionSubstitutions
proprietà della risorsa del StateMachine CloudFormation modello. Queste sostituzioni vengono sostituite con valori effettivi durante il CloudFormation processo di creazione dello stack. Per ulteriori informazioni, consulta DefinitionSubstitutions nel AWS SAM modelli. -
Specificate il ruolo della vostra macchina a stati utilizzando i modelli di AWS SAM policy.
-
Avvia esecuzioni di macchine a stati con API Gateway, EventBridge eventi o in base a una pianificazione all'interno del tuo AWS SAM modello.
Integrazione di Step Functions con le AWS SAM
specifiche
È possibile utilizzare i modelli di AWS SAM policy per aggiungere autorizzazioni alla macchina a stati. Con queste autorizzazioni, puoi orchestrare le funzioni Lambda e AWS altre risorse per formare flussi di lavoro complessi e solidi.
Integrazione delle funzioni a fasi con l’interfaccia a riga di comando SAM
Step Functions è integrato con la AWS SAM CLI. Utilizzare questa opzione per sviluppare rapidamente una macchina a stati nell'applicazione serverless.
Prova il Creare una macchina a stati Step Functions utilizzando AWS SAM tutorial per imparare a creare macchine AWS SAM a stati.
Le funzioni AWS SAM CLI supportate includono:
Comando CLI | Descrizione |
---|---|
sam init |
Inizializza un'applicazione serverless con un modello. AWS SAM Può essere utilizzata con un modello SAM per le funzioni Step. |
sam validate | Convalida un modello. AWS SAM |
sam package |
Pacchettizza un' AWS SAM applicazione. Crea un file ZIP del codice e delle dipendenze, quindi lo carica su Amazon S3. Restituisce quindi una copia del modello AWS SAM , sostituendo i riferimenti agli artefatti locali con la posizione Amazon S3 in cui il comando ha caricato gli artefatti. |
sam deploy | Distribuisce un'applicazione. AWS SAM |
sam publish |
Pubblica un' AWS SAM applicazione su. AWS Serverless Application Repository Questo comando accetta un AWS SAM modello impacchettato e pubblica l'applicazione nella regione specificata. |
Nota
Quando si utilizza AWS SAM local, è possibile emulare Lambda e API Gateway localmente. Tuttavia, non è possibile emulare Step Functions localmente utilizzando AWS SAM.
DefinitionSubstitutions nel AWS SAM modelli
È possibile definire macchine a stati utilizzando CloudFormation modelli con AWS SAM. Usando AWS SAM, è possibile definire la macchina a stati in linea nel modello o in un file separato. I seguenti AWS SAM il modello include una macchina a stati che simula un flusso di lavoro di negoziazione di azioni. Questa macchina a stati ne richiama tre Lambda funzioni per controllare il prezzo di un'azione e determinare se acquistare o vendere l'azione. Questa transazione viene quindi registrata in un Amazon DynamoDB tabella. Il ARNs per il Lambda funzioni e DynamoDB le tabelle nel seguente modello sono specificate utilizzando 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
Il codice seguente è la definizione della macchina a stati nel file stock_trader.asl.json
utilizzato nel Creare una macchina a stati Step Functions utilizzando AWS SAM tutorial. Questa definizione di macchina a stati ne contiene diverse DefinitionSubstitutions
denotate dalla notazione. ${dollar_sign_brace}
Ad esempio, invece di specificare un valore statico Lambda funzione ARN per l'Check Stock Value
attività, viene utilizzata la sostituzione${StockCheckerFunctionArn}
. Questa sostituzione è definita nella proprietà del DefinitionSubstitutions modello. DefinitionSubstitutions
è una mappa di coppie chiave-valore per la risorsa della macchina a stati. InDefinitionSubstitutions
, $ {StockCheckerFunctionArn} esegue il mapping all'ARN della StockCheckerFunction
risorsa utilizzando il CloudFormation funzione intrinseca. !GetAtt
Quando si distribuisce il AWS SAM modello, i valori DefinitionSubstitutions
contenuti nel modello vengono sostituiti con i valori effettivi.
{ "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 } } }
Passaggi successivi
Puoi saperne di più sull'utilizzo di Step Functions AWS SAM con le seguenti risorse:
-
Completa il Creare una macchina a stati Step Functions utilizzando AWS SAM tutorial per creare una macchina a stati con AWS SAM.
-
Specificate una AWS::Serverless::StateMachinerisorsa.
-
Trova modelli di criteri AWS SAM da utilizzare.
-
Utilizzare AWS Toolkit for Visual Studio Codecon Step Functions.
-
Consulta il riferimento AWS SAM CLI per ulteriori informazioni sulle funzionalità disponibili in. AWS SAM
Puoi anche progettare e creare i tuoi flussi di lavoro in Infrastructure as Code (IaC) utilizzando strumenti di creazione visivi, come Workflow Studio in Infrastructure Composer. Per ulteriori informazioni, vedereUtilizzo di Workflow Studio in Infrastructure Composer per creare flussi di lavoro Step Functions.