

Avviso di fine del supporto: il 7 ottobre 2026, AWS terminerà il supporto per AWS Proton. Dopo il 7 ottobre 2026, non potrai più accedere alla AWS Proton console o AWS Proton alle risorse. L'infrastruttura implementata rimarrà intatta. Per ulteriori informazioni, consulta [AWS Proton Service Deprecation](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html) and Migration Guide.

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

# CodeBuild fornitura di supporto Amazon VPC personalizzato
<a name="vpc-codebuild-custom-support"></a>

AWS Proton CodeBuild Il provisioning esegue comandi CLI arbitrari forniti dal cliente in un CodeBuild progetto situato nell'account Environment. AWS Proton Questi comandi in genere gestiscono le risorse utilizzando uno strumento Infrastructure as Code (IaC), come CDK. Se disponi di risorse in un Amazon VPC, CodeBuild potresti non essere in grado di accedervi. A tal fine, CodeBuild supporta la capacità di funzionare all'interno di uno specifico Amazon VPC. Alcuni esempi di casi d'uso includono:
+ Recupera le dipendenze da archivi di artefatti interni ospitati autonomamente, ad esempio per `PyPI` Python, per Java e per Node.js `Maven` `npm`
+ CodeBuild deve accedere a un server Jenkins in un particolare Amazon VPC per registrare una pipeline.
+ Accedi agli oggetti in un bucket Amazon S3 configurato per consentire l'accesso solo tramite un endpoint Amazon VPC.
+ Esegui i test di integrazione della tua build rispetto ai dati in un database Amazon RDS isolato su una sottorete privata.

Per ulteriori informazioni, consulta la [CodeBuild documentazione relativa al VPC.](https://docs.aws.amazon.com/codebuild/latest/userguide/vpc-support.html#use-cases)

Se desideri che CodeBuild Provisioning venga eseguito in un VPC personalizzato AWS Proton , offre una soluzione semplice. Innanzitutto, è necessario aggiungere l'ID VPC, le sottoreti e i gruppi di sicurezza al modello di ambiente. Successivamente, inserisci questi valori nelle specifiche dell'ambiente. Ciò comporterà la creazione di un CodeBuild progetto per te destinato a un determinato VPC.

## Aggiornamento del modello di ambiente
<a name="vpc-codebuild-update-environment-template"></a>

**Schema**  
L'ID VPC, le sottoreti e i gruppi di sicurezza devono essere aggiunti allo schema del modello in modo che possano esistere nelle specifiche dell'ambiente.

Un esempio: `schema.yaml`

```
schema:
  format:
    openapi: "3.0.0"
  environment_input_type: "EnvironmentInputType"
  types:
    EnvironmentInputType:
      type: object
      properties:
        codebuild_vpc_id:
          type: string
        codebuild_subnets:
          type: array
          items:
            type: string
        codebuild_security_groups:
          type: array
          items:
            type: string
```

Ciò aggiunge tre nuove proprietà che verranno utilizzate dal manifesto:
+ `codebuild_vpc_id`
+ `codebuild_subnets`
+ `codebuild_security_groups`

**Manifesto**  
Per configurare le impostazioni di Amazon VPC in CodeBuild, nel manifesto del modello `project_properties` è disponibile una proprietà opzionale denominata. I contenuti di `project_properties` vengono aggiunti allo CloudFormation stack che crea il CodeBuild progetto. In questo modo è possibile aggiungere non solo le proprietà di [Amazon VPC, ma anche qualsiasi CloudFormation[CodeBuild CloudFormation proprietà](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html) supportata, ad esempio build timeout. Gli stessi dati forniti a `proton-inputs.json` sono resi disponibili per i valori di. `project_properties`

Aggiungi questa sezione al tuo`manifest.yaml`:

```
project_properties:
          VpcConfig:
            VpcId: "{{ environment.inputs.codebuild_vpc_id }}"
            Subnets: "{{ environment.inputs.codebuild_subnets }}"
            SecurityGroupIds: "{{ environment.inputs.codebuild_security_groups }}"
```

Di seguito è riportato come `manifest.yaml` potrebbe apparire il risultato:

```
infrastructure:
  templates:
    - rendering_engine: codebuild
      settings:
        image: aws/codebuild/amazonlinux2-x86_64-standard:4.0
        runtimes:
          nodejs: 16
        provision:
          - npm install
          - npm run build
          - npm run cdk bootstrap
          - npm run cdk deploy -- --require-approval never
        deprovision:
          - npm install
          - npm run build
          - npm run cdk destroy -- --force
        project_properties:
          VpcConfig:
            VpcId: "{{ environment.inputs.codebuild_vpc_id }}"
            Subnets: "{{ environment.inputs.codebuild_subnets }}"
            SecurityGroupIds: "{{ environment.inputs.codebuild_security_groups }}"
```

**Creare l'ambiente**  
Quando crei un ambiente con il tuo modello abilitato per CodeBuild Provisioning VPC, devi fornire l'ID Amazon VPC, le sottoreti e i gruppi di sicurezza.

Per ottenere un elenco di tutti gli Amazon VPC IDs nella tua regione, esegui il seguente comando:

```
aws ec2 describe-vpcs
```

Per ottenere un elenco di tutte le sottoreti IDs, esegui:

```
aws ec2 describe-subnets --filters "Name=vpc-id,Values=vpc-id"
```

**Importante**  
Includi solo sottoreti private. CodeBuild fallirà se fornisci sottoreti pubbliche. Le sottoreti pubbliche hanno un percorso predefinito verso un [Internet Gateway](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html), mentre le sottoreti private no.

Esegui il comando seguente per ottenere il gruppo di sicurezza. IDs Questi IDs possono essere ottenuti anche tramite Console di gestione AWS:

```
aws ec2 describe-security-groups --filters "Name=vpc-id,Values=vpc-id"
```

I valori saranno simili a:

```
vpc-id: vpc-045ch35y28dec3a05
subnets:
  - subnet-04029a82e6ae46968
  - subnet-0f500a9294fc5f26a
 security-groups:
  - sg-03bc4c4ce32d67e8d
```

**Garantire le CodeBuild autorizzazioni**  
Il supporto di Amazon VPC richiede determinate autorizzazioni, come la possibilità di creare un'interfaccia di rete elastica.

Se l'ambiente viene creato nella console, inserisci questi valori durante la procedura guidata di creazione dell'ambiente. Se desideri creare l'ambiente a livello di codice, il tuo è `spec.yaml` simile al seguente:

```
proton: EnvironmentSpec

spec:
  codebuild_vpc_id: vpc-045ch35y28dec3a05
  codebuild_subnets:
    - subnet-04029a82e6ae46968
    - subnet-0f500a9294fc5f26a
  codebuild_security_groups:
    - sg-03bc4c4ce32d67e8d
```