Creare una macchina a stati Step Functions utilizzando AWS SAM - 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à.

Creare una macchina a stati Step Functions utilizzando AWS SAM

In questa guida, si scarica, si crea e si distribuisce un' AWS SAM applicazione di esempio che contiene una macchina a AWS Step Functions stati. Questa applicazione crea un flusso di lavoro di trading di azioni finte che viene eseguito in base a una pianificazione predefinita (si noti che il programma è disabilitato per impostazione predefinita per evitare addebiti).

Il diagramma seguente mostra i componenti di questa applicazione:

Diagramma che mostra il flusso di lavoro per questo tutorial.

Di seguito è riportata un'anteprima dei comandi eseguiti per creare l'applicazione di esempio. Per ulteriori dettagli su ciascuno di questi comandi, vedere le sezioni più avanti in questa pagina

# Step 1 - Download a sample application. For this tutorial you # will follow the prompts to select an AWS Quick Start Template # called 'Multi-step workflow' sam init # Step 2 - Build your application cd project-directory sam build # Step 3 - Deploy your application sam deploy --guided

Prerequisiti

Questa guida presuppone che tu abbia completato i passaggi indicati nell'Installazione di AWS SAM CLI per il tuo sistema operativo. Si presuppone che tu abbia fatto quanto segue:

  1. Hai creato un AWS account.

  2. IAMAutorizzazioni configurate.

  3. Installato Homebrew. Nota: Homebrew è solo un prerequisito per Linux e macOS.

  4. Installato il. AWS SAM CLI Nota: assicurarsi di avere la versione 0.52.0 o successiva. È possibile verificare quale versione si dispone eseguendo il comando sam --version.

Passaggio 1: scaricare un'applicazione AWS SAM di esempio

Comando da eseguire:

sam init

Seguire le istruzioni visualizzate sullo schermo per selezionare quanto segue:

  1. Modello: modelli di avvio AWS rapido

  2. Linguaggio: Python, Ruby, NodeJS, Go, Java o. NET

  3. Nome progetto: (nome a tua scelta - predefinito è sam-app)

  4. Applicazione di avvio rapido: flusso di lavoro in più fasi

Cosa AWS SAM sta facendo:

Questo comando crea una directory con il nome fornito per il prompt 'Nome progetto' (il valore predefinito è sam-app). Il contenuto specifico della directory dipenderà dalla lingua scelta.

Di seguito sono riportati i contenuti della directory quando si sceglie uno dei runtime Python:

├── README.md
├── functions
│   ├── __init__.py
│   ├── stock_buyer
│   │   ├── __init__.py
│   │   ├── app.py
│   │   └── requirements.txt
│   ├── stock_checker
│   │   ├── __init__.py
│   │   ├── app.py
│   │   └── requirements.txt
│   └── stock_seller
│       ├── __init__.py
│       ├── app.py
│       └── requirements.txt
├── statemachine
│   └── stock_trader.asl.json
├── template.yaml
└── tests
    └── unit
        ├── __init__.py
        ├── test_buyer.py
        ├── test_checker.py
        └── test_seller.py

Ci sono due file particolarmente interessanti a cui puoi dare un'occhiata:

È possibile visualizzare la seguente voce nel file template.yaml, che punta al file di definizione della macchina a stati:

Properties: DefinitionUri: statemachine/stock_trader.asl.json

Può essere utile conservare la definizione della macchina a stati come file separato anziché incorporarla nel AWS SAM modello. Ad esempio, tenere traccia delle modifiche alla definizione della macchina a stati è più semplice se non si include la definizione nel modello. Puoi utilizzare Workflow Studio per creare e gestire la definizione della macchina a stati ed esportare la definizione dalla console direttamente nel file delle specifiche di Amazon States Language senza unirla al modello.

Per ulteriori informazioni sull'applicazione di esempio, vedere il file README.md nella directory del progetto.

Passaggio 2: crea la tua applicazione

Comando da eseguire:

