

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
<a name="using-sam-cli-init"></a>

Dopo aver completato la [Guida introduttiva](serverless-getting-started.md) e la lettura[Come usare AWS Serverless Application Model (AWS SAM)](chapter-using-sam.md), 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, vedere[sam init](sam-cli-command-reference-sam-init.md).

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.

**Nota**  
`sam init`include modelli di progetto per funzioni durevoli nei runtime supportati (TypeScript, Python, Java). Questi modelli forniscono codice di avvio e configurazione per la creazione di applicazioni serverless con stato.

**Topics**
+ [

## Inizializza una nuova applicazione serverless
](#using-sam-cli-init-new)
+ [

## Opzioni per sam init
](#using-sam-cli-init-options)
+ [

## Risoluzione dei problemi
](#using-sam-cli-init-troubleshooting)
+ [

## Esempi
](#using-sam-cli-init-examples)
+ [

## Ulteriori informazioni
](#using-sam-cli-init-learn)
+ [

## Fasi successive
](#w2aac18c11c39)

## Inizializza una nuova applicazione serverless
<a name="using-sam-cli-init-new"></a>

**Per inizializzare una nuova applicazione serverless utilizzando il AWS SAMCLI**

1. `cd`in una directory iniziale.

1. Esegui quanto segue nella riga di comando:

   ```
   $ sam init
   ```

1. Ti AWS SAMCLI guiderà attraverso un flusso interattivo per creare una nuova applicazione serverless.
**Nota**  
Come descritto in dettaglio[Tutorial: Implementa un'applicazione Hello World con AWS SAM](serverless-getting-started-hello-world.md), 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
<a name="using-sam-cli-init-new-template"></a>

Un *modello* è composto da quanto segue:

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

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

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

   1. Una `tests` cartella per supportare i test unitari.

   1. Un `samconfig.toml` file per configurare le impostazioni del progetto.

   1. 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, seleziona **Modelli di avvio AWS rapido**.

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

1. 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 locale del file.zip.

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

### Scegli un runtime
<a name="using-sam-cli-init-new-runtime"></a>

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.
+ Il [runtime](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-concepts.html#gettingstarted-concepts-runtime) fornisce un ambiente specifico del linguaggio di programmazione che viene eseguito in un ambiente di esecuzione.
+ [Quando viene distribuito su Cloud AWS, il servizio Lambda richiama la funzione in un ambiente di esecuzione.](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtime-environment.html)

È 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
<a name="using-sam-cli-init-new-package"></a>

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.

1. **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](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) 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
<a name="using-sam-cli-init-new-tracing"></a>

È possibile scegliere di attivare il AWS X-Ray tracciamento. Per ulteriori informazioni, vedi [Cos'è AWS X-Ray?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) nella *Guida per gli AWS X-Ray sviluppatori*.

Se si attiva, AWS SAMCLI configura il AWS SAM modello. Di seguito è riportato un esempio:

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

### Configura il monitoraggio con Amazon CloudWatch Application Insights
<a name="using-sam-cli-init-new-insights"></a>

Puoi scegliere di attivare il monitoraggio utilizzando Amazon CloudWatch Application Insights. Per ulteriori informazioni, consulta [Amazon CloudWatch Application Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html) 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 all'applicazione
<a name="using-sam-cli-init-new-name"></a>

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

## Opzioni per sam init
<a name="using-sam-cli-init-options"></a>

Di seguito sono riportate alcune delle opzioni principali che è possibile utilizzare con il `sam init` comando. Per un elenco di tutte le opzioni, vedere[sam init](sam-cli-command-reference-sam-init.md).

### Inizializza un'applicazione utilizzando una posizione personalizzata del modello
<a name="using-sam-cli-init-options-location"></a>

Utilizza l'`--location`opzione e fornisci una posizione del 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
<a name="using-sam-cli-init-options-no-interactive"></a>

Utilizza l'`--no-interactive`opzione 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
<a name="using-sam-cli-init-troubleshooting"></a>

Per risolvere il problema, consulta. AWS SAMCLI [AWS SAMCLIrisoluzione dei problemi](sam-cli-troubleshooting.md)

## Esempi
<a name="using-sam-cli-init-examples"></a>

### Inizializza una nuova applicazione serverless utilizzando il modello Hello World Starter AWS
<a name="using-sam-cli-init-examples-helloworld"></a>

Per questo esempio, vedi [Passaggio 1: inizializza l'applicazione Hello World di esempio](serverless-getting-started-hello-world.md#serverless-getting-started-hello-world-init) in *Tutorial: Deploying a Hello World application*.

### Inizializza una nuova applicazione serverless con una posizione del modello personalizzata
<a name="using-sam-cli-init-examples-custom"></a>

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 tramite HTTPS:

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

## Ulteriori informazioni
<a name="using-sam-cli-init-learn"></a>

Per ulteriori informazioni sull'utilizzo del `sam init` comando, consulta quanto segue:
+ **[Apprendimento AWS SAM: sam init](https://www.youtube.com/watch?v=9m3R-leD5Xo)** — Serie Serverless Land «Learning AWS SAM» suYouTube.
+ **[Strutturazione di applicazioni serverless da utilizzare con AWS SAMCLI (Sessions with SAM S2E7) — Sessioni](https://www.youtube.com/watch?v=k9IRdgze9fQ)** con serie attivate. AWS SAM YouTube

## Fasi successive
<a name="w2aac18c11c39"></a>

Ora che hai creato il tuo AWS SAM progetto, sei pronto per iniziare a creare la tua applicazione. [Definisci la tua infrastruttura con AWS SAM](serverless-authoring.md)Per eseguire questa operazione, consultate le istruzioni dettagliate sulle attività da completare.