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à.
Utilizzo di AWS SAMCLI with Terraform per il debug e il test locali
Questo argomento spiega come utilizzare i AWS Serverless Application Model comandi Command Line Interface (AWS SAMCLI) supportati con i Terraform progetti eTerraform Cloud.
Per fornire feedback e inviare richieste di funzionalità, crea un GitHubproblema
Argomenti
Test locale con sam local invoke
Nota
Per utilizzare il AWS SAMCLI test localmente, è necessario che Docker sia installato e configurato. Per istruzioni, consultare Installazione di Docker da utilizzare con AWS SAM CLI.
Di seguito è illustrato un esempio di test della funzione Lambda in locale tramite trasmissione di 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 locale con sam local start-api
Per utilizzarlo sam local start-api
conTerraform, 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, consultaIntroduzione ai test con sam local start-api.
Funzioni Lambda che utilizzano gli autorizzatori Lambda
Per le funzioni Lambda configurate per utilizzare gli autorizzatori Lambda, richiameranno AWS SAMCLI automaticamente l'autorizzatore Lambda prima di richiamare l'endpoint della funzione Lambda.
-
Per ulteriori informazioni su questa funzionalità, consulta. AWS SAMCLI Funzioni Lambda che utilizzano gli autorizzatori Lambda
-
Per ulteriori informazioni sull'utilizzo degli autorizzatori Lambda inTerraform, consulta Resource: aws_api_gateway_authorizer
nel registro. Terraform
Test locale 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 SAMCLI per creare un ambiente di test locale:
$
sam local start-lambda --hook-name terraform
hello_world_function
-
Uso di AWS CLI per richiamare la funzione in locale:
$
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, consultaIntroduzione ai test con sam local start-lambda.
Limitazioni di Terraform
Di seguito sono riportate le limitazioni relative all'utilizzo di AWS SAMCLI conTerraform:
-
Funzioni Lambda collegate a più livelli.
-
Terraformvariabili 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.