

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

# Nozioni di base su una distribuzione standard (AWS CLI)
<a name="get-started-cli-tutorial"></a>

Le procedure in questa sezione mostrano come utilizzare AWS CLI with CloudFront per impostare una configurazione di base che prevede quanto segue:
+ Creazione di un bucket Amazon S3 da utilizzare come origine della distribuzione.
+ Archiviazione delle versioni originali degli oggetti nel bucket S3.
+ Utilizzo del controllo di accesso origine (OAC) per inviare richieste autenticate all’origine Amazon S3. OAC invia richieste CloudFront per impedire agli utenti di accedere direttamente al bucket S3. Per ulteriori informazioni su OAC, consulta [Limitazione dell’accesso a un’origine Amazon S3](private-content-restricting-access-to-s3.md).
+ Utilizzo del nome di CloudFront dominio URLs per gli oggetti (ad esempio,). `https://d111111abcdef8.cloudfront.net/index.html`
+ Mantenete gli oggetti in posizioni CloudFront periferiche per la durata predefinita di 24 ore (la durata minima è 0 secondi).

La maggior parte delle opzioni è personalizzabile. Per informazioni su come personalizzare le opzioni di distribuzione CloudFront , consulta [Creazione di una distribuzione](distribution-web-creating-console.md).

## Prerequisiti
<a name="get-started-cli-prereqs"></a>

Prima di iniziare, assicurati di aver completato le fasi in [Configura il tuo Account AWS](setting-up-cloudfront.md).

Installalo AWS CLI e configuralo con le tue credenziali. Per ulteriori informazioni, consulta [Nozioni di base su AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) nella *Guida per l’utente di AWS CLI *.



## Crea un bucket Amazon S3
<a name="get-started-cli-create-bucket"></a>

Un bucket Amazon S3 è un contenitore per file (oggetti) o cartelle. CloudFront può distribuire quasi tutti i tipi di file per te quando la fonte è un bucket S3. Ad esempio, CloudFront può distribuire testo, immagini e video. Non c'è un massimo per la quantità di dati che è possibile memorizzare in Amazon S3.

Per questo tutorial, verrà creato un bucket S3 e caricato un file HTML da utilizzare per creare una pagina web di base.

```
aws s3 mb s3://amzn-s3-demo-bucket/ --region us-east-1
```

*amzn-s3-demo-bucket*Sostituiscilo con un nome di bucket univoco a livello globale. Per questo Regione AWS, ti consigliamo di scegliere una regione geograficamente vicina a te. In questo modo si riducono la latenza e i costi, ma anche la scelta di una Regione diversa funziona. Ad esempio, puoi eseguire questa operazione per soddisfare i requisiti normativi.

## Caricamento dei contenuti nel bucket
<a name="get-started-cli-upload-content"></a>

Per questo tutorial, scarica ed estrai i file di contenuto di esempio per una pagina web di base “Hello World”.

```
# Create a temporary directory
mkdir -p ~/cloudfront-demo

# Download the sample Hello World files
curl -o ~/cloudfront-demo/hello-world-html.zip https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/samples/hello-world-html.zip

# Extract the zip file
unzip ~/cloudfront-demo/hello-world-html.zip -d ~/cloudfront-demo/hello-world
```

Viene creata una directory con un file `index.html` e una cartella `css`. Carica questi file nel bucket S3.

```
aws s3 cp ~/cloudfront-demo/hello-world/ s3://amzn-s3-demo-bucket/ --recursive
```

## Creazione di un controllo di accesso origine (OAC)
<a name="get-started-cli-create-oac"></a>

Per questo tutorial, verrà creato un controllo di accesso origine (OAC). OAC consente di inviare in modo sicuro richieste autenticate all’origine Amazon S3. Per ulteriori informazioni su OAC, consulta [Limitazione dell’accesso a un’origine Amazon S3](private-content-restricting-access-to-s3.md).

```
aws cloudfront create-origin-access-control \
    --origin-access-control-config Name="oac-for-s3",SigningProtocol=sigv4,SigningBehavior=always,OriginAccessControlOriginType=s3
```

Salva l’ID OAC dall’output come una variabile di ambiente. Sostituisci i valori di esempio con l’ID OAC. Verrà utilizzato nella fase successiva.

```
OAC_ID="E1ABCD2EFGHIJ"
```

## Creazione di una distribuzione standard
<a name="get-started-cli-create-classic"></a>

Crea un file di configurazione della distribuzione denominato `distribution-config.json`. Sostituisci il nome del bucket di esempio con il nome del bucket per i valori `Id`, `DomainName`, e `TargetOriginId`.

```
cat > distribution-config.json << EOF
{
    "CallerReference": "cli-example-$(date +%s)",
    "Origins": {
        "Quantity": 1,
        "Items": [
            {
                "Id": "S3-amzn-s3-demo-bucket",
                "DomainName": "amzn-s3-demo-bucket.s3.amazonaws.com",
                "S3OriginConfig": {
                    "OriginAccessIdentity": ""
                },
                "OriginAccessControlId": "$OAC_ID"
            }
        ]
    },
    "DefaultCacheBehavior": {
        "TargetOriginId": "S3-amzn-s3-demo-bucket",
        "ViewerProtocolPolicy": "redirect-to-https",
        "AllowedMethods": {
            "Quantity": 2,
            "Items": ["GET", "HEAD"],
            "CachedMethods": {
                "Quantity": 2,
                "Items": ["GET", "HEAD"]
            }
        },
        "DefaultTTL": 86400,
        "MinTTL": 0,
        "MaxTTL": 31536000,
        "Compress": true,
        "ForwardedValues": {
            "QueryString": false,
            "Cookies": {
                "Forward": "none"
            }
        }
    },
    "Comment": "CloudFront distribution for S3 bucket",
    "Enabled": true
}
EOF
```

