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
Argomenti
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
-eevents/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.
-
Per saperne di più su questa funzionalità, consulta AWS SAM CLI, consulta Funzioni Lambda che utilizzano gli autorizzatori Lambda.
-
Per ulteriori informazioni sull'utilizzo degli autorizzatori Lambda in Terraform, vedi Resource: aws_api_gateway_authorizer
nella Terraform registro.
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:
-
Utilizzate il AWS SAM CLI per creare un ambiente di test locale:
$
sam local start-lambda --hook-name terraform
hello_world_function
-
Usa AWS CLI per richiamare la tua funzione localmente:
$
aws lambda invoke --function-name
hello_world_function
--endpoint-urlhttp://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.