Utilizzando il AWS SAM CLI con Terraform per il debug e il test locali - AWS Serverless Application Model

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à.

Utilizzando il AWS SAM CLI con Terraform per il debug e il test locali

Questo argomento spiega come utilizzare l'interfaccia a riga di AWS Serverless Application Model comando supportata (AWS SAM CLI) comandi con il tuo Terraform progetti e Terraform Cloud.

Per fornire feedback e inviare richieste di funzionalità, crea un GitHub Problema.

Test locali con sam local invoke

Nota

Per usare il AWS SAM CLI per eseguire il test localmente, è necessario che Docker sia installato e configurato. Per istruzioni, consulta Installazione di Docker da utilizzare con AWS SAM CLI.

Di seguito è riportato un esempio di test della funzione Lambda a livello locale trasmettendo un evento:

$ sam local invoke --hook-name terraform hello_world_function -e events/event.json -

Per ulteriori informazioni sull'utilizzo di questo comando, consultaIntroduzione ai test con sam local invoke.

Test locali con sam local start-api

Da usare con sam local start-api Terraform, esegui quanto segue:

$ sam local start-api --hook-name terraform

Di seguito è riportato un esempio:

$ sam local start-api --hook-name terraform Running Prepare Hook to prepare the current application Executing prepare hook of hook "terraform" Initializing Terraform application ... Creating terraform plan and getting JSON output .... Generating metadata file Unresolvable attributes discovered in project, run terraform apply to resolve them. Finished generating metadata file. Storing in... Prepare hook completed and metadata file generated at: ... Mounting HelloWorldFunction at http://127.0.0.1:3000/hello [GET] Mounting None at http://127.0.0.1:3000/hello [POST] You can now browse to the above endpoints to invoke your functions. You do not need to restart/reload SAM CLI while working on your functions, changes will be reflected instantly/automatically. If you used sam build before running local commands, you will need to re-run sam build for the changes to be picked up. You only need to restart SAM CLI if you update your AWS SAM template 2023-06-26 13:21:20 * Running on http://127.0.0.1:3000/ (Press CTRL+C to quit)

Per ulteriori informazioni su questo comando, vedereIntroduzione ai test con sam local start-api.

Funzioni Lambda che utilizzano gli autorizzatori Lambda

Per le funzioni Lambda configurate per utilizzare gli autorizzatori Lambda, il AWS SAM CLI invocherà automaticamente l'autorizzatore Lambda prima di richiamare l'endpoint della funzione Lambda.

Test locali con sam local start-lambda

Di seguito è riportato un esempio di test della funzione Lambda localmente con AWS Command Line Interface ()AWS CLI:

  1. Utilizzate il AWS SAM CLI per creare un ambiente di test locale:

    $ sam local start-lambda --hook-name terraform hello_world_function
  2. Usa AWS CLI per richiamare la tua funzione localmente:

    $ aws lambda invoke --function-name hello_world_function --endpoint-url http://127.0.0.1:3001/ response.json --cli-binary-format raw-in-base64-out --payload file://events/event.json

Per ulteriori informazioni su questo comando, vedereIntroduzione ai test con sam local start-lambda.

Terraform Limitazioni

Di seguito sono riportate le limitazioni relative all'utilizzo di AWS SAM CLI con Terraform:

  • Funzioni Lambda collegate a più livelli.

  • Terraform variabili locali che definiscono i collegamenti tra le risorse.

  • Riferimento a una funzione Lambda che non è stata ancora creata. Ciò include le funzioni definite nell'attributo body della risorsa API REST.

Per evitare queste limitazioni, puoi eseguire l'esecuzione terraform apply quando viene aggiunta una nuova risorsa.