Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Utilizzo AWS SAM per creare flussi di lavoro Step Functions

Modalità Focus
Utilizzo AWS SAM per creare flussi di lavoro Step Functions - AWS Step Functions

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à.

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 in The Workshop. AWS Step Functions

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 DefinitionSubstitutionsche 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 nella DefinitionSubstitutions 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 Valueattività, 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:

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.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.