Distribuisci le funzioni Lambda C# usando AWS SAM - AWS Lambda

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

Distribuisci le funzioni Lambda C# usando AWS SAM

Il 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 utilizzi l'interfaccia a riga di AWS SAM comando (AWS SAM CLI) per creare, impacchettare e distribuire le tue applicazioni. Quando crei una funzione Lambda da un AWS SAM modello, crea AWS SAM automaticamente un pacchetto di distribuzione.zip o un'immagine del contenitore con il codice della funzione e le eventuali dipendenze specificate. AWS SAM quindi distribuisce la funzione utilizzando uno stack.AWS CloudFormation Per ulteriori informazioni sull'utilizzo AWS SAM per creare e distribuire funzioni Lambda, consulta la Guida introduttiva AWS Serverless Application Model alla AWS SAM Developer Guide.

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 distribuisci l'applicazione utilizzando AWS SAM, dietro le quinte, la AWS SAM CLI utilizza il comando per impacchettare i singoli dotnet lambda package bundle di codici delle funzioni Lambda.

Prerequisiti

.NET 8 SDK

Installa .NET 8 SDK e Runtime.

AWS SAM CLI versione 1.39 o successiva

Per informazioni su come installare la versione più recente della AWS SAM CLI, consulta Installazione della AWS SAM CLI.

Implementa un'applicazione di esempio AWS SAM

  1. 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 dotnet8

    Questo 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
  2. 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
  3. Per creare il codice sorgente dell'applicazione, digita il comando riportato di seguito.

    sam build
  4. Per distribuire l'applicazione in AWS, esegui il comando seguente.

    sam deploy --guided

    Questo comando impacchetta e implementa l'applicazione con la seguente serie di prompt. Per accettare le opzioni predefinite, premi Invio.

    Nota

    Perché HelloWorldFunction potrebbe non avere un'autorizzazione definita, va bene? , assicurati di entrarey.

    • Nome dello stack: il nome dello stack da implementare su AWS CloudFormation. Questo nome deve essere unico per te Account AWS e Regione AWS.

    • Regione AWS: La Regione AWS destinazione in cui vuoi distribuire 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. Se si seleziona no, la AWS SAM CLI distribuisce automaticamente le modifiche alle applicazioni.

    • Consenti la creazione di ruoli IAM SAM CLI: molti AWS SAM modelli, incluso quello Hello world in questo esempio, creano ruoli AWS Identity and Access Management (IAM) per consentire alle funzioni Lambda di accedere ad altre funzioni Lambda. Servizi AWS Seleziona Sì per fornire l'autorizzazione a distribuire uno AWS CloudFormation stack che crea o modifica i ruoli IAM.

    • Disabilita il rollback: per impostazione predefinita, se si AWS SAM verifica un errore durante la creazione o la distribuzione dello stack, lo stack torna alla versione precedente. Seleziona No per accettare questa impostazione predefinita.

    • HelloWorldFunction potrebbe non avere un'autorizzazione definita, va bene: Invio. y

    • Salva gli argomenti in samconfig.toml: seleziona Sì per salvare le tue scelte di configurazione. In futuro, potrai eseguire nuovamente sam deploy senza parametri per implementare le modifiche all'applicazione.

  5. 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"}
  6. 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 sull'utilizzo AWS SAM per creare e distribuire funzioni Lambda usando.NET, consulta le seguenti risorse: