Utilizzo delle applicazioni serverless - AWSToolkit for VS Code

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 delle applicazioni serverless

AWS Toolkit for Visual Studio Code fornisce il supporto per applicazioni serverless. Utilizzando Toolkit for VS Code, puoi creare applicazioni serverless che contengonoAWS Lambdafunzioni e quindi distribuire le applicazioni inAWS CloudFormationpila.

Presupposti e prerequisiti

Autorizzazioni IAM per applicazioni serverless

Nel Toolkit for VS Code è necessario disporre di un profilo di credenziali che contenga ilAWS Identity and Access Management(IAM) autorizzazioni necessarie per distribuire ed eseguire applicazioni serverless. È necessario disporre di un accesso in lettura/scrittura appropriato ai seguenti servizi: AWS CloudFormation, IAM, Lambda, Amazon API Gateway, Amazon Simple Storage Service (Amazon S3) e Amazon Elastic Container Registry (Amazon ECR).

Per informazioni su come verificare di disporre delle necessarie autorizzazioni per distribuire ed eseguire applicazioni serverless, consultaAutorizzazioninellaAWS Serverless Application ModelGuida per gli sviluppatori. Per informazioni su come impostare il profilo delle credenziali, consultaConfigurazioneAWScredenziali.

Creazione di una nuova applicazione serverless (locale)

Questa procedura mostra come creare un'applicazione serverless con Toolkit for VS Code utilizzandoAWS SAM. L'output di questa procedura è una directory locale sull'host di sviluppo contenente un'applicazione serverless di esempio, che è possibile creare, testare localmente, modificare e distribuire nelAWSCloud.

  1. Per aprireTavolozza dei comandi, scegliVisualizzazione,Tavolozza dei comandie quindi inserireAWS.

  2. ScegliereAWSToolkit Creazione di un'applicazione SAM Lambda.

    
            Finestra di dialogo della tavolozza dei comandi.
    Nota

    Se il fileAWS SAML'interfaccia a riga di comando non è installata, si ottiene un errore nell'angolo in basso a destra dell'editor del codice VS. In questo caso, verifica di aver soddisfatto tutti ipresupposti e prerequisiti.

  3. Scegliere il runtime perAWS SAMapplicazione.

    Nota

    Se selezioni uno dei tempi di esecuzione con "(Image)", l'applicazione è di tipo pacchetto Image. Se selezioni uno dei tempi di esecuzione senza "(Image)", l'applicazione è di tipo Zip. Per ulteriori informazioni sulla differenza tra tipi di pacchetto Image e Zip, consulta Pacchetti di implementazione Lambda nella Guida per gli sviluppatori di AWS Lambda.

  4. A seconda del runtime selezionato, potrebbe essere richiesto di selezionare un gestore delle dipendenze e un'architettura di runtime per l'applicazione SAM.

    Dependency Manager

    Scegli traGradleoMaven.

    Nota

    Questa scelta di strumenti di automazione della compilazione è disponibile solo per i runtime Java.

    Architecture

    Scegli trax86_64oarm64.

    L'opzione per eseguire l'applicazione serverless in un ambiente emulato basato su ARM64 invece dell'ambiente predefinito basato su x86_64 è disponibile per i seguenti runtime:

    • nodejs12.x (ZIP e immagine)

    • nodejs14.x (ZIP e immagine)

    • python3.8 (ZIP e immagine)

    • python3.9 (ZIP e immagine)

    • java8.al2 con Gradle (ZIP e immagine)

    • java8.al2 con Maven (solo ZIP)

    • java11 con Gradle (ZIP e immagine)

    • java11 con Maven (solo ZIP)

    Importante

    È necessario installareAWS CLIversione 1.33.0 o successiva per consentire l'esecuzione delle applicazioni in ambienti basati su ARM64. Per ulteriori informazioni, consulta la pagina Prerequisiti .

  5. Scegliere una località per il nuovo progetto. È possibile utilizzare una cartella dell'area di lavoro esistente se è aperta, selezionare una cartella diversa già esistente o creare una nuova cartella e selezionarla. Per questo esempio, scegliere There are no workspace folders open (Non sono aperte cartelle dell'area di lavoro) per creare una cartella denominata MY-SAM-APP.

  6. Inserire un nome per il nuovo progetto. Per questo esempio, utilizzare my-sam-app-nodejs. Dopo aver premutoInvio, Toolkit for VS Code richiede alcuni istanti per creare il progetto.

