Implementazione di funzioni Lambda C# tramite AWS SAM
AWS Serverless Application Model (AWS SAM) è un toolkit che aiuta a semplificare il processo di creazione ed esecuzione di applicazioni serverless su AWS. Definisci le risorse per la tua applicazione in un modello YAML o JSON e usa l'interfaccia della linea di comando AWS SAM (AWS SAM CLI) per compilare, creare pacchetti e implementare le tue applicazioni. Quando crei una funzione Lambda da un modello AWS SAM, AWS SAM crea automaticamente un pacchetto di implementazione .zip o un'immagine di container con il codice della funzione e le dipendenze specificate.AWS SAM quindi implementa la funzione utilizzando uno stack CloudFormation. Per ulteriori informazioni sull'utilizzo di AWS SAM per creare e implementare funzioni Lambda, consulta la pagina Nozioni di base su AWS SAM nella Guida introduttiva per gli sviluppatori di AWS Serverless Application Model.
La seguente procedura mostra come scaricare, creare e implementare un'applicazione Hello World .NET di esempio con AWS SAM. Questa applicazione di esempio utilizza una funzione Lambda e un endpoint Gateway Amazon API per implementare un backend API di base. Quando invii una richiesta HTTP GET all'endpoint Gateway API, Gateway API richiama la funzione Lambda. La funzione restituisce un messaggio "hello world", insieme all'indirizzo IP dell'istanza della funzione Lambda che elabora la richiesta.
Quando crei e implementi l'applicazione utilizzando AWS SAM, dietro le quinte, la CLI AWS SAM utilizza il comando dotnet lambda package per impacchettare i singoli bundle di codici delle funzioni Lambda.
Prerequisiti
- SDK .NET 8
-
Installa l'SDK .NET 8
e Runtime. - CLI AWS SAM versione 1.39 o successiva
-
Per informazioni su come installare l'ultima versione della CLI AWS SAM, consulta Installazione della CLI AWS SAM.
Implementare un'applicazione AWS SAM di esempio
-
Inizializza l'applicazione utilizzando il modello .NET Hello world con il comando riportato di seguito.
sam init --app-template hello-world --name sam-app \ --package-type Zip --runtime dotnet8Questo comando crea i seguenti file e directory nella directory di progetto.
└── sam-app ├── README.md ├── events │ └── event.json ├── omnisharp.json ├── samconfig.toml ├── src │ └── HelloWorld │ ├── Function.cs │ ├── HelloWorld.csproj │ └── aws-lambda-tools-defaults.json ├── template.yaml └── test └── HelloWorld.Test ├── FunctionTest.cs └── HelloWorld.Tests.csproj -
Passa alla directory contenente il
template.yaml file. Questo file è un modello che definisce le risorse AWS per l'applicazione, tra cui la funzione Lambda e un'API di Gateway API.cd sam-app -
Per creare il codice sorgente dell'applicazione, digita il comando riportato di seguito.
sam build -
Per implementare l'applicazione su AWS, emetti il comando riportato di seguito:
sam deploy --guidedQuesto comando impacchetta e implementa l'applicazione con la seguente serie di prompt. Per accettare le opzioni predefinite, premi Invio.
Nota
Per HelloWorldFunction potrebbe non avere l'autorizzazione definita, va bene?, assicurati di inserire
y.-
Nome dello stack: il nome dello stack da implementare su CloudFormation. Questo nome deve essere univoco per l'Account AWS e la Regione AWS.
-
Regione AWS: la Regione AWS in cui desideri implementare l'app.
-
Conferma le modifiche prima dell'implementazione: seleziona Sì per rivedere manualmente tutti i set di modifiche prima che AWS SAM implementi modifiche all'applicazione. Selezionando No, la CLI AWS SAM implementa automaticamente le modifiche alle applicazioni.
-
Consenti la creazione di ruoli IAM per la CLI SAM: numerosi modelli AWS SAM, incluso quello Hello world in questo esempio, creano ruoli AWS Identity and Access Management (IAM) per consentire alle funzioni Lambda di accedere ad altri Servizi AWS. Seleziona Sì per fornire l'autorizzazione a distribuire uno stack CloudFormation che crea o modifica i ruoli IAM.
-
Disabilita il rollback: per impostazione predefinita, se AWS SAM riporta un errore durante la creazione o l'implementazione dello stack, lo stack torna alla versione precedente. Seleziona No per accettare questa impostazione predefinita.
-
Per HelloWorldFunction potrebbe non avere l'autorizzazione definita, va bene?, immetti
y. -
Salva gli argomenti in samconfig.toml: seleziona Sì per salvare le tue scelte di configurazione. In futuro, potrai eseguire nuovamente
sam deploysenza parametri per implementare le modifiche all'applicazione.
-
-
Una volta completata l'implementazione dell'applicazione, la CLI restituisce il nome della risorsa Amazon (ARN) della funzione Lambda Hello World e il ruolo IAM creato per essa. Consente inoltre di visualizzare anche l'endpoint dell'API di Gateway API. Per testare l'applicazione, apri l'endpoint in un browser. Si avrà una risposta simile alla seguente.
{"message":"hello world","location":"34.244.135.203"} -
Per eliminare le risorse, emetti il seguente comando. Tieni presente che l'endpoint dell'API che hai creato è un endpoint pubblico accessibile su Internet. È consigliabile eliminare questo endpoint dopo il test.
sam delete
Passaggi successivi
Per ulteriori informazioni su come utilizzare AWS SAM per creare e implementare le funzioni Lambda con .NET, consulta le seguenti risorse: