Crea la tua candidatura in AWS SAM - AWS Serverless Application Model

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

Crea la tua candidatura in AWS SAM

Dopo aver completato la Guida introduttiva e la letturaCome usare AWS Serverless Application Model (AWS SAM), sarai pronto per creare un AWS SAM progetto nel tuo ambiente di sviluppo. Il tuo AWS SAM progetto servirà come punto di partenza per scrivere la tua applicazione serverless. Per un elenco delle opzioni di AWS SAMCLI sam init comando, vederesam init.

Il AWS Serverless Application Model comando Command Line Interface (AWS SAMCLI) sam init fornisce opzioni per inizializzare una nuova applicazione serverless composta da:

  • Un AWS SAM modello per definire il codice dell'infrastruttura.

  • Una struttura di cartelle che organizza l'applicazione.

  • Configurazione per le tue AWS Lambda funzioni.

Per creare un AWS SAM progetto, consulta gli argomenti di queste sezioni.

Inizializza una nuova applicazione serverless

Per inizializzare una nuova applicazione serverless utilizzando il AWS SAMCLI
  1. cdin una directory iniziale.

  2. Esegui quanto segue nella riga di comando:

    $ sam init
  3. Ti AWS SAMCLI guiderà attraverso un flusso interattivo per creare una nuova applicazione serverless.

    Nota

    Come descritto in dettaglioTutorial: Implementa un'applicazione Hello World con AWS SAM, questo comando inizializza l'applicazione serverless, creando la directory del progetto. Questa directory conterrà diversi file e cartelle. Il file più importante ètemplate.yaml. Questo è il tuo AWS SAM modello. La tua versione di python deve corrispondere alla versione di python elencata nel template.yaml file creato dal sam init comando.

Scegli un modello di partenza

Un modello è composto da quanto segue:

  1. Un AWS SAM modello per il codice dell'infrastruttura.

  2. Una directory di progetto iniziale che organizza i file di progetto. Ad esempio, ciò può includere:

    1. Una struttura per il codice della funzione Lambda e le relative dipendenze.

    2. Una events cartella che contiene eventi di test per i test locali.

    3. Una tests cartella per supportare i test unitari.

    4. Un samconfig.toml file per configurare le impostazioni del progetto.

    5. Un ReadMe file e altri file di base del progetto iniziale.

    Di seguito è riportato un esempio di cartella iniziale del progetto:

    sam-app
    ├── README.md
    ├── __init__.py
    ├── events
    │   └── event.json
    ├── hello_world
    │   ├── __init__.py
    │   ├── app.py
    │   └── requirements.txt
    ├── samconfig.toml
    ├── template.yaml
    └── tests
        ├── __init__.py
        ├── integration
        │   ├── __init__.py
        │   └── test_api_gateway.py
        ├── requirements.txt
        └── unit
            ├── __init__.py
            └── test_handler.py

È possibile selezionare da un elenco di modelli di avvio AWS rapido disponibili o fornire una posizione personalizzata per i modelli.

Per scegliere un modello di avvio AWS rapido
  1. Quando richiesto, selezionate AWS Quick Start Templates.

  2. Seleziona un modello AWS Quick Start con cui iniziare. Di seguito è riportato un esempio:

    Which template source would you like to use?
        1 - AWS Quick Start Templates
        2 - Custom Template Location
    Choice: 1
    
    Choose an AWS Quick Start application template
        1 - Hello World Example
        2 - Multi-step workflow
        3 - Serverless API
        4 - Scheduled task
        5 - Standalone function
        6 - Data processing
        7 - Hello World Example With Powertools
        8 - Infrastructure event management
        9 - Serverless Connector Hello World Example
        10 - Multi-step workflow with Connectors
        11 - Lambda EFS example
        12 - DynamoDB Example
        13 - Machine Learning
    Template: 4
Per scegliere la posizione del modello personalizzata
  1. Quando richiesto, seleziona la posizione del modello personalizzato.

    Which template source would you like to use?
        1 - AWS Quick Start Templates
        2 - Custom Template Location
    Choice: 2
  2. Ti AWS SAMCLI verrà chiesto di fornire una posizione per il modello.

    Template location (git, mercurial, http(s), zip, path):

    Fornisci una delle seguenti posizioni all'archivio del file.zip del modello:

    • GitHubrepository: il percorso del file.zip nel tuo repository. GitHub Il file deve trovarsi nella cartella principale del repository.

    • Mercurialrepository: il percorso del file.zip nel tuo repository. Mercurial Il file deve trovarsi nella cartella principale del repository.

    • Percorso.zip: un percorso HTTPS o un percorso locale del file .zip.

  3. AWS SAMCLIInizializzerà l'applicazione serverless utilizzando il modello personalizzato.

Scegli un runtime

Quando scegli un modello AWS Quick Start, AWS SAMCLI ti viene richiesto di selezionare un runtime per le tue funzioni Lambda. L'elenco di opzioni visualizzato da AWS SAMCLI sono i runtime supportati nativamente da Lambda.

È possibile utilizzare qualsiasi altro linguaggio di programmazione con un runtime personalizzato. A tale scopo, è necessario creare manualmente la struttura dell'applicazione iniziale. È quindi possibile utilizzarla sam init per inizializzare rapidamente l'applicazione configurando una posizione personalizzata del modello.

Dalla selezione, AWS SAMCLI crea la directory iniziale per il codice della funzione Lambda e le dipendenze.

Se Lambda supporta più gestori delle dipendenze per il tuo runtime, ti verrà richiesto di scegliere il tuo gestore delle dipendenze preferito.

Scegli un tipo di pacchetto