Quando il progetto viene creato, l'applicazione viene aggiunta all'area di lavoro corrente. Dovrebbe essere visualizzabile nella finestra Explorer.

Apertura di un'applicazione serverless (locale)

Per aprire un'applicazione serverless sull'host di sviluppo locale, aprire la cartella che contiene il file modello dell'applicazione.

  1. DaFile, scegliApri cartella....

  2. NellaApri cartellapassare alla cartella dell'applicazione serverless da aprire.

  3. SelezionaSeleziona cartella.

Quando si apre la cartella di un'applicazione, questa viene aggiunta allaEsploratorefinestra.

Esecuzione e debug di un'applicazione serverless dal modello (locale)

Puoi utilizzare Toolkit for VS Code per configurare come eseguire il debug delle applicazioni serverless ed eseguirle localmente nell'ambiente di sviluppo.

Si inizia a configurare il comportamento di debug utilizzando il codice VSCodeLensfunzione per identificare una funzione Lambda idonea. CodeLens consente interazioni content-aware con il tuo codice sorgente. Per informazioni su come assicurarsi di poter accedere al CodeLens funzionalità, rivederePresupposti e prerequisitisezione riportata in precedenza in questo argomento.

Nota

In questo esempio, esegui il debug di un'applicazione che utilizza JavaScript. Tuttavia, puoi utilizzare Toolkit per le funzionalità di debug del codice VS con i seguenti linguaggi e tempi di esecuzione:

  • C# - .NET Core 2.1, 3.1; .NET 5.0

  • JavaScript/TypeScript — Node.js 12.x, 14.x

  • Python - 2.7, 3.6, 3.7, 3.8, 3.9

  • Java — 8, 8.al2, 11

  • Go - 1.x

La scelta della lingua influisce anche su come CodeLens rileva handler Lambda idonei. Per ulteriori informazioni, consulta la pagina Esecuzione e debug delle funzioni Lambda direttamente dal codice .

In questa procedura verrà utilizzata l'applicazione di esempio creata nellaCreazione di una nuova applicazione serverless (locale)sezione riportata in precedenza in questo argomento.

  1. Per visualizzare i file dell'applicazione in Esplora file di VS Code, scegliVisualizzazione,Esploratore.

  2. Dalla cartella dell'applicazione (ad esempio,my-sample-app), apriretemplate.yamlfile.

    Nota

    Se utilizzi un modello con un nome diverso datemplate.yaml, il CodeLens l'indicatore non è disponibile automaticamente nel file YAML. Ciò significa che è necessario aggiungere manualmente una configurazione di debug.

  3. Nell'editor ditemplate.yaml, Accedi allaResourcessezione del modello che definisce le risorse serverless. In questo caso, questo èHelloWorldFunctionrisorsa di tipoAWS::Serverless::Function.

    Nella CodeLens indicatore per questa risorsa, scegliAggiunta della configurazione di debug.

    
            Utilizzo di CodeLens indicatore intemplate.yamlfile per aggiungere una configurazione di debug.
  4. NellaTavolozza dei comandi, seleziona il tempo di esecuzione in cuiAWS SAMl'applicazione verrà eseguita.

  5. Nell'editor del file launch.json, modifica o conferma i valori per le seguenti proprietà di configurazione:

    • "name": inserisci un nome facilmente leggibile da visualizzare nel campo a discesa Configuration (Configurazione) nella vista Run (Esegui).

    • "target"— Assicurarsi che il valore sia"template"in modo cheAWS SAMtemplate è il punto di ingresso per la sessione di debug.

    • "templatePath": inserisci un percorso relativo o assoluto per il file template.yaml.

    • "logicalId"— Assicurarsi che il nome corrisponda a quello specificato nellaRisorseSezione dellaAWS SAMTemplate Template. In questo caso, è la HelloWorldFunction di tipo AWS::Serverless::Function.

    
            Configurazione dellalaunch.jsonfile per il debug basato su modelli.

    Per ulteriori informazioni su questa e altre voci nel file launch.json, consulta Opzioni di configurazione per il debug di applicazioni serverless.

  6. Se la configurazione di debug ti soddisfa, salva launch.json. Quindi, per avviare il debug, scegli il pulsante di riproduzione verde nellaCORREREvisualizzazione.

    Quando vengono avviate le sessioni di debug, il pannello DEBUG CONSOLE (CONSOLE DI DEBUG) mostra l'output di debug e visualizza tutti i valori restituiti dalla funzione Lambda. (Durante il debugAWS SAMapplicazioni, ilAWSKit di strumentiè selezionato comeOutputchannel inOutputPannello.)

