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 API do Step Functions usando o API Gateway
Você pode usar o Amazon API Gateway para associá-lo a AWS Step Functions APIs métodos em uma API do API Gateway. Quando uma solicitação HTTPS for enviada para um método de API, o API Gateway invoca as ações de sua API do Step Functions.
Este tutorial mostra como criar uma API que usa um único recurso e o método POST
para se comunicar com a ação de API StartExecution
. Você usará o console AWS Identity and Access Management (IAM) para criar uma função para o API Gateway. Em seguida, você usará o console do API Gateway para criar uma API do API Gateway, criar um recurso e um método e mapear o método para a ação de API StartExecution
. Ao final, você implantará e testará sua API.
nota
Embora o Amazon API Gateway possa iniciar uma execução do Step Functions chamando StartExecution
, você deve chamar DescribeExecution
para obter o resultado.
Etapa 1: Criar um perfil do IAM para o API Gateway
Antes de criar a API do API Gateway, você precisa permitir que o API Gateway chame ações de API do Step Functions.
Para configurar permissões para o API Gateway
-
Faça login no console do IAM
e escolha Perfis, Criar perfil. -
Na página Select trusted entity (Selecionar entidade confiável), faça o seguinte:
Para o Tipo de entidade confiável, retenha a seleção-padrão de AWS service (Serviço da AWS).
Em Caso de uso, escolha API Gateway na lista suspensa.
Selecione API Gateway e escolha Próximo.
-
Na página Adicionar permissões, escolha Próximo.
-
(Opcional) Na página Nomear, revisar e criar, insira detalhes, como o nome da função. Por exemplo, digite
APIGatewayToStepFunctions
. Selecione Criar perfil.
O perfil do IAM é exibido na lista de perfis.
-
Escolha o nome da sua função e anote o Role ARN (ARN da função), conforme mostrado no exemplo a seguir.
arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
Para anexar uma política ao perfil do IAM
-
Na página Roles (Funções), procure sua função (
APIGatewayToStepFunctions
) e escolha-a. -
Na guia Permissões, escolha Adicionar permissões e Anexar políticas.
-
Na página Anexar política, procure
AWSStepFunctionsFullAccess
, escolha a política e escolha Adicionar permissões.
Etapa 2: Criar a API no API Gateway
Depois de criar o perfil do IAM, poderá criar uma API personalizada do API Gateway.
Para criar a API
-
Abra o console do Amazon API Gateway
e, depois, selecione Criar API. Na página Escolher um tipo de API, no painel API REST, escolha Criar.
Na página Criar API REST, selecione Nova API e, em seguida, insira
StartExecutionAPI
o nome da API.Mantenha o Tipo de endpoint da API como Regional e, depois, selecione Criar API.
Para criar um recurso
-
Na página Recursos do
StartExecutionAPI
, escolha Criar recurso. -
Na página Criar recurso, insira
execution
para Nome do recurso e, depois, selecione Criar recurso.
Para criar um método POST
-
Selecione o recurso /execution e, depois, Criar método.
-
Em Tipo de método, selecione
POST
. -
Em Tipo de integração, selecione Serviço da AWS .
-
Em Região da AWS, selecione uma região na lista.
-
Em AWS service (Serviço da AWS), selecione Step Functions na lista.
Mantenha o subdomínio da AWS em branco.
-
Em Método HTTP, selecione POST na lista.
nota
Todas as ações da API do Step Functions usam o método HTTP
POST
. -
Em Tipo de ação, selecione Usar nome da ação.
-
Em Nome da ação, insira
StartExecution
. -
Em Função de execução, insira o ARN do perfil do IAM criado antes, conforme mostrado no exemplo a seguir.
arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
-
Mantenha as opções padrão para Cache de credenciais e Tempo limite padrão e, depois, selecione Salvar.
O mapeamento visual entre o API Gateway e o Step Functions é exibido na página /execução – POST – Método de execução.
Etapa 3: Testar e implantar a API do API Gateway
Assim que você tiver criado a API, teste-a e implante-a.
Para testar a comunicação entre o API Gateway e o Step Functions
-
Na página /execution - POST - Execução do método, selecione Testar. Talvez seja necessário selecionar o botão de seta para a direita para mostrar a guia.
-
Na guia /execution – POST – Teste de método, copie os parâmetros da solicitação a seguir na seção Corpo da solicitação usando o ARN de uma máquina de estado existente (ou criar uma máquina de estado que use uma função do Lambda) e, depois, selecione Testar.
{ "input": "{}", "name": "MyExecution", "stateMachineArn": "
arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld
" }Para obter mais informações, consulte Request Syntax (Sintaxe da solicitação)
StartExecution
na Referência da API AWS Step Functions .nota
Se não quiser incluir o ARN da máquina de estado no corpo da chamada do API Gateway, será possível configurar um modelo de mapeamento na guia Solicitação de integração, conforme mostrado no exemplo a seguir.
{ "input": "$util.escapeJavaScript($input.json('$'))", "stateMachineArn": "$util.escapeJavaScript($stageVariables.arn)" }
Com essa abordagem, você pode especificar máquinas ARNs de estado diferentes com base em seu estágio de desenvolvimento (por exemplo
dev
,test
, eprod
). Para obter mais informações sobre como especificar variáveis de estágio em um modelo de mapeamento, consulte$stageVariables
no Guia do desenvolvedor do API Gateway. -
A execução começa e o ARN da execução e a respectiva data de referência de época são exibidos em Corpo da resposta.
{ "executionArn": "
arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution
", "startDate": 1486768956.878 }nota
Você pode visualizar a execução escolhendo sua máquina de estado no console do AWS Step Functions
.
Para implantar sua API
-
Na página Recursos de
StartExecutionAPI
, escolha Deploy API. Em Estágio, selecione Novo estágio.
Em Stage name (Nome do estágio), insira
alpha
.(Opcional) Em Description (Descrição), insira uma descrição.
Escolha Implantar.
Para testar sua implantação
-
Na página Estágios de
StartExecutionAPI
, expanda alpha,/, /execution, POST e escolha o método POST. -
Em Substituições de método, selecione o ícone de cópia para copiar o URL de invocação da API. O URL completo deve ser semelhante ao exemplo a seguir.
https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution
-
Na linha de comando, execute o comando
curl
usando o ARN de sua máquina de estado e chame o URL de sua implantação, conforme mostrado no exemplo a seguir.curl -X POST -d '{"input": "{}","name": "MyExecution","stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld"}' https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution
O ARN de execução e sua data de epoch são retornados, conforme mostrado no exemplo a seguir.
{"executionArn":"arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution","startDate":1.486772644911E9}
nota
Se você receber um erro “Token de autenticação ausente”, verifique se o URL de invocação termina com /execution.