

Hinweis zum Ende des Supports: Am 7. Oktober 2026 AWS endet der Support für AWS Proton. Nach dem 7. Oktober 2026 können Sie nicht mehr auf die AWS Proton Konsole oder AWS Proton die Ressourcen zugreifen. Ihre bereitgestellte Infrastruktur bleibt intakt. Weitere Informationen finden Sie im [AWS Proton Service Deprecation and Migration Guide](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# CodeBuild Bereitstellung von benutzerdefiniertem Amazon VPC-Support
<a name="vpc-codebuild-custom-support"></a>

AWS Proton CodeBuild Beim Provisioning werden beliebige vom Kunden bereitgestellte CLI-Befehle in einem CodeBuild Projekt ausgeführt, das sich im Environment-Konto befindet. AWS Proton Diese Befehle verwalten Ressourcen in der Regel mithilfe eines IaC-Tools (Infrastructure as Code) wie CDK. Wenn Sie über Ressourcen in einer Amazon VPC verfügen, CodeBuild können Sie möglicherweise nicht darauf zugreifen. Um dies zu ermöglichen, CodeBuild unterstützt es die Ausführung innerhalb einer bestimmten Amazon VPC. Einige Beispiele für Anwendungsfälle sind:
+ Rufen Sie Abhängigkeiten aus selbst gehosteten, internen Artefakt-Repositorys ab, z. B. `PyPI` für Python, `Maven` für Java und für Node.js `npm`
+ CodeBuild muss auf einen Jenkins-Server in einer bestimmten Amazon VPC zugreifen, um eine Pipeline zu registrieren.
+ Greifen Sie auf Objekte in einem Amazon S3 S3-Bucket zu, der so konfiguriert ist, dass der Zugriff nur über einen Amazon VPC-Endpunkt möglich ist.
+ Führen Sie Integrationstests von Ihrem Build aus anhand von Daten in einer Amazon RDS-Datenbank durch, die in einem privaten Subnetz isoliert ist.

Weitere Informationen finden Sie CodeBuild in der [VPC-Dokumentation](https://docs.aws.amazon.com/codebuild/latest/userguide/vpc-support.html#use-cases).

Wenn Sie möchten, dass CodeBuild Provisioning in einer benutzerdefinierten VPC ausgeführt wird, AWS Proton bietet dies eine einfache Lösung. Zunächst müssen Sie die VPC-ID, Subnetze und Sicherheitsgruppen zur Umgebungsvorlage hinzufügen. Als Nächstes geben Sie diese Werte in die Umgebungsspezifikation ein. Dies führt dazu, dass für Sie ein CodeBuild Projekt erstellt wird, das auf eine bestimmte VPC abzielt.

## Aktualisierung der Umgebungsvorlage
<a name="vpc-codebuild-update-environment-template"></a>

**Schema**  
Die VPC-ID, die Subnetze und die Sicherheitsgruppen müssen dem Vorlagenschema hinzugefügt werden, damit sie in der Umgebungsspezifikation existieren können.

Ein Beispiel: `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
```

Dadurch werden drei neue Eigenschaften hinzugefügt, die vom Manifest verwendet werden:
+ `codebuild_vpc_id`
+ `codebuild_subnets`
+ `codebuild_security_groups`

**Manifest**  
Um die Amazon VPC-Einstellungen zu konfigurieren CodeBuild, `project_properties` steht im Vorlagenmanifest eine optionale Eigenschaft namens zur Verfügung. Der Inhalt von `project_properties` wird dem CloudFormation Stack hinzugefügt, der das CodeBuild Projekt erstellt. Dadurch ist es möglich, nicht nur [Amazon CloudFormation VPC-Eigenschaften hinzuzufügen, sondern auch alle unterstützten [CodeBuild CloudFormation Eigenschaften](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), wie z. B. Build-Timeout. Dieselben Daten, die für `proton-inputs.json` bereitgestellt wurden, werden für die Werte von zur Verfügung gestellt. `project_properties`

Fügen Sie diesen Abschnitt zu Ihrem hinzu`manifest.yaml`:

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

Das Ergebnis `manifest.yaml` könnte wie folgt aussehen:

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

**Die Umgebung erstellen**  
Wenn Sie eine Umgebung mit Ihrer CodeBuild Provisioning VPC-fähigen Vorlage erstellen, müssen Sie die Amazon VPC-ID, Subnetze und Sicherheitsgruppen angeben.

Führen Sie den folgenden Befehl aus, um eine Liste aller Amazon VPC IDs in Ihrer Region abzurufen:

```
aws ec2 describe-vpcs
```

Um eine Liste aller Subnetze zu erhalten IDs, führen Sie folgenden Befehl aus:

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

**Wichtig**  
Schließt nur private Subnetze ein. CodeBuild schlägt fehl, wenn Sie öffentliche Subnetze bereitstellen. Öffentliche Subnetze haben eine Standardroute zu einem [Internet Gateway](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html), private Subnetze dagegen nicht.

Führen Sie den folgenden Befehl aus, um die Sicherheitsgruppe abzurufen. IDs Diese IDs können auch abgerufen werden über AWS-Managementkonsole:

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

Die Werte werden wie folgt aussehen:

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

**Sicherstellung von CodeBuild Genehmigungen**  
Für die Unterstützung von Amazon VPC sind bestimmte Berechtigungen erforderlich, z. B. die Möglichkeit, eine Elastic Network Interface zu erstellen.

Wenn die Umgebung in der Konsole erstellt wird, geben Sie diese Werte während des Assistenten zur Umgebungserstellung ein. Wenn Sie die Umgebung programmgesteuert erstellen möchten, `spec.yaml` sieht sie wie folgt aus:

```
proton: EnvironmentSpec

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