View a markdown version of this page

Distribuisci le funzioni C# Lambda 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 C# Lambda usando 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 usi 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 dipendenze specificate. AWS SAM quindi distribuisce la funzione utilizzando uno stack. CloudFormation Per saperne di più sull'utilizzo AWS SAM per creare e distribuire funzioni Lambda, consulta Getting started with AWS SAM nella Developer Guide. 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 si crea e si distribuisce l'applicazione utilizzando AWS SAM, dietro le quinte, la AWS SAM CLI utilizza il dotnet lambda package comando per impacchettare i singoli pacchetti di codici funzione Lambda.

Prerequisiti

SDK .NET 8

Installa l'SDK .NET 8 e Runtime.

AWS SAM CLI versione 1.39 o successiva

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

Distribuisci un esempio AWS SAM applicazione

  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 su 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 l'autorizzazione definita, va bene? , assicurati di entrarey.

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

    • Regione AWS: Il Regione AWS luogo in cui desideri distribuire la tua 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 all'applicazione.

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

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

    • HelloWorldFunction potrebbe non avere l'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

Fasi successive

Per saperne di più sull'utilizzo AWS SAM per creare e distribuire funzioni Lambda usando .NET, consulta le seguenti risorse: