

Aviso de fin del soporte: el 7 de octubre de 2026 AWS finalizará el soporte para AWS Proton. Después del 7 de octubre de 2026, ya no podrás acceder a la AWS Proton consola ni a AWS Proton los recursos. La infraestructura implementada permanecerá intacta. Para obtener más información, consulte la [Guía AWS Proton de obsolescencia y migración del servicio](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# CodeBuild aprovisionamiento de soporte personalizado para Amazon VPC
<a name="vpc-codebuild-custom-support"></a>

AWS Proton CodeBuild El aprovisionamiento ejecuta comandos CLI arbitrarios proporcionados por el cliente en CodeBuild un proyecto ubicado en AWS Proton la cuenta de entorno. Estos comandos suelen administrar los recursos mediante una herramienta de infraestructura como código (IaC), como CDK. Si tiene recursos en una Amazon VPC, es CodeBuild posible que no pueda acceder a ellos. Para habilitar esto, CodeBuild admite la capacidad de ejecutarse en una Amazon VPC específica. Algunos ejemplos de casos de uso incluyen:
+ Recuperar las dependencias de repositorios de artefactos internos y autoalojados, como `PyPI` para Python, `Maven` para Java y `npm` para Node.js
+ CodeBuild necesita acceder a un servidor Jenkins en una Amazon VPC concreta para registrar una canalización.
+ Acceder a los objetos de un bucket de Amazon S3 configurado para permitir el acceso únicamente a través de un punto de conexión de VPC de Amazon.
+ Ejecutar pruebas de integración desde la compilación con los datos de una base de datos de Amazon RDS aislada en una subred privada.

Para obtener más información, consulte la [CodeBuild documentación de la VPC](https://docs.aws.amazon.com/codebuild/latest/userguide/vpc-support.html#use-cases).

Si desea que el CodeBuild aprovisionamiento se ejecute en una VPC personalizada AWS Proton , ofrece una solución sencilla. En primer lugar, debe agregar el ID de la VPC, las subredes y los grupos de seguridad a la plantilla de entorno. A continuación, introduzca esos valores en la especificación del entorno. Esto dará como resultado la creación de un CodeBuild proyecto para usted dirigido a una VPC determinada.

## Actualización de la plantilla de entorno
<a name="vpc-codebuild-update-environment-template"></a>

**Esquema**  
El ID de la VPC, las subredes y los grupos de seguridad deben agregarse al esquema de la plantilla para que puedan existir en las especificaciones del entorno.

Un ejemplo `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
```

Esto agrega tres propiedades nuevas que utilizará el manifiesto:
+ `codebuild_vpc_id`
+ `codebuild_subnets`
+ `codebuild_security_groups`

**Manifiesto**  
Para configurar los ajustes de Amazon VPC en CodeBuild, hay una propiedad opcional llamada `project_properties` disponible en el manifiesto de la plantilla. El contenido de `project_properties` se añade a la CloudFormation pila que crea el CodeBuild proyecto. Esto permite añadir no solo [CloudFormation propiedades de Amazon VPC](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html), sino también cualquier [CodeBuild CloudFormation propiedad](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) compatible, como el tiempo de espera de compilación. Los mismos datos proporcionados a `proton-inputs.json` están disponibles para los valores de `project_properties`.

Añada esta sección a su `manifest.yaml`:

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

El `manifest.yaml` resultante puede tener el siguiente aspecto:

```
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 }}"
```

**Creación del entorno**  
Al crear un entorno con una plantilla habilitada para VPC de CodeBuild Provisioning, debe proporcionar el ID de Amazon VPC, las subredes y los grupos de seguridad.

Para obtener una lista de todas las Amazon VPC de su IDs región, ejecute el siguiente comando:

```
aws ec2 describe-vpcs
```

Para obtener una lista de todas las subredes IDs, ejecute:

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

**importante**  
Incluya solo las subredes privadas. CodeBuild fallará si proporciona subredes públicas. A diferencia de las subredes privadas, las subredes públicas tienen una ruta predeterminada a una [puerta de enlace de Internet](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html).

Ejecute el siguiente comando para obtener el grupo IDs de seguridad. También se IDs pueden obtener mediante Consola de administración de AWS:

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

Los valores se parecerán a los siguientes:

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

**Garantizar CodeBuild los permisos**  
La compatibilidad con la VPC de Amazon requiere ciertos permisos, como la capacidad de crear una interfaz de red elástica.

Si el entorno se está creando en la consola, introduzca estos valores durante el asistente de creación del entorno. Si desea crear el entorno mediante programación, su `spec.yaml` tendrá el siguiente aspecto:

```
proton: EnvironmentSpec

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