

Aviso de fim do suporte: em 7 de outubro de 2026, AWS encerrará o suporte para AWS Proton. Depois de 7 de outubro de 2026, você não poderá mais acessar o AWS Proton console ou os AWS Proton recursos. Sua infraestrutura implantada permanecerá intacta. Para obter mais informações, consulte o Guia [AWS Proton de descontinuação e migração de serviços](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# CodeBuild provisionamento de suporte personalizado à Amazon VPC
<a name="vpc-codebuild-custom-support"></a>

AWS Proton CodeBuild O provisionamento executa comandos CLI arbitrários fornecidos pelo cliente em um projeto localizado na CodeBuild conta Environment. AWS Proton Esses comandos normalmente gerenciam recursos usando uma ferramenta de Infraestrutura como Código (IaC), como CDK. Se você tiver recursos em uma Amazon VPC, CodeBuild talvez não consiga acessá-los. Para permitir isso, CodeBuild oferece suporte à capacidade de execução em uma Amazon VPC específica. Alguns exemplos de casos de uso incluem:
+ Recuperar dependências de repositórios de artefatos auto-hospedados, internos, como `PyPI` para Python, `Maven` para Java e `npm` para Node.js.
+ CodeBuild precisa acessar um servidor Jenkins em uma Amazon VPC específica para registrar um pipeline.
+ Acessar objetos em um bucket do Amazon S3 configurado para permitir acesso apenas por meio de um endpoint da VPC da Amazon.
+ Executar testes de integração na compilação em relação a dados em um banco de dados do Amazon RDS isolado em uma sub-rede privada.

Para obter mais informações, consulte a [CodeBuild documentação da VPC](https://docs.aws.amazon.com/codebuild/latest/userguide/vpc-support.html#use-cases).

Se você quiser que o CodeBuild provisionamento seja executado em uma VPC personalizada, AWS Proton fornece uma solução simples. Primeiro, você deve adicionar a ID da VPC, as sub-redes e os grupos de segurança ao modelo de ambiente. Em seguida, você insere esses valores na especificação do ambiente. Isso resultará na criação de um CodeBuild projeto para você que tem como alvo uma determinada VPC.

## Atualizando o modelo de ambiente
<a name="vpc-codebuild-update-environment-template"></a>

**Schema**  
O ID da VPC, as sub-redes e os grupos de segurança precisam ser adicionados ao esquema do modelo para que possam existir na especificação do ambiente.

Um exemplo de `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
```

Isso adiciona três novas propriedades que serão usadas pelo manifesto:
+ `codebuild_vpc_id`
+ `codebuild_subnets`
+ `codebuild_security_groups`

**Manifesto**  
Para definir as configurações da Amazon VPC em CodeBuild, uma propriedade opcional chamada `project_properties` está disponível no modelo de manifesto. O conteúdo de `project_properties` é adicionado à CloudFormation pilha que cria o CodeBuild projeto. Isso possibilita adicionar não apenas [CloudFormation propriedades da Amazon VPC](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-codebuild-project-vpcconfig.html), mas também qualquer [CodeBuild CloudFormation propriedade](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) compatível, como tempo limite de compilação. Os mesmos dados fornecidos ao `proton-inputs.json` são disponibilizados para os valores de `project_properties`.

Adicione esta seção ao seu `manifest.yaml`:

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

Veja a seguir a aparência do `manifest.yaml` resultante:

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

**Criar o ambiente**  
Ao criar um ambiente com seu modelo habilitado para CodeBuild Provisioning VPC, você deve fornecer o ID, as sub-redes e os grupos de segurança da Amazon VPC.

Para obter uma lista de todas as Amazon VPC IDs em sua região, execute o seguinte comando:

```
aws ec2 describe-vpcs
```

Para obter uma lista de toda a sub-rede IDs, execute:

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

**Importante**  
Inclua somente sub-redes privadas. CodeBuild falhará se você fornecer sub-redes públicas. As sub-redes públicas têm uma rota padrão para um [Gateway da Internet](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html), enquanto as sub-redes privadas não.

Execute o comando a seguir para obter o grupo de segurança IDs. Eles também IDs podem ser obtidos por meio do Console de gerenciamento da AWS:

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

Os valores serão semelhantes a:

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

**Garantindo CodeBuild permissões**  
O suporte ao Amazon VPC exige certas permissões, como a capacidade de criar uma interface de rede elástica.

Se o ambiente estiver sendo criado no console, insira esses valores durante o assistente de criação de ambiente. Se você quiser criar o ambiente de forma programática, a aparência do seu `spec.yaml` será a seguinte:

```
proton: EnvironmentSpec

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