As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Criar uma máquina de estado do Step Functions usando AWS SAM
Neste guia, você baixa, cria e implanta um AWS SAM aplicativo de amostra que contém uma máquina de AWS Step Functions estado. Este aplicativo cria um fluxo de trabalho de negociação de ações simulado que é executado em uma programação predefinida (observe que a programação está desabilitada por padrão para evitar cobranças).
O diagrama a seguir mostra os componentes deste aplicativo:
Veja a seguir uma visualização dos comandos executados para criar o aplicativo de exemplo. Para obter mais detalhes sobre cada um desses comandos, consulte as seções posteriores nesta página
# 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
Pré-requisitos
Este guia pressupõe que você tenha concluído as etapas em Instalando o AWS SAM CLI para seu sistema operacional. Pressupõem-se que você fez o seguinte:
-
Criou uma AWS conta.
-
IAMPermissões configuradas.
-
Instalou o Homebrew. Observação: o Homebrew é apenas um pré-requisito para o Linux e o macOS.
-
Instalou AWS SAM CLI o. Observação: verifique se você tem a versão 0.52.0 ou posterior. É possível verificar a versão executando o comando
sam --version
.
Etapa 1: Fazer download de um aplicativo de exemplo do AWS SAM
Comando a ser executado:
sam init
Siga as instruções na tela para selecionar o seguinte:
-
Modelo: Modelos de início AWS rápido
-
Linguagem: Python, Ruby, NodeJS, Go, Java ou. NET
-
Nome do projeto: (nome de sua escolha, o padrão é
sam-app
) -
Aplicação de início rápido: fluxo de trabalho em várias etapas
O que AWS SAM está fazendo:
Este comando cria um diretório com o nome fornecido para o prompt "Nome do projeto" (o padrão é sam-app
). O conteúdo específico do diretório dependerá da linguagem que você escolher.
Veja a seguir o conteúdo do diretório ao escolher um dos tempos de execução do 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
Existem dois arquivos especialmente interessantes que você pode conferir:
-
template.yaml
: contém o AWS SAM modelo que define os AWS recursos do seu aplicativo. -
statemachine/stockTrader.asl.json
: contém a definição de máquina de estado do aplicativo, escrita em Usando a Amazon States Language para definir fluxos de trabalho do Step Functions.
É possível ver a seguinte entrada no arquivo template.yaml
, que aponta para o arquivo de definição da máquina de estado:
Properties: DefinitionUri: statemachine/stock_trader.asl.json
Pode ser útil manter a definição da máquina de estado como um arquivo separado em vez de incorporá-la ao AWS SAM modelo. Por exemplo, rastrear alterações na definição da máquina de estado será mais fácil se você não incluir a definição no modelo. Você pode usar o Workflow Studio para criar e manter a definição da máquina de estado e exportar a definição do console diretamente para o arquivo de especificação da Amazon States Language sem mesclá-la ao modelo.
Para obter mais informações sobre o aplicativo de exemplo, consulte o arquivo README.md
no diretório do projeto.
Etapa 2: Criar o aplicativo
Comando a ser executado:
Primeiro, mude para o diretório do projeto (ou seja, o diretório onde o arquivo template.yaml
do aplicativo de exemplo está localizado; por padrão é sam-app
) e execute este comando:
sam build
Exemplos de resultado:
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
O que AWS SAM está fazendo:
AWS SAM CLIEle vem com abstrações para vários tempos de execução do Lambda para criar suas dependências e copia todos os artefatos de construção em pastas de teste para que tudo esteja pronto para ser empacotado e implantado. O comando sam build
compila quaisquer dependências que o aplicativo tem e copia os artefatos de compilação para pastas em .aws-sam/build
.
Etapa 3: implantar seu aplicativo na AWS nuvem
Comando a ser executado:
sam deploy --guided
Siga as instruções na tela. Só é possível responder com Enter
para aceitar as opções padrão fornecidas na experiência interativa.
O que AWS SAM está fazendo:
Esse comando implanta seu aplicativo na AWS nuvem. Ele pega os artefatos de implantação que você cria com o sam build
comando, empacota e os carrega em um bucket do Amazon S3 criado AWS SAM CLI por, e implanta o aplicativo usando. AWS CloudFormation Na saída do comando de implantação, é possível ver as alterações que estão sendo feitas na pilha do AWS CloudFormation
.
É possível verificar se a máquina de estado de exemplo do Step Functions foi implantada com êxito seguindo estas etapas:
Faça login no AWS Management Console e abra o console Step Functions em https://console.aws.amazon.com/states/
. -
Na navegação à esquerda, escolha Máquinas de estado.
-
Encontre e escolha a nova máquina de estado na lista. Será nomeado StockTradingStateMachine -
<unique-hash>
. -
Escolha a guia Definição.
Agora é necessário ver uma representação visual da máquina de estado. É possível verificar se a representação visual corresponde à definição da máquina de estado encontrada no arquivo statemachine/stockTrader.asl.json
do diretório do projeto.
Solução de problemas
SAMCLIerro: “essa opção não existe: --guided”
Ao executar sam deploy
, você verá o seguinte erro:
Error: no such option: --guided
Isso significa que você está usando uma versão mais antiga do AWS SAM CLI que não suporta o --guided
parâmetro. Para corrigir isso, você pode atualizar sua versão AWS SAM CLI para 0.33.0 ou posterior ou omitir o --guided
parâmetro do comando. sam deploy
SAMCLIerro: “Falha na criação de recursos gerenciados: não foi possível localizar as credenciais”
Ao executar sam deploy
, você verá o seguinte erro:
Error: Failed to create managed resources: Unable to locate credentials
Isso significa que você não configurou AWS credenciais para permitir que o AWS SAM CLI faça chamadas AWS de serviço. Para corrigir isso, você deve configurar AWS as credenciais. Para obter mais informações, consulte Configuração de AWS credenciais no Guia do AWS Serverless Application Model desenvolvedor.
Limpar
Se você não precisar mais dos AWS recursos criados ao executar este tutorial, poderá removê-los excluindo a AWS CloudFormation pilha que você implantou.
Para excluir a AWS CloudFormation pilha criada com este tutorial usando o AWS Management Console, siga estas etapas:
Faça login no AWS Management Console e abra o AWS CloudFormation console em https://console.aws.amazon.com/cloudformation
. -
No painel de navegação à esquerda, selecionePilhas.
-
Na lista de pilhas, escolha sam-app (ou o nome da pilha criada).
-
Escolha Excluir.
Quando terminar, o status da pilha mudará para DELETE_ COMPLETE.
Como alternativa, você pode excluir a AWS CloudFormation pilha executando o seguinte AWS CLI comando:
aws cloudformation delete-stack --stack-name
sam-app
--regionregion
Verificar pilha excluída
Para os dois métodos de exclusão da AWS CloudFormation pilha, você pode verificar se ela foi excluída acessando https://console.aws.amazon.com/cloudformation