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à.
Creazione di Step Functions API utilizzando API Gateway
Puoi utilizzare Amazon API Gateway per associare i AWS Step Functions APIscon metodi in un API GatewayAPI. Quando viene inviata una HTTPS richiesta a un API metodo, API Gateway richiama le azioni Step FunctionsAPI.
Questo tutorial mostra come creare un file API che utilizzi una risorsa e il POST
metodo per comunicare con l'azione StartExecution
API. Userai il AWS Identity and Access Management (IAM) console per creare un ruolo per API Gateway. Quindi, utilizzerai la console API Gateway per creare un API GatewayAPI, creare una risorsa e un metodo e mappare il metodo all'StartExecution
APIazione. Infine, implementerai e testerai il tuoAPI.
Nota
Sebbene Amazon API Gateway possa avviare un'esecuzione di Step Functions chiamandoStartExecution
, è necessario DescribeExecution
chiamare per ottenere il risultato.
Fase 1: creare un IAM ruolo per API Gateway
Prima di creare il tuo API GatewayAPI, devi autorizzare API Gateway a richiamare le azioni di Step API Functions.
Per configurare le autorizzazioni per API Gateway
-
Accedi alla IAMconsole
e scegli Ruoli, Crea ruolo. -
Nella pagina Seleziona un'entità attendibile, esegui le operazioni seguenti:
Per il tipo di entità attendibile, mantieni la selezione predefinita di Servizio AWS.
Per Use Case, scegli APIGateway dall'elenco a discesa.
Seleziona APIGateway, quindi scegli Avanti.
-
Nella pagina Add permissions (Aggiungi autorizzazioni), scegli Next (Successivo).
-
(Facoltativo) Nella pagina Nome, revisione e creazione, inserisci i dettagli, ad esempio il nome del ruolo. Ad esempio, specifica
APIGatewayToStepFunctions
. Scegliere Crea ruolo.
Il IAM ruolo viene visualizzato nell'elenco dei ruoli.
-
Scegliete il nome del vostro ruolo e annotate il ruolo ARN, come mostrato nell'esempio seguente.
arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
Per allegare una politica al IAM ruolo
-
Nella pagina Roles (Ruoli) cerca il ruolo (
APIGatewayToStepFunctions
) e quindi selezionalo. -
Nella scheda Autorizzazioni, scegli Aggiungi autorizzazioni, quindi scegli Allega politiche.
-
Nella pagina Allega policy, cerca
AWSStepFunctionsFullAccess
, scegli la policy, quindi scegli Aggiungi autorizzazioni.
Passaggio 2: crea il tuo gateway API API
Dopo aver creato il tuo IAM ruolo, puoi creare il tuo API Gateway personalizzatoAPI.
Per creare il API
-
Apri la console Amazon API Gateway
, quindi scegli Create API. Nella pagina Scegli un API tipo, nel RESTAPIriquadro, scegli Crea.
Nella REST API pagina Crea, seleziona Nuovo API, quindi inserisci
StartExecutionAPI
per il APInome.Mantieni il tipo di API endpoint impostato su Regionale, quindi scegli Crea API.
Per creare una risorsa
-
Nella pagina Risorse di
StartExecutionAPI
, scegli Crea risorsa. -
Nella pagina Crea risorsa, inserisci
execution
il nome della risorsa, quindi scegli Crea risorsa.
Creazione di un metodo POST
-
Scegli la risorsa /execution, quindi scegli il metodo Create.
-
Per Tipo di metodo, scegliete
POST
. -
Per Tipo di integrazione, scegliete AWS servizio.
-
Per Regione AWS, scegli una regione dall'elenco.
-
Per Servizio AWS, scegliete Step Functions dall'elenco.
Mantieni AWS sottodominio vuoto.
-
Per HTTPil metodo, scegli POSTdall'elenco.
Nota
Tutte le API azioni Step Functions utilizzano il HTTP
POST
metodo. -
Per Tipo di operazione scegli Usa nome operazione.
-
Per Nome azione immetti
StartExecution
. -
Per il ruolo Execution, immettete il IAM ruolo ARN del ruolo creato in precedenza, come illustrato nell'esempio seguente.
arn:aws:iam::123456789012:role/APIGatewayToStepFunctions
-
Mantieni le opzioni predefinite per Cache delle credenziali e Timeout predefinito, quindi scegli Salva.
La mappatura visiva tra API Gateway e Step Functions viene visualizzata nella pagina /execution - POST - Method execution.
Fase 3: Test e installazione del gateway API API
Dopo averlo creatoAPI, testalo e distribuiscilo.
Per testare la comunicazione tra API Gateway e Step Functions
-
Nella pagina /execution - POST - Method Execution, scegli la scheda Test. Potrebbe essere necessario scegliere il pulsante freccia destra per visualizzare la scheda.
-
Nella scheda /execution - POST - Method Test, copia i seguenti parametri ARN di richiesta nella sezione Request body utilizzando una macchina a stati esistente (o crea una nuova macchina a stati che utilizza una funzione Lambda), quindi scegli Test.
{ "input": "{}", "name": "MyExecution", "stateMachineArn": "
arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld
" }Per ulteriori informazioni, consulta la sintassi della
StartExecution
richiesta nella AWS Step Functions APIRiferimento.Nota
Se non desideri includere la tua macchina a stati nel corpo ARN della chiamata API Gateway, puoi configurare un modello di mappatura nella scheda Richiesta di integrazione, come mostrato nell'esempio seguente.
{ "input": "$util.escapeJavaScript($input.json('$'))", "stateMachineArn": "$util.escapeJavaScript($stageVariables.arn)" }
Con questo approccio, è possibile specificare ARNs diverse macchine a stati in base alla fase di sviluppo (ad esempio
dev
test
, eprod
). Per ulteriori informazioni sulla specificazione delle variabili di fase in un modello di mappatura, consulta$stageVariables
la APIGateway Developer Guide. -
L'esecuzione viene avviata e l'esecuzione ARN e la relativa data di epoca vengono visualizzate nel corpo della risposta.
{ "executionArn": "
arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution
", "startDate": 1486768956.878 }Nota
È possibile visualizzare l'esecuzione scegliendo la propria macchina a stati sul AWS Step Functions console
.
Per implementare il tuo API
-
Nella pagina Risorse di
StartExecutionAPI
, scegli Deploy. API In Fase, seleziona Nuova fase.
In Stage name (Nome fase) immettere
alpha
.(Facoltativo) In Description (Descrizione), immettere una descrizione.
Seleziona Deploy (Implementa).
Per testare la distribuzione
-
Nella pagina Stages di
StartExecutionAPI
, espandi alpha,/, /execution e scegli il POSTmetodo. POST -
In Method overrides, scegli l'icona di copia per copiare la tua API invoca. URL La versione completa URL dovrebbe essere simile all'esempio seguente.
https://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/alpha/execution
-
Dalla riga ARN di comando, esegui il
curl
comando utilizzando la macchina a stati, quindi richiama la URL distribuzione, come illustrato nell'esempio seguente.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
Vengono restituite l'esecuzione ARN e la relativa data di epoca, come illustrato nell'esempio seguente.
{"executionArn":"arn:aws:states:us-east-1:123456789012:execution:HelloWorld:MyExecution","startDate":1.486772644911E9}
Nota
Se viene visualizzato l'errore «Token di autenticazione mancante», assicurati che l'invoke URL termini con /esecuzione.