Implementazione di un'applicazione serverless suAWSCloud

In questo esempio viene illustrato come distribuire l'applicazione serverless creata nella sezione precedente (Creazione di una nuova applicazione serverless (locale)) alAWSCloud utilizzando il Toolkit for VS Code.

Prima di eseguire una distribuzione, accertati di aver eseguito quanto segue:

  • Per applicazioni con tipo di distribuzioneZip, assicurati di disporre di un nome bucket Amazon S3 univoco a livello globale da utilizzare per l'implementazione.

  • Per applicazioni con tipo di distribuzioneImage, assicurati di disporre di un nome bucket Amazon S3 univoco a livello globale e di un URI del repository Amazon ECR da utilizzare per l'implementazione.

Per ulteriori informazioni sui tipi di pacchetti Lambda, consultaPacchetti di implementazione LambdanellaAWS LambdaGuida per gli sviluppatori.

Per distribuire un'applicazione serverless, attenersi alla seguente procedura:

  1. Per aprireTavolozza dei comandi, scegliVisualizzazione,Tavolozza dei comandie quindi inserireAWS.

  2. ScegliereAWSToolkit Deploy SAM.

    
            Comando per distribuire un'applicazione serverless.
  3. Scegliere il file template.yaml da utilizzare per la distribuzione.

  4. SelezionaAWSLa regione per l'implementazione.

  5. Inserisci il nome di un bucket Amazon S3 che questa distribuzione può utilizzare. Il bucket deve trovarsi nella regione a cui esegui l'implementazione.

    avvertimento

    Il nome di un bucket Amazon S3 deve essere univoco tra tutti i nomi di bucket esistenti in Amazon S3. Pertanto, è necessario aggiungere un identificatore univoco al nome indicato nell'esempio seguente o scegliere un nome diverso.

  6. Se l'applicazione serverless include una funzione con tipo di pacchetto Image, inserisci il nome di un repository Amazon ECR che questa implementazione può utilizzare. Il repository deve trovarsi nella regione a cui esegui l'implementazione.

  7. Immettere un nome per lo stack distribuito ovvero un nuovo nome dello stack o un nome dello stack esistente.

  8. Verificare il successo della distribuzione sulPRODUZIONEscheda di VS Code.

    Se si verifica un errore, viene visualizzato un messaggio in basso a destra simile al seguente:

    
            Popup di errore durante la distribuzione di un'applicazione serverless.

    In questo caso, controllare il testo nella scheda OUTPUT per i dettagli. Di seguito è riportato un esempio di dettagli di errore:

    Error with child process: Unable to upload artifact HelloWorldFunction referenced by CodeUri parameter of HelloWorldFunction resource. S3 Bucket does not exist. Execute the command to create a new bucket AWS s3 mb s3://pbart-my-sam-app-bucket An error occurred while deploying a SAM Application. Check the logs for more information by running the "View AWS Toolkit Logs" command from the Command Palette.

    In questo esempio, l'errore si è verificato perché il bucket Amazon S3 non esiste.

    Se si verifica un errore, puoi visualizzare ancheKit di strumenti AWSlog utilizzando la tavolozza dei comandi. Per eseguire questa operazione, vai allaVisualizzazionemenu, scegliTavolozza dei comandi, immettereAWSe scegliAWSVisualizzazione ToolkitKit di strumenti AWSLog.

Al termine della distribuzione, l'applicazione appare elencata nellaAWSEsploratore. Per informazioni su come richiamare la funzione Lambda che è stata creata come parte dell'applicazione, consulta Interagire con le funzioni Lambda remote.

Eliminazione di un'applicazione serverless da AWS Cloud

L'eliminazione di un'applicazione serverless comporta l'eliminazione della pila AWS CloudFormation implementata precedentemente in AWS Cloud. Nota che questa procedura non elimina la directory dell'applicazione dall'host locale.

  1. Aprire AWS Explorer.

  2. NellaAWSToolkit Explorer, espandi la regione che contiene l'applicazione implementata che desideri eliminare, quindi espandiAWS CloudFormation.

  3. Aprire il menu contestuale (tasto destro del mouse) per il nome delAWS CloudFormationstack che corrisponde all'applicazione serverless da eliminare, quindi scegliereEliminaAWS CloudFormationPila.

  4. Per confermare di voler eliminare la pila selezionata, scegli.

Se l'eliminazione della pila ha esito positivo, Toolkit for VS Code rimuove il nome dello stack dalAWS CloudFormationElenco inAWSEsploratore.