Per prima cosa passare alla directory del progetto (ovvero alla directory in cui si trova il file template.yaml per l'applicazione di esempio; per impostazione predefinita è sam-app), quindi eseguire questo comando:

sam build

Esempio di output:

  
 Build Succeeded

 Built Artifacts  : .aws-sam/build
 Built Template   : .aws-sam/build/template.yaml

 Commands you can use next
 =========================
 [*] Invoke Function: sam local invoke
 [*] Deploy: sam deploy --guided
       

Cosa AWS SAM sta facendo:

AWS SAM CLIViene fornito con astrazioni per una serie di runtime Lambda per creare le dipendenze e copia tutti gli elementi di compilazione in cartelle di staging in modo che tutto sia pronto per essere impacchettato e distribuito. Il comando sam build crea tutte le dipendenze dell'applicazione e copia gli artifact di compilazione nelle cartelle in .aws-sam/build.

Fase 3: Implementa la tua applicazione nel cloud AWS

Comando da eseguire:

sam deploy --guided

Seguire le istruzioni visualizzate sullo schermo. È sufficiente rispondere con Enter per accettare le opzioni predefinite fornite nell'esperienza interattiva.

Cosa AWS SAM sta facendo:

Questo comando distribuisce l'applicazione nel AWS cloud. Prende gli elementi di distribuzione creati con il sam build comando, li impacchetta e li carica in un bucket Amazon S3 creato da e distribuisce l'applicazione utilizzando AWS SAM CLI. AWS CloudFormation Nell'output del comando di distribuzione puoi vedere le modifiche apportate allo stack AWS CloudFormation .

È possibile verificare che la macchina a stati Step Functions di esempio sia stata distribuita correttamente seguendo questi passaggi:

  1. Accedi AWS Management Console e apri la console Step Functions all'indirizzo https://console.aws.amazon.com/states/.

  2. Nella navigazione a sinistra, scegliere Macchine a stati.

  3. Individuare e scegliere la nuova macchina a stati nell'elenco. Si chiamerà StockTradingStateMachine -<unique-hash>.

  4. Scegliere la scheda Definizione .

A questo punto dovrebbe essere visualizzata una rappresentazione visiva della macchina a stati. È possibile verificare che la rappresentazione visiva corrisponda alla definizione della macchina a stati trovata nel file statemachine/stockTrader.asl.json della directory del progetto.

Risoluzione dei problemi

SAMCLIerrore: «nessuna opzione del genere: --guided»

Durante l'esecuzione di sam deploy, viene visualizzato il seguente errore:

 
Error: no such option: --guided
            

Ciò significa che stai utilizzando una versione precedente di AWS SAM CLI che non supporta il --guided parametro. Per risolvere questo problema, potete aggiornare la versione AWS SAM CLI alla versione 0.33.0 o successiva oppure omettere il --guided parametro dal comando. sam deploy

SAMCLIerrore: «Impossibile creare risorse gestite: impossibile individuare le credenziali»

Durante l'esecuzione di sam deploy, viene visualizzato il seguente errore:

 
Error: Failed to create managed resources: Unable to locate credentials
            

Ciò significa che non sono state impostate AWS le credenziali per consentire di AWS SAM CLI effettuare chiamate di AWS servizio. Per risolvere questo problema, è necessario impostare AWS le credenziali. Per ulteriori informazioni, consulta Configurazione delle AWS credenziali nella Guida per gli AWS Serverless Application Model sviluppatori.

Pulizia

Se non hai più bisogno delle AWS risorse che hai creato eseguendo questo tutorial, puoi rimuoverle eliminando lo AWS CloudFormation stack che hai distribuito.

Per eliminare lo AWS CloudFormation stack creato con questo tutorial utilizzando il AWS Management Console, segui questi passaggi:

  1. Accedi AWS Management Console e apri la AWS CloudFormation console all'indirizzo https://console.aws.amazon.com/cloudformation.

  2. Nel riquadro di navigazione a sinistra, selezionare Stacks (Stack).

  3. Nell'elenco degli stack, scegliere sam-app (o il nome dello stack creato).

  4. Scegli Elimina.

Al termine, lo stato dello stack cambierà in DELETE_ COMPLETE.

In alternativa, puoi eliminare lo AWS CloudFormation stack eseguendo il seguente comando: AWS CLI

aws cloudformation delete-stack --stack-name sam-app --region region

Verifica dello stack eliminato

Per entrambi i metodi di eliminazione dello AWS CloudFormation stack, puoi verificare che sia stato eliminato accedendo a https://console.aws.amazon.com/cloudformation, scegliendo Stacks nel riquadro di navigazione a sinistra e scegliendo Eliminato nel menu a discesa a destra della casella di testo di ricerca. Dovresti vedere il nome dello stack sam-app (o il nome dello stack creato) nell'elenco degli stack eliminati.