Quando si sceglie un modello di avvio AWS rapido e un runtime, viene AWS SAMCLI richiesto di selezionare un tipo di pacchetto. Il tipo di pacchetto determina il modo in cui le funzioni Lambda vengono distribuite per l'uso con il servizio Lambda. I due tipi di pacchetto supportati sono:

  1. Immagine del contenitore: contiene il sistema operativo di base, il runtime, le estensioni Lambda, il codice dell'applicazione e le relative dipendenze.

  2. Archivio di file.zip: contiene il codice dell'applicazione e le relative dipendenze.

Per ulteriori informazioni sui tipi di pacchetti di distribuzione, consulta i pacchetti di distribuzione Lambda nella AWS Lambda Developer Guide.

Di seguito è riportato un esempio di struttura di directory di un'applicazione con una funzione Lambda impacchettata come immagine contenitore. AWS SAMCLIScarica l'immagine e ne crea una Dockerfile nella directory della funzione per specificare l'immagine.

sam-app
├── README.md
├── __init__.py
├── events
│   └── event.json
├── hello_world
│   ├── Dockerfile
│   ├── __init__.py
│   ├── app.py
│   └── requirements.txt
├── samconfig.toml
├── template.yaml
└── tests
    ├── __init__.py
    └── unit
        ├── __init__.py
        └── test_handler.py

Di seguito è riportato un esempio di struttura di directory di un'applicazione con una funzione impacchettata come archivio di file.zip.

sam-app
├── README.md
├── __init__.py
├── events
│   └── event.json
├── hello_world
│   ├── __init__.py
│   ├── app.py
│   └── requirements.txt
├── samconfig.toml
├── template.yaml
└── tests
    ├── __init__.py
    ├── integration
    │   ├── __init__.py
    │   └── test_api_gateway.py
    ├── requirements.txt
    └── unit
        ├── __init__.py
        └── test_handler.py

Configura il tracciamento AWS X-Ray

È possibile scegliere di attivare il AWS X-Ray tracciamento. Per ulteriori informazioni, vedi Cos'è AWS X-Ray? nella Guida per gli AWS X-Ray sviluppatori.

Se lo attivi, AWS SAMCLI configura il tuo AWS SAM modello. Di seguito è riportato un esempio:

Globals: Function: ... Tracing: Active Api: TracingEnabled: True

Configura il monitoraggio con Amazon CloudWatch Application Insights

Puoi scegliere di attivare il monitoraggio utilizzando Amazon CloudWatch Application Insights. Per ulteriori informazioni, consulta Amazon CloudWatch Application Insights nella Amazon CloudWatch User Guide.

Se lo attivi, AWS SAMCLI configura il tuo AWS SAM modello. Di seguito è riportato un esempio:

Resources: ApplicationResourceGroup: Type: AWS::ResourceGroups::Group Properties: Name: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName ResourceQuery: Type: CLOUDFORMATION_STACK_1_0 ApplicationInsightsMonitoring: Type: AWS::ApplicationInsights::Application Properties: ResourceGroupName: Fn::Join: - '' - - ApplicationInsights-SAM- - Ref: AWS::StackName AutoConfigurationEnabled: 'true' DependsOn: ApplicationResourceGroup

Assegna un nome alla tua applicazione

Fornisci un nome per la tua candidatura. AWS SAMCLICrea una cartella di primo livello per l'applicazione utilizzando questo nome.

Opzioni per sam init

Di seguito sono riportate alcune delle opzioni principali che è possibile utilizzare con il sam init comando. Per un elenco di tutte le opzioni, vederesam init.

Inizializza un'applicazione utilizzando una posizione personalizzata del modello

Utilizza l'--locationopzione e fornisci una posizione per il modello personalizzata supportata. Di seguito è riportato un esempio:

$ sam init --location https://github.com/aws-samples/sessions-with-aws-sam/raw/master/starter-templates/web-app.zip

Inizializza un'applicazione senza il flusso interattivo

Utilizza l'--no-interactiveopzione e fornisci le tue scelte di configurazione nella riga di comando per saltare il flusso interattivo. Di seguito è riportato un esempio:

$ sam init --no-interactive --runtime go1.x --name go-demo --dependency-manager mod --app-template hello-world

Risoluzione dei problemi

Per risolvere il problema, consulta. AWS SAMCLI AWS SAMCLIrisoluzione dei problemi

Esempi

Inizializza una nuova applicazione serverless utilizzando il modello Hello World Starter AWS

Per questo esempio, vedi Passaggio 1: inizializza l'applicazione Hello World di esempio in Tutorial: Deploying a Hello World application.

Inizializza una nuova applicazione serverless con una posizione del modello personalizzata

Di seguito sono riportati alcuni esempi di come fornire una GitHub posizione al modello personalizzato:

$ sam init --location gh:aws-samples/cookiecutter-aws-sam-python $ sam init --location git+sh://git@github.com/aws-samples/cookiecutter-aws-sam-python.git $ sam init --location hg+ssh://hg@bitbucket.org/repo/template-name

Di seguito è riportato un esempio di percorso di file locale:

$ sam init --location /path/to/template.zip

Di seguito è riportato un esempio di percorso raggiungibile daHTTPS:

$ sam init --location https://github.com/aws-samples/sessions-with-aws-sam/raw/master/starter-templates/web-app.zip

Ulteriori informazioni

Per ulteriori informazioni sull'utilizzo del sam init comando, consulta quanto segue:

Passaggi successivi

Ora che hai creato il tuo AWS SAM progetto, sei pronto per iniziare a creare la tua applicazione. Definisci la tua infrastruttura con AWS SAMPer eseguire questa operazione, consultate le istruzioni dettagliate sulle attività da completare.