

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

# Carica gli artefatti locali in un bucket S3 con AWS CLI
<a name="using-cfn-cli-package"></a>

Puoi utilizzarlo AWS CLI per caricare artefatti locali a cui fa riferimento un CloudFormation modello in un bucket Amazon S3. Gli artefatti locali sono file a cui fai riferimento nel tuo modello. Invece di caricare manualmente i file in un bucket S3 e aggiungere la posizione al modello, puoi specificare artefatti locali nel modello e utilizzare il comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html) per caricarli in modo rapido. 

Un artefatto locale è un percorso a un file o a una cartella che il comando **package** carica in Amazon S3. Ad esempio, un artefatto può essere un percorso locale al codice sorgente della AWS Lambda funzione o un file dell'API REST di OpenAPI Amazon API Gateway. 

Quando utilizzi il comando **package**:
+ Se specifichi un file, il comando lo carica direttamente nel bucket S3. 
+ Se specifichi una cartella, il comando crea un file `.zip` per la cartella e carica tale file `.zip`. 
+ Se non specifichi un percorso, il comando crea un file `.zip` per la directory di lavoro e lo carica. 

È possibile specificare un percorso assoluto o relativo, in cui il percorso è relativo alla posizione del modello.

Dopo aver caricato gli artefatti, il comando restituisce una copia del modello, sostituendo i riferimenti ad artefatti locali con la posizione S3 in cui il comando ha caricato gli artefatti. Puoi quindi utilizzare il modello restituito per creare o aggiornare uno stack.

**Nota**  
Puoi utilizzare artefatti locali solo per le proprietà di risorsa supportate dal comando **package**. Per ulteriori informazioni su questo comando e per un elenco di proprietà di risorsa supportate, consulta la documentazione [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html) in [AWS CLI Command Reference](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/index.html).



## Prerequisiti
<a name="using-cfn-cli-package-prerequisites"></a>

Prima di iniziare, devi disporre di un bucket Amazon S3 esistente. 

## Inserisci in un pacchetto e implementa un modello con artefatti locali
<a name="package-and-deploy-a-template-with-local-artifacts"></a>

Il seguente modello specifica l'artefatto locale per il codice sorgente della funzione Lambda. Il codice sorgente è memorizzato nella cartella `/home/user/code/lambdafunction`.

**Modello originale**

```
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Transform": "AWS::Serverless-2016-10-31",
  "Resources": {
    "MyFunction": {
      "Type": "AWS::Serverless::Function",
      "Properties": {
        "Handler": "index.handler",
        "Runtime": "nodejs18.x",
        "CodeUri": "/home/user/code/lambdafunction"
      }
    }
  }
}
```

Il comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/package.html) seguente crea e carica un file `.zip` della cartella del codice sorgente della funzione nella radice del bucket specificato.

```
aws cloudformation package \
  --s3-bucket amzn-s3-demo-bucket \
  --template /path_to_template/template.json \
  --output-template-file packaged-template.json \
  --output json
```

Il comando genera un nuovo modello nel percorso specificato da `--output-template-file`. Sostituisce il riferimento all’artefatto con la posizione di Amazon S3, come di seguito. Il `.zip` file viene denominato utilizzando il MD5 checksum del contenuto della cartella, anziché utilizzando il nome della cartella stessa.

**Modello risultante**

```
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Transform": "AWS::Serverless-2016-10-31",
  "Resources": {
    "MyFunction": {
      "Type": "AWS::Serverless::Function",
      "Properties": {
        "Handler": "index.handler",
        "Runtime": "nodejs18.x",
        "CodeUri": "s3://amzn-s3-demo-bucket/md5 checksum"
      }
    }
  }
}
```

Dopo aver impacchettato gli artefatti del modello, distribuisci il modello elaborato utilizzando il comando [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deploy/).

```
aws cloudformation deploy \
  --template-file packaged-template.json \
  --stack-name stack-name
```

Quando distribuisci modelli di dimensioni superiori a 51.200 byte, usa il comando **deploy** con l’opzione `--s3-bucket`per caricare il modello su S3, come nell’esempio seguente.

```
aws cloudformation deploy \
  --template-file packaged-template.json \
  --stack-name stack-name \
  --s3-bucket amzn-s3-demo-bucket
```

**Nota**  
Per un altro esempio sull’utilizzo del comando **package** per caricare artefatti locali, vedi [Dividi un modello in pezzi riutilizzabili usando stack nidificati](using-cfn-nested-stacks.md).