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:
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 applicationcd
project-directory
sam build
# Step 3 - Deploy your applicationsam 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:
-
Hai creato un AWS account.
-
IAMAutorizzazioni configurate.
-
Installato Homebrew. Nota: Homebrew è solo un prerequisito per Linux e macOS.
-
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:
-
Modello: modelli di avvio AWS rapido
-
Linguaggio: Python, Ruby, NodeJS, Go, Java o. NET
-
Nome progetto: (nome a tua scelta - predefinito è
sam-app
) -
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:
-
template.yaml
: contiene il AWS SAM modello che definisce le AWS risorse dell'applicazione. -
statemachine/stockTrader.asl.json
: contiene la definizione della macchina a stati dell'applicazione, scritta in Utilizzo di Amazon States Language per definire i flussi di lavoro Step Functions.
È 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:
Accedi AWS Management Console e apri la console Step Functions all'indirizzo https://console.aws.amazon.com/states/
. -
Nella navigazione a sinistra, scegliere Macchine a stati.
-
Individuare e scegliere la nuova macchina a stati nell'elenco. Si chiamerà StockTradingStateMachine -
<unique-hash>
. -
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:
Accedi AWS Management Console e apri la AWS CloudFormation console all'indirizzo https://console.aws.amazon.com/cloudformation
. -
Nel riquadro di navigazione a sinistra, selezionare Stacks (Stack).
-
Nell'elenco degli stack, scegliere sam-app (o il nome dello stack creato).
-
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
--regionregion
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