

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

# AWS CodePipeline campioni per CodeBuild
<a name="sample-codepipeline"></a>

Questa sezione descrive esempi di integrazioni tra CodePipeline e CodeBuild.


| Project N.E.M.O. | Description | 
| --- | --- | 
|  [Esempi di CodePipeline/CodeBuild integrazioni e build in batch](#sample-pipeline-batch)  |  Questi esempi mostrano come utilizzare per AWS CodePipeline creare un progetto di compilazione che utilizza build in batch.  | 
|  [Esempio di CodePipeline/CodeBuild integrazione con più sorgenti di input e artefatti di output](#sample-pipeline-multi-input-output)  |  Questo esempio dimostra come utilizzarlo per AWS CodePipeline creare un progetto di compilazione che utilizza più fonti di input per creare più artefatti di output.  | 

## Esempi di CodePipeline/CodeBuild integrazioni e build in batch
<a name="sample-pipeline-batch"></a>

AWS CodeBuild supporta le build in batch. Gli esempi seguenti mostrano come utilizzare per AWS CodePipeline creare un progetto di compilazione che utilizza build in batch.

È possibile utilizzare un file in formato JSON che definisce la struttura della pipeline e quindi utilizzarlo con il per creare la pipeline. AWS CLI *Per ulteriori informazioni, consulta il riferimento alla struttura della [AWS CodePipeline pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html) nella Guida per l'utente.AWS CodePipeline *

### Creazione in batch con singoli artefatti
<a name="sample-pipeline-batch.separate-artifacts"></a>

Utilizza il seguente file JSON come esempio di struttura di pipeline che crea una build in batch con artefatti separati. Per abilitare la compilazione in batch CodePipeline, impostate il `BatchEnabled` parametro dell'oggetto su. `configuration` `true`

```
{
  "pipeline": {
    "roleArn": "arn:aws:iam::account-id:role/my-AWS-CodePipeline-service-role-name",
    "stages": [
      {
        "name": "Source",
        "actions": [
          {
            "inputArtifacts": [],
            "name": "Source1",
            "actionTypeId": {
              "category": "Source",
              "owner": "AWS",
              "version": "1",
              "provider": "S3"
            },
            "outputArtifacts": [
              {
                "name": "source1"
              }
            ],
            "configuration": {
              "S3Bucket": "<my-input-bucket-name>",
              "S3ObjectKey": "my-source-code-file-name.zip"
            },
            "runOrder": 1
          },
          {
            "inputArtifacts": [],
            "name": "Source2",
            "actionTypeId": {
              "category": "Source",
              "owner": "AWS",
              "version": "1",
              "provider": "S3"
            },
            "outputArtifacts": [
              {
                "name": "source2"
              }
            ],
            "configuration": {
              "S3Bucket": "<my-other-input-bucket-name>",
              "S3ObjectKey": "my-other-source-code-file-name.zip"
            },
            "runOrder": 1
          }
        ]
      },
      {
        "name": "Build",
        "actions": [
          {
            "inputArtifacts": [
              {
                "name": "source1"
              },
              {
                "name": "source2"
              }
            ],
            "name": "Build",
            "actionTypeId": {
              "category": "Build",
              "owner": "AWS",
              "version": "1",
              "provider": "CodeBuild"
            },
            "outputArtifacts": [
              {
                "name": "build1"
              },
              {
                "name": "build1_artifact1"
              },
              {
                "name": "build1_artifact2"
              },
              {
                "name": "build2_artifact1"
              },
              {
                "name": "build2_artifact2"
              }
            ],
            "configuration": {
              "ProjectName": "my-build-project-name",
              "PrimarySource": "source1",
              "BatchEnabled": "true"
            },
            "runOrder": 1
          }
        ]
      }
    ],
    "artifactStore": {
      "type": "S3",
      "location": "<AWS-CodePipeline-internal-bucket-name>"
    },
    "name": "my-pipeline-name",
    "version": 1
  }
}
```

Di seguito è riportato un esempio di file CodeBuild buildspec che funzionerà con questa configurazione della pipeline.

```
version: 0.2
batch:
  build-list:
    - identifier: build1
      env:
        compute-type: BUILD_GENERAL1_SMALL
    - identifier: build2
      env:
        compute-type: BUILD_GENERAL1_MEDIUM

phases:
  build:
    commands:
      - echo 'file' > output_file

artifacts:
  files:
    - output_file
  secondary-artifacts:
    artifact1:
      files:
        - output_file
    artifact2:
      files:
        - output_file
```

I nomi degli artefatti di output specificati nel file JSON della pipeline devono corrispondere all'identificatore delle build e degli artefatti definiti nel file buildspec. La sintassi è per gli artefatti primari e \$1 per gli artefatti *buildIdentifier* secondari. *buildIdentifier* *artifactIdentifier*

Ad esempio, per il nome dell'artefatto di output`build1`, CodeBuild caricherà l'artefatto principale nella posizione di. `build1` `build1` Per il nome di output`build1_artifact1`, CodeBuild caricherà l'artefatto secondario di nella posizione `artifact1` `build1` di, e così via. `build1_artifact1` Se viene specificata una sola posizione di output, il nome deve essere *buildIdentifier* solo.

Dopo aver creato il file JSON, puoi creare la tua pipeline. Utilizzate il AWS CLI per eseguire il comando **create-pipeline** e passate il file al parametro. `--cli-input-json` Per ulteriori informazioni, consulta [Create a pipeline (CLI](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli)) nella Guida per *AWS CodePipeline l'*utente. 

### Creazione in batch con artefatti combinati
<a name="sample-pipeline-batch.combined-artifacts"></a>

Utilizzate il seguente file JSON come esempio di struttura di pipeline che crea una build in batch con artefatti combinati. Per abilitare la compilazione in batch CodePipeline, impostate il `BatchEnabled` parametro dell'oggetto su. `configuration` `true` Per combinare gli elementi di costruzione nella stessa posizione, impostate il `CombineArtifacts` parametro dell'`configuration`oggetto su. `true`

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

Di seguito è riportato un esempio di file CodeBuild buildspec che funzionerà con questa configurazione della pipeline.

```
version: 0.2
batch:
  build-list:
    - identifier: build1
      env:
        compute-type: BUILD_GENERAL1_SMALL
    - identifier: build2
      env:
        compute-type: BUILD_GENERAL1_MEDIUM

phases:
  build:
    commands:
      - echo 'file' > output_file

artifacts:
  files:
    - output_file
```

Se gli artefatti combinati sono abilitati per la compilazione in batch, è consentito un solo output. CodeBuild combinerà gli artefatti principali di tutte le build in un unico file ZIP.

Dopo aver creato il file JSON, puoi creare la tua pipeline. Utilizzate il AWS CLI per eseguire il comando **create-pipeline** e passare il file al parametro. `--cli-input-json` Per ulteriori informazioni, consulta [Create a pipeline (CLI](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli)) nella Guida per *AWS CodePipeline l'*utente. 

## Esempio di CodePipeline/CodeBuild integrazione con più sorgenti di input e artefatti di output
<a name="sample-pipeline-multi-input-output"></a>

Un AWS CodeBuild progetto può richiedere più di una fonte di input. Può anche creare più di un artefatto di output. Questo esempio dimostra come utilizzarlo per AWS CodePipeline creare un progetto di compilazione che utilizzi più fonti di input per creare più artefatti di output. Per ulteriori informazioni, consulta [Diverse origini di input ed esempi di artefatti di output](sample-multi-in-out.md).

È possibile utilizzare un file in formato JSON che definisce la struttura della pipeline e quindi utilizzarlo con il per creare la pipeline. AWS CLI Utilizzare il seguente file JSON come esempio di una struttura di pipeline che crea una compilazione con più di un'origine di input e più di un artefatto di output. Più avanti in questo esempio viene illustrato come questo file specifica i numerosi input e output. *Per ulteriori informazioni, consulta il riferimento alla struttura della [CodePipeline pipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html) nella Guida per l'utente.AWS CodePipeline *

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

 In questo file JSON: 
+ Una delle origini di input deve essere un percorso `PrimarySource`. Questa fonte è la directory in cui CodeBuild cerca ed esegue il file buildspec. La parola chiave `PrimarySource` viene utilizzata per specificare la fonte primaria nella `configuration` sezione dello CodeBuild stage del file JSON. 
+ Ogni origine di input è installata nella propria directory. Questa directory viene archiviata nella variabile di ambiente integrata `$CODEBUILD_SRC_DIR` per l'origine principale e in`$CODEBUILD_SRC_DIR_yourInputArtifactName` per tutte le altre origini. Per la pipeline di questo esempio, le due directory delle origini di input sono `$CODEBUILD_SRC_DIR` e `$CODEBUILD_SRC_DIR_source2`. Per ulteriori informazioni, consulta [Variabili di ambiente degli ambienti di compilazione](build-env-ref-env-vars.md). 
+ I nomi degli artefatti di output specificati nel file JSON della pipeline devono corrispondere ai nomi degli artefatti secondari definiti nel file buildspec. Questa pipeline utilizza il seguente file buildspec. Per ulteriori informazioni, consulta [Sintassi buildspec](build-spec-ref.md#build-spec-ref-syntax). 

  ```
  version: 0.2
  
  phases:
    build:
      commands:
        - touch source1_file
        - cd $CODEBUILD_SRC_DIR_source2
        - touch source2_file
  
  artifacts:
    files:
      - '**/*'
    secondary-artifacts:
      artifact1:
        base-directory: $CODEBUILD_SRC_DIR
        files:
          - source1_file
      artifact2:
        base-directory: $CODEBUILD_SRC_DIR_source2
        files:
          - source2_file
  ```

 Dopo aver creato il file JSON, puoi creare la tua pipeline. Utilizzate il AWS CLI per eseguire il comando **create-pipeline** e passate il file al parametro. `--cli-input-json` Per ulteriori informazioni, consulta [Create a pipeline (CLI](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipelines-create.html#pipelines-create-cli)) nella Guida per *AWS CodePipeline l'*utente. 