

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 una pipeline che utilizza CodeBuild ()AWS CLI
<a name="how-to-create-pipeline-cli"></a>

Utilizzate la procedura seguente per creare una pipeline da utilizzare CodeBuild per creare il codice sorgente.

*Per utilizzarlo AWS CLI per creare una pipeline che distribuisca il codice sorgente creato o che verifichi solo il codice sorgente, puoi adattare le istruzioni in [Modifica una pipeline (AWS CLI)](https://docs.aws.amazon.com/codepipeline/latest/userguide/how-to-edit-pipelines.html#how-to-edit-pipelines-cli) e il [riferimento alla struttura della CodePipeline pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-structure.html) nella Guida per l'utente.AWS CodePipeline *

1. Crea o identifica un progetto di compilazione in. CodeBuild Per ulteriori informazioni, consulta [Creazione di un progetto di compilazione](create-project.md).
**Importante**  
Il progetto di compilazione deve definire le impostazioni di artefatto di output di compilazione (anche se CodePipeline le ignora). Per ulteriori informazioni, consultare la descrizione di `artifacts` in [Creazione di un progetto di compilazione (AWS CLI)](create-project.md#create-project-cli).

1. Assicurati di averlo configurato AWS CLI con la chiave di AWS accesso e la chiave di accesso AWS segreta che corrispondono a una delle entità IAM descritte in questo argomento. Per ulteriori informazioni, consultare l'argomento relativo a [Come configurare AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html) nella *Guida per l'utente AWS Command Line Interface *.

1. Creare un file in formato JSON che rappresenta la struttura della pipeline. Nominare il file `create-pipeline.json` o simile. Ad esempio, questa struttura in formato JSON crea una pipeline con un'operazione sorgente che fa riferimento a un bucket di input S3 e un'operazione di compilazione che utilizza CodeBuild:

   ```
   {
     "pipeline": {
       "roleArn": "arn:aws:iam::<account-id>:role/<AWS-CodePipeline-service-role-name>",
       "stages": [
         {
           "name": "Source",
           "actions": [
             {
               "inputArtifacts": [],
               "name": "Source",
               "actionTypeId": {
                 "category": "Source",
                 "owner": "AWS",
                 "version": "1",
                 "provider": "S3"
               },
               "outputArtifacts": [
                 {
                   "name": "MyApp"
                 }
               ],
               "configuration": {
                 "S3Bucket": "<bucket-name>",
                 "S3ObjectKey": "<source-code-file-name.zip>"
               },
               "runOrder": 1
             }
           ]
         },
         {
           "name": "Build",
           "actions": [
             {
               "inputArtifacts": [
                 {
                   "name": "MyApp"
                 }
               ],
               "name": "Build",
               "actionTypeId": {
                 "category": "Build",
                 "owner": "AWS",
                 "version": "1",
                 "provider": "CodeBuild"
               },
               "outputArtifacts": [
                 {
                   "name": "default"
                 }
               ],
               "configuration": {
                 "ProjectName": "<build-project-name>"
               },
               "runOrder": 1
             }
           ]
         }
       ],
       "artifactStore": {
         "type": "S3",
         "location": "<CodePipeline-internal-bucket-name>"
       },
       "name": "<my-pipeline-name>",
       "version": 1
     }
   }
   ```

   In questi dati in formato JSON:
   + Il valore di `roleArn` deve corrispondere all'ARN del ruolo di CodePipeline servizio creato o identificato come parte dei prerequisiti.
   + I valori di `S3Bucket` e `S3ObjectKey` in `configuration` presumono che il codice sorgente venga archiviato in un bucket S3. Per le impostazioni per altri tipi di repository di codice sorgente, consultare [Riferimento per la struttura della pipeline CodePipeline ](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-structure.html) nella *Guida per l'utente di AWS CodePipeline *.
   + Il valore di `ProjectName` è il nome del progetto di CodeBuild compilazione creato in precedenza in questa procedura.
   + Il valore `location` è il nome del bucket S3 utilizzato da questa pipeline. Per ulteriori informazioni, consultare l'argomento relativo alla [creazione di una policy per un bucket S3 da utilizzare come archivio di artefatti per CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/access-permissions.html#how-to-create-bucket-policy) nella *Guida per l'utente di AWS CodePipeline *.
   + Il valore di `name` è il nome di questa pipeline. Tutti i nomi di pipeline devono essere univoci per l'account.

   Sebbene questi dati descrivano solo un'azione di origine e un'azione di compilazione, è possibile aggiungere azioni per attività relative al test, alla distribuzione dell'elemento di output della build, al richiamo di AWS Lambda funzioni e altro ancora. Per ulteriori informazioni, consultare l'argomento relativo al [riferimento della struttura della pipeline AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-structure.html) nella *Guida per l'utente di AWS CodePipeline *.

1. Passa alla cartella che contiene il file JSON, quindi esegui il CodePipeline **[create-pipeline](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/create-pipeline.html)** comando, specificando il nome del file:

   ```
   aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json
   ```
**Nota**  
È necessario creare la pipeline in una AWS regione in cui CodeBuild è supportata. Per ulteriori informazioni, consulta [AWS CodeBuild](https://docs.aws.amazon.com/general/latest/gr/rande.html#codebuild_region) nella *Riferimenti generali di Amazon Web Services*.

   I dati in formato JSON vengono visualizzati nell'output e creano la pipeline. CodePipeline 

1. Per ottenere informazioni sullo stato della pipeline, esegui il CodePipeline **[get-pipeline-state](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html)** comando, specificando il nome della pipeline:

   ```
   aws codepipeline get-pipeline-state --name <my-pipeline-name>
   ```

   Nell'output, cercare le informazioni che confermano la buona riuscita della compilazione. Le ellissi (`...`) vengono utilizzate per visualizzare i dati che sono stati omessi per brevità.

   ```
   {
     ...
     "stageStates": [
       ...  
       {
         "actionStates": [
           {
             "actionName": "CodeBuild",
             "latestExecution": {
               "status": "SUCCEEDED",
               ...
             },
             ...
           }
         ]
       }
     ]
   }
   ```

   Se si esegue il comando troppo presto, potrebbe non essere possibile visualizzare le informazioni sull'operazione di compilazione. Potrebbe essere necessario eseguire questo comando più volte fino a quando la pipeline ha terminato l'esecuzione dell'operazione di compilazione.

1. Dopo una compilazione riuscita, seguire le istruzioni per ottenere l'artefatto di output di compilazione. Apri la console Amazon S3 all'indirizzo. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)
**Nota**  
È anche possibile ottenere l'artefatto di output di compilazione selezionando il collegamento **Build artifacts (Artefatti di compilazione)** nella pagina dei dettagli di compilazione correlati nella console CodeBuild. Per accedere a questa pagina, ignorare le fasi rimanenti in questa procedura e consultare [Visualizzazione dei dettagli delle compilazioni (console)](view-build-details.md#view-build-details-console).

1. Nell'elenco dei bucket, aprire il bucket utilizzato dalla pipeline. Il nome del bucket deve seguire il formato `codepipeline-<region-ID>-<random-number>`. Puoi ottenere il nome del bucket dal `create-pipeline.json` file oppure puoi eseguire il CodePipeline **get-pipeline** comando per ottenere il nome del bucket.

   ```
   aws codepipeline get-pipeline --name <pipeline-name>
   ```

    Nell'output, l'oggetto `pipeline` contiene un oggetto `artifactStore`, che contiene un valore `location` con il nome del bucket.

1. Aprire la cartella corrispondente al nome della pipeline (ad esempio `<pipeline-name>`).

1. In questa cartella, aprire la cartella denominata `default`.

1. Estrai i contenuti del file . Se sono presenti più file in questa cartella, estrarre i contenuti del file con il timestamp **Last Modified (Ultima modifica)** più recente. (Potrebbe essere necessario fornire un'estensione `.zip` al file per poterlo utilizzare nell'utilità ZIP del sistema). L'artefatto di output della compilazione si trova nei contenuti estratti del file.