Crea una distribuzione standard.

```
aws cloudfront create-distribution --distribution-config file://distribution-config.json
```

Salva l’ID distribuzione e il nome di dominio dell’output come variabili di ambiente. Sostituire i valori di esempio con i propri valori. Verranno utilizzati più avanti in questo tutorial.

```
DISTRIBUTION_ID="EABCD1234XMPL"
DOMAIN_NAME="d111111abcdef8.cloudfront.net"
```

Prima di utilizzare la distribuzione e il bucket S3 di questo tutorial in un ambiente di produzione, assicurati di configurarli per soddisfare le esigenze specifiche. Per informazioni sulla configurazione dell’accesso in un ambiente di produzione, consulta [Configurazione dell’accesso sicuro e restrizione dell’accesso ai contenuti](SecurityAndPrivateContent.md).

## Aggiornamento della policy di bucket S3
<a name="get-started-cli-update-bucket-policy"></a>

Aggiorna la policy del bucket S3 per consentire l'accesso CloudFront agli oggetti. Sostituisci il nome bucket di esempio con il nome bucket.

```
# Get your AWS account ID
ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text)

# Create the bucket policy
cat > bucket-policy.json << EOF
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCloudFrontServicePrincipal",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudfront.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceArn": "arn:aws:cloudfront::$ACCOUNT_ID:distribution/$DISTRIBUTION_ID"
                }
            }
        }
    ]
}
EOF

# Apply the bucket policy
aws s3api put-bucket-policy \
    --bucket amzn-s3-demo-bucket \
    --policy file://bucket-policy.json
```

## Conferma dell’implementazione della distribuzione
<a name="get-started-cli-confirm-deployment"></a>

Dopo aver creato la distribuzione, occorrerà un po’ di tempo per completarne l’implementazione. Quando lo stato della distribuzione cambia da `InProgress` a `Deployed`, esegui la fase successiva.

```
aws cloudfront get-distribution --id $DISTRIBUTION_ID --query 'Distribution.Status'
```

In alternativa, puoi utilizzare il comando `wait` per attendere l’implementazione della distribuzione.

```
aws cloudfront wait distribution-deployed --id $DISTRIBUTION_ID
```

## Accedi ai tuoi contenuti tramite CloudFront
<a name="get-started-cli-access-content"></a>

Per accedere ai tuoi contenuti CloudFront, combina il nome di dominio utilizzato per la CloudFront distribuzione con la pagina principale dei tuoi contenuti. Sostituisci il nome di CloudFront dominio di esempio con il tuo.

```
https://d111111abcdef8.cloudfront.net/index.html
```

Se hai seguito i passaggi precedenti e creato il file HTML, dovresti vedere una pagina web con la scritta **Hello world\$1**.

Quando carichi più contenuti in questo bucket S3, puoi accedervi CloudFront combinando il nome del dominio di CloudFront distribuzione con il percorso dell'oggetto nel bucket S3. Ad esempio, se carichi un nuovo file denominato `new-page.html` nella root del bucket S3, l'URL è simile al seguente:

`https://d111111abcdef8.cloudfront.net/new-page.html`.

## Eliminazione
<a name="get-started-cli-cleanup"></a>

Se hai creato la distribuzione e il bucket S3 solo a scopo didattico, eliminali in modo da non incorrere in ulteriori costi. Disabilita ed elimina prima la distribuzione.

**Come disabilitare ed eliminare una distribuzione standard (AWS CLI)**

1. Innanzitutto, disabilita la distribuzione.

   ```
   # Get the current configuration and ETag
   ETAG=$(aws cloudfront get-distribution-config --id $DISTRIBUTION_ID --query 'ETag' --output text)
   
   # Create a modified configuration with Enabled=false
   aws cloudfront get-distribution-config --id $DISTRIBUTION_ID | \
   jq '.DistributionConfig.Enabled = false' > temp_disabled_config.json
   
   # Update the distribution to disable it
   aws cloudfront update-distribution \
       --id $DISTRIBUTION_ID \
       --distribution-config file://<(jq '.DistributionConfig' temp_disabled_config.json) \
       --if-match $ETAG
   ```

1. Attendi che la distribuzione venga disabilitata.

   ```
   aws cloudfront wait distribution-deployed --id $DISTRIBUTION_ID
   ```

1. Elimina la distribuzione.

   ```
   # Get the current ETag
   ETAG=$(aws cloudfront get-distribution-config --id $DISTRIBUTION_ID --query 'ETag' --output text)
   
   # Delete the distribution
   aws cloudfront delete-distribution --id $DISTRIBUTION_ID --if-match $ETAG
   ```

**Come eliminare un bucket S3 (AWS CLI)**
+ Elimina il bucket S3 e il relativo contenuto. Sostituisci il nome bucket di esempio con quello personalizzato.

  ```
  # Delete the bucket contents
  aws s3 rm s3://amzn-s3-demo-bucket --recursive
  
  # Delete the bucket
  aws s3 rb s3://amzn-s3-demo-bucket
  ```

Per pulire i file locali creati per questo tutorial, esegui i seguenti comandi:

```
# Clean up local files
rm -f distribution-config.json bucket-policy.json temp_disabled_config.json
rm -rf ~/cloudfront-demo
```

Facoltativamente, puoi eliminare l’OAC creato per questo tutorial.

```
# Get the OAC ETag
OAC_ETAG=$(aws cloudfront get-origin-access-control --id $OAC_ID --query 'ETag' --output text)

# Delete the OAC
aws cloudfront delete-origin-access-control --id $OAC_ID --if-match $OAC_ETAG
```