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
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.jsMaven
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.
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
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 AWS CloudFormation stack che crea il CodeBuild progetto. In questo modo è possibile aggiungere non solo le proprietà di Amazon VPC, ma anche qualsiasi AWS CloudFormationCodeBuild CloudFormation proprietà 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 tuomanifest.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, mentre le sottoreti private no.
Esegui il comando seguente per ottenere il gruppo di sicurezza. IDs Questi IDs possono essere ottenuti anche tramite AWS Management Console:
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