

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

# Tutorial: crea una pipeline da distribuire su Service Catalog
<a name="tutorials-S3-servicecatalog"></a>

Service Catalog consente di creare e fornire prodotti basati su AWS CloudFormation modelli. 

**Importante**  
Come parte della creazione di una pipeline, per gli artefatti verrà utilizzato un bucket di artefatti S3 fornito dal cliente. CodePipeline (Questo è diverso dal bucket utilizzato per un'azione sorgente S3.) Se il bucket di artefatti S3 si trova in un account diverso da quello della pipeline, assicurati che il bucket di artefatti S3 sia di proprietà di utenti sicuri e affidabili. Account AWS 

Questo tutorial mostra come creare e configurare una pipeline per distribuire il modello di prodotto su Service Catalog e fornire le modifiche apportate nel repository di origine (già creato in GitHub CodeCommit, o Amazon S3).

**Nota**  
Se Amazon S3 è il provider di origine per la tua pipeline, devi caricare nel tuo bucket tutti i file sorgente impacchettati come un unico file.zip. In caso contrario, l'azione di origine ha esito negativo.

Innanzitutto, crei un prodotto in Service Catalog, quindi crei una pipeline in AWS CodePipeline. Questo tutorial offre due opzioni per l'impostazione della configurazione della distribuzione:
+ Crea un prodotto in Service Catalog e carica un file modello nel tuo repository di origine. Fornisci la versione del prodotto e la configurazione di distribuzione nella CodePipeline console (senza un file di configurazione separato). Per informazioni, consulta [Opzione 1: distribuzione su Service Catalog senza un file di configurazione](#tutorials-S3-servicecatalog-ex1-configure).
**Nota**  
Il file di modello può essere creato in formato JSON o YAML.
+ Crea un prodotto in Service Catalog e carica un file modello nel tuo repository di origine. Fornisci la versione del prodotto e la configurazione della distribuzione nella console (senza un file di configurazione separato). Per informazioni, consulta [Opzione 2: eseguire la distribuzione su Service Catalog utilizzando un file di configurazione](#tutorials-S3-servicecatalog-ex2-configure).

## Opzione 1: distribuzione su Service Catalog senza un file di configurazione
<a name="tutorials-S3-servicecatalog-ex1-configure"></a>

In questo esempio, carichi il file AWS CloudFormation modello di esempio per un bucket S3, quindi crei il prodotto in Service Catalog. Successivamente, crei la pipeline e specifichi la configurazione di distribuzione nella console. CodePipeline 

### Fase 1: caricamento di file di modello di esempio nel repository di origine
<a name="tutorials-S3-servicecatalog-configure"></a>

1. Aprire un editor di testo. Creare un modello di esempio incollando quanto segue nel file. Salva il file con nome `S3_template.json`.

   ```
   {
     "AWSTemplateFormatVersion": "2010-09-09",
     "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.",
     "Resources": {
       "S3Bucket": {
         "Type": "AWS::S3::Bucket",
         "Properties": {}
       }
     },
     "Outputs": {
       "BucketName": {
         "Value": {
           "Ref": "S3Bucket"
         },
         "Description": "Name of Amazon S3 bucket to hold website content"
       }
     }
   }
   ```

   Questo modello consente di AWS CloudFormation creare un bucket S3 che può essere utilizzato da Service Catalog.

1. Caricare il file `S3_template.json` nel repository AWS CodeCommit .

### Fase 2: Creare un prodotto in Service Catalog
<a name="tutorials-S3-servicecatalog-product"></a>

1. In qualità di amministratore IT, accedi alla console Service Catalog, vai alla pagina **Prodotti**, quindi scegli **Carica nuovo prodotto**.

1. Nella pagina **Upload new product (Carica nuovo prodotto)**, procedere come segue:

   1. In **Product name (Nome prodotto)**, immettere il nome da utilizzare per il nuovo prodotto.

   1. In **Description (Descrizione)**, immettere la descrizione del catalogo dei prodotti. Questa descrizione è visualizzata nell'elenco dei prodotti per consentire all'utente di scegliere il prodotto corretto. 

   1. In **Provided by (Fornito da)**, immettere il nome dell'amministratore o del reparto IT.

   1. Scegli **Next (Successivo)**.

1. (Facoltativo) In **Enter support details (Inserisci i dettagli di supporto)**, immettere le informazioni di contatto per il supporto del prodotto e scegliere **Next (Successivo)**.

1. In **Version details (Dettagli versione)**, procedere come segue:

   1. Scegliere **Upload a template file (Carica un file di modello)**. Individuare il file `S3_template.json` e caricarlo.

   1. In **Version title (Titolo versione)**, immettere il nome della versione del prodotto (ad esempio **devops S3 v2**).

   1. In **Description (Descrizione)**, immettere i dettagli che distinguono questa versione dalle altre versioni.

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Review (Verifica)**, verificare che le informazioni siano corrette, quindi scegliere **Create (Crea)**. 

1. Nella pagina **Products (Prodotti)**, copiare nel browser l'URL del nuovo prodotto. L'URL contiene l'ID del prodotto. Copiare e conservare questo ID del prodotto. Viene utilizzato quando si crea la pipeline in CodePipeline.

   Ecco l'URL per un prodotto denominato `my-product`. Per estrarre l'ID del prodotto, copiare il valore compreso tra il segno di uguale (`=`) e la E commerciale (`&`). In questo esempio l'ID del prodotto è `prod-example123456`.

   ```
   https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
   ```
**Nota**  
Copiare l'URL per il prodotto prima di uscire da questa pagina. Una volta che si esce da questa pagina, è necessario utilizzare l'interfaccia a riga di comando per ottenere l'ID prodotto.

   Dopo alcuni secondi, il prodotto viene visualizzato nella pagina **Products (Prodotti)**. È possibile che sia necessario aggiornare il browser per visualizzare il prodotto nell'elenco.

### Fase 3: creazione della pipeline
<a name="tutorials-S3-servicecatalog-pipeline"></a>

1. Per assegnare un nome alla pipeline e selezionare i parametri per la pipeline, procedere nel seguente modo:

   1. Accedi Console di gestione AWS e apri la CodePipeline console all'indirizzo [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

   1. Nella pagina **Welcome (Benvenuto)**, pagina **Getting started (Nozioni di base)** o pagina **Pipelines (Pipeline)**, scegliere **Create pipeline (Crea pipeline)**.

   1. Nella pagina **Passaggio 1: Scegli l'opzione di creazione**, in **Opzioni di creazione**, scegli l'opzione **Crea pipeline personalizzata**. Scegli **Next (Successivo)**.

   1. Nel **Passaggio 2: Scegliete le impostazioni della pipeline**, in Nome della **pipeline, inserite un nome** per la pipeline.

   1. CodePipeline fornisce condotte di tipo V1 e V2, che si differenziano per caratteristiche e prezzo. Il tipo V2 è l'unico tipo che puoi scegliere nella console. Per ulteriori informazioni, consulta i tipi di [pipeline.](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel) Per informazioni sui prezzi di CodePipeline, consulta la sezione [Prezzi](https://aws.amazon.com/codepipeline/pricing/).

   1. In **Ruolo di servizio**, scegli **Nuovo ruolo di servizio** CodePipeline per consentire la creazione di un ruolo di servizio in IAM.

   1. Lasciare i valori predefiniti delle impostazioni in **Advanced settings (Impostazioni avanzate)**, quindi scegliere **Next (Successivo)**.

1. Per aggiungere una fase di origine nella pagina **Passaggio 3: Aggiungi fase di origine**, procedi come segue:

   1. In **Source provider (Provider origine)**, scegliere **AWS CodeCommit**.

   1. In **Repository name (Nome del repository)** e **Branch name (Nome ramo)**, immettere il repository e il ramo da utilizzare per l'operazione di origine.

   1. Scegli **Next (Successivo)**.

1. Nel **passaggio 4: aggiungi la fase di creazione**, scegli **Ignora fase di creazione**, quindi accetta il messaggio di avviso scegliendo nuovamente **Ignora**.

1. **Nel **passaggio 5: aggiungi la fase di test**, scegli **Ignora fase di test**, quindi accetta il messaggio di avviso scegliendo nuovamente Ignora.** 

   Scegli **Next (Successivo)**.

1. Nel **passaggio 6: aggiungi la fase di distribuzione**, completa quanto segue:

   1. In **Deploy provider (Provider di distribuzione)**, scegliere **AWS Service Catalog**.

   1. Per la configurazione della distribuzione, scegli **Enter deployment configuration (Inserisci configurazione distribuzione)**.

   1. In **Product ID**, incolla l'ID del prodotto che hai copiato dalla console Service Catalog.

   1. In **Template file path (Percorso file di modello)**, immettere il percorso relativo dove è archiviato il file di modello.

   1. In **Tipo di prodotto**, scegli **CloudFormation modello**.

   1. Nel **Nome della versione del prodotto**, inserisci il nome della versione del prodotto specificata in Service Catalog. Se si desidera che la modifica del modello venga distribuita in una nuova versione del prodotto, immettere un nome della versione del prodotto che non è stato utilizzato per una versione precedente dello stesso prodotto.

   1. Per **Input artifact (Artefatto di input)**, scegliere l'artefatto di origine di input.

   1. Scegli **Next (Successivo)**.

1. Nel **Passaggio 7: Rivedi**, rivedi le impostazioni della pipeline, quindi scegli **Crea**.

1. Dopo che la pipeline è in esecuzione, nella fase di distribuzione, scegliere **Details (Dettagli)**. Verrà aperto il prodotto in Service Catalog.  
![\[\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/deploy-servicecatalog-pipeline.png)

1. Nelle informazioni sul prodotto, scegliere il nome della versione per aprire il modello di prodotto. Visualizzare la distribuzione del modello.

### Passaggio 4: invia una modifica e verifica il prodotto in Service Catalog
<a name="tutorials-S3-servicecatalog-change"></a>

1. Visualizza la pipeline nella CodePipeline console e, nella fase di origine, scegli **Dettagli**. Il tuo AWS CodeCommit repository di origine si apre nella console. Scegliere **Edit (Modifica)** ed effettuare una modifica nel file (ad esempio la descrizione). 

   ```
   "Description": "Name of Amazon S3 bucket to hold and version website content"
   ```

1. Eseguire il commit e il push della modifica. La pipeline viene avviata dopo il push della modifica. Una volta completata l'esecuzione della pipeline, nella fase di implementazione, scegli **Dettagli** per aprire il prodotto in Service Catalog.

1. Nelle informazioni sul prodotto, scegliere il nome della nuova versione per aprire il modello di prodotto. Visualizzare la modifica del modello distribuito.

## Opzione 2: eseguire la distribuzione su Service Catalog utilizzando un file di configurazione
<a name="tutorials-S3-servicecatalog-ex2-configure"></a>

In questo esempio, carichi il file AWS CloudFormation modello di esempio per un bucket S3, quindi crei il prodotto in Service Catalog. Inoltre carichi un file di configurazione separato che specifica la configurazione della distribuzione. Successivamente, crei la pipeline e specifichi il percorso del file di configurazione.

### Fase 1: caricamento di file di modello di esempio nel repository di origine
<a name="tutorials-S3-servicecatalog-upload2"></a>

1. Aprire un editor di testo. Creare un modello di esempio incollando quanto segue nel file. Salva il file con nome `S3_template.json`.

   ```
   {
     "AWSTemplateFormatVersion": "2010-09-09",
     "Description": "CloudFormation Sample Template S3_Bucket: Sample template showing how to create a privately accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the resources used if you create a stack from this template.",
     "Resources": {
       "S3Bucket": {
         "Type": "AWS::S3::Bucket",
         "Properties": {}
       }
     },
     "Outputs": {
       "BucketName": {
         "Value": {
           "Ref": "S3Bucket"
         },
         "Description": "Name of Amazon S3 bucket to hold website content"
       }
     }
   }
   ```

   Questo modello consente di AWS CloudFormation creare un bucket S3 che può essere utilizzato da Service Catalog.

1. Caricare il file `S3_template.json` nel repository AWS CodeCommit .

### Fase 2: creazione del file di configurazione della distribuzione del prodotto
<a name="tutorials-S3-servicecatalog-configure2"></a>

1. Aprire un editor di testo. Creare il file di configurazione per il prodotto. Il file di configurazione viene utilizzato per definire i parametri/le preferenze di distribuzione del Service Catalog. Questo file viene utilizzato quando si crea la pipeline.

   In questo esempio viene usato il `ProductVersionName` "devops S3 v2" e la `ProductVersionDescription` `MyProductVersionDescription`. Se si desidera che la modifica del modello venga distribuita in una nuova versione del prodotto, è sufficiente immettere un nome della versione del prodotto che non è stato utilizzato per una versione precedente dello stesso prodotto.

    Salva il file con nome `sample_config.json`.

   ```
   {
       "SchemaVersion": "1.0",
       "ProductVersionName": "devops S3 v2",
       "ProductVersionDescription": "MyProductVersionDescription",
       "ProductType": "CLOUD_FORMATION_TEMPLATE",
       "Properties": {
           "TemplateFilePath": "/S3_template.json"
       }
   }
   ```

   Questo file crea le informazioni sulla versione del prodotto per ogni volta che si esegue la pipeline.

1. Caricare il file `sample_config.json` nel repository AWS CodeCommit . Assicurarsi di caricare questo file nel repository di origine.

### Fase 3: Creare un prodotto in Service Catalog
<a name="tutorials-S3-servicecatalog-product2"></a>

1. In qualità di amministratore IT, accedi alla console Service Catalog, vai alla pagina **Prodotti**, quindi scegli **Carica nuovo prodotto**.

1. Nella pagina **Upload new product (Carica nuovo prodotto)**, procedere come segue:

   1. In **Product name (Nome prodotto)**, immettere il nome da utilizzare per il nuovo prodotto.

   1. In **Description (Descrizione)**, immettere la descrizione del catalogo dei prodotti. Questa descrizione è presente nell'elenco dei prodotti per consentire all'utente di scegliere il prodotto corretto. 

   1. In **Provided by (Fornito da)**, immettere il nome dell'amministratore o del reparto IT.

   1. Scegli **Next (Successivo)**.

1. (Facoltativo) In **Enter support details (Inserisci i dettagli di supporto)**, immettere le informazioni di contatto per il supporto del prodotto e scegliere **Next (Successivo)**.

1. In **Version details (Dettagli versione)**, procedere come segue:

   1. Scegliere **Upload a template file (Carica un file di modello)**. Individuare il file `S3_template.json` e caricarlo.

   1. In **Version title (Titolo versione)**, inserire il nome della versione del prodotto (ad esempio "devops S3 v2").

   1. In **Description (Descrizione)**, immettere i dettagli che distinguono questa versione dalle altre versioni.

   1. Scegli **Next (Successivo)**.

1. Nella pagina **Review (Verifica)**, verificare che le informazioni siano corrette, quindi scegliere **Confirm and upload (Conferma e carica)**. 

1. Nella pagina **Products (Prodotti)**, copiare nel browser l'URL del nuovo prodotto. L'URL contiene l'ID del prodotto. Copiare e conservare questo ID del prodotto. Viene utilizzato quando si crea la pipeline in CodePipeline.

   Ecco l'URL per un prodotto denominato `my-product`. Per estrarre l'ID del prodotto, copiare il valore compreso tra il segno di uguale (`=`) e la E commerciale (`&`). In questo esempio l'ID del prodotto è `prod-example123456`. 

   ```
   https://<region-URL>/servicecatalog/home?region=<region>#/admin-products?productCreated=prod-example123456&createdProductTitle=my-product
   ```
**Nota**  
Copiare l'URL per il prodotto prima di uscire da questa pagina. Una volta che si esce da questa pagina, è necessario utilizzare l'interfaccia a riga di comando per ottenere l'ID prodotto.

   Dopo alcuni secondi, il prodotto viene visualizzato nella pagina **Products (Prodotti)**. È possibile che sia necessario aggiornare il browser per visualizzare il prodotto nell'elenco.

### Fase 4: creazione della pipeline
<a name="tutorials-S3-servicecatalog-pipeline2"></a>

1. Per assegnare un nome alla pipeline e selezionare i parametri per la pipeline, procedere nel seguente modo:

   1. Accedi Console di gestione AWS e apri la CodePipeline console all'indirizzo [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

   1. Selezionare **Getting started (Nozioni di base)**. Scegliere **Create pipeline (Crea pipeline)** e immettere un nome per la pipeline.

   1. In **Ruolo di servizio**, scegli **Nuovo ruolo di servizio** CodePipeline per consentire la creazione di un ruolo di servizio in IAM.

   1. Lasciare i valori predefiniti delle impostazioni in **Advanced settings (Impostazioni avanzate)**, quindi scegliere **Next (Successivo)**.

1. Per aggiungere una fase di origine, procedere come segue:

   1. In **Source provider (Provider origine)**, scegliere **AWS CodeCommit**.

   1. In **Repository name (Nome del repository)** e **Branch name (Nome ramo)**, immettere il repository e il ramo da utilizzare per l'operazione di origine.

   1. Scegli **Next (Successivo)**.

1. In **Add build stage (Aggiunta della fase di compilazione)**, scegli **Skip build stage (Ignora fase di compilazione)** e quindi accetta il messaggio di avviso scegliendo **Skip (Ignora)**.

1. In **Aggiunta della fase di distribuzione**, procedere come segue:

   1. In **Deploy provider (Provider di distribuzione)**, scegliere **AWS Service Catalog**.

   1. Selezionare **Use configuration file (Usa file di configurazione)**.

   1. In **Product ID**, incolla l'ID del prodotto che hai copiato dalla console Service Catalog.

   1. In **Configuration file path (Percorso file di configurazione)**, immettere il percorso del file di configurazione nel repository.

   1. Scegli **Next (Successivo)**.

1. In **Review (Verifica)**, esaminare le impostazioni della pipeline e selezionare **Create (Crea)**.

1. Dopo il corretto funzionamento della pipeline, nella fase di implementazione, scegli **Dettagli** per aprire il prodotto in Service Catalog.  
![\[\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/deploy-servicecatalog-pipeline.png)

1. Nelle informazioni sul prodotto, scegliere il nome della versione per aprire il modello di prodotto. Visualizzare la distribuzione del modello.

### Fase 5: push di una modifica e verifica del prodotto in Service Catalog
<a name="tutorials-S3-servicecatalog-change2"></a>

1. **Visualizza la pipeline nella CodePipeline console e, nella fase di origine, scegli Dettagli.** Il tuo AWS CodeCommit repository di origine si apre nella console. Scegliere **Edit (Modifica)** ed effettuare una modifica nel file (ad esempio la descrizione).

   ```
   "Description": "Name of Amazon S3 bucket to hold and version website content"
   ```

1. Eseguire il commit e il push della modifica. La pipeline viene avviata dopo il push della modifica. Una volta completata l'esecuzione della pipeline, nella fase di implementazione, scegli **Dettagli** per aprire il prodotto in Service Catalog.

1. Nelle informazioni sul prodotto, scegliere il nome della nuova versione per aprire il modello di prodotto. Visualizzare la modifica del modello distribuito.