CodeBuild penyediaan dukungan VPC Amazon khusus - AWS Proton

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

CodeBuild penyediaan dukungan VPC Amazon khusus

AWS Proton CodeBuild Penyediaan mengeksekusi perintah CLI yang disediakan pelanggan sewenang-wenang dalam proyek yang terletak di CodeBuild akun Lingkungan. AWS Proton Perintah ini biasanya mengelola sumber daya menggunakan alat Infrastructure as Code (IAc), seperti CDK. Jika Anda memiliki sumber daya di VPC Amazon, CodeBuild mungkin tidak dapat mengaksesnya. Untuk mengaktifkan ini, CodeBuild mendukung kemampuan untuk berjalan dalam VPC Amazon tertentu. Beberapa contoh kasus penggunaan meliputi:

  • Ambil dependensi dari repositori artefak internal yang dihosting sendiri, seperti PyPI untuk Python, untuk Java, dan untuk Node.js Maven npm

  • CodeBuild perlu mengakses server Jenkins di VPC Amazon tertentu untuk mendaftarkan pipeline.

  • Akses objek dalam bucket Amazon S3 yang dikonfigurasi untuk mengizinkan akses melalui titik akhir VPC Amazon saja.

  • Jalankan pengujian integrasi dari build Anda terhadap data dalam database Amazon RDS yang terisolasi di subnet pribadi.

Untuk informasi selengkapnya, lihat CodeBuild dan dokumentasi VPC.

Jika Anda ingin CodeBuild Provisioning berjalan di VPC kustom, AWS Proton berikan solusi langsung. Pertama, Anda harus menambahkan ID VPC, subnet, dan grup keamanan ke template lingkungan. Selanjutnya, Anda memasukkan nilai-nilai tersebut ke dalam spesifikasi lingkungan. Ini akan menghasilkan CodeBuild proyek yang dibuat untuk Anda yang menargetkan VPC tertentu.

Memperbarui Template Lingkungan

Skema

ID VPC, subnet, dan grup keamanan perlu ditambahkan ke skema template sehingga mereka dapat ada dalam spesifikasi lingkungan.

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

Ini menambahkan tiga properti baru yang akan digunakan oleh manifes:

  • codebuild_vpc_id

  • codebuild_subnets

  • codebuild_security_groups

Manifes

Untuk mengonfigurasi setelan VPC Amazon CodeBuild, properti opsional yang disebut project_properties tersedia di manifes templat. Isi project_properties ditambahkan ke AWS CloudFormation tumpukan yang membuat CodeBuild proyek. Ini memungkinkan untuk menambahkan tidak hanya properti VPC Amazon, tetapi juga AWS CloudFormation properti apa pun yang didukung CodeBuild CloudFormation , seperti batas waktu build. Data yang sama proton-inputs.json disediakan untuk dibuat tersedia untuk nilai-nilaiproject_properties.

Tambahkan bagian ini kemanifest.yaml:

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

Berikut ini adalah seperti apa hasilnyamanifest.yaml:

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 }}"
Menciptakan lingkungan

Saat membuat lingkungan dengan template yang mendukung VPC CodeBuild Penyediaan, Anda harus memberikan ID VPC Amazon, subnet, dan grup keamanan.

Untuk mendapatkan daftar semua VPC Amazon IDs di Wilayah Anda, jalankan perintah berikut:

aws ec2 describe-vpcs

Untuk mendapatkan daftar semua subnet IDs, jalankan:

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

Hanya sertakan subnet pribadi. CodeBuild akan gagal jika Anda menyediakan subnet publik. Subnet publik memiliki rute default ke Internet Gateway, sedangkan subnet pribadi tidak.

Jalankan perintah berikut untuk mendapatkan grup keamanan IDs. Ini juga IDs dapat diperoleh melalui AWS Management Console:

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

Nilainya akan menyerupai:

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

Dukungan Amazon VPC memerlukan izin tertentu, seperti kemampuan untuk membuat Antarmuka Jaringan Elastis.

Jika lingkungan sedang dibuat di konsol, masukkan nilai-nilai ini selama wizard pembuatan lingkungan. Jika Anda ingin membuat lingkungan secara terprogram, spec.yaml penampilan Anda seperti berikut:

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