Buat dan terapkan aset image kontainer di aplikasi CDK - AWS Cloud Development Kit (AWS CDK) v2

Ini adalah Panduan Pengembang AWS CDK v2. CDK v1 yang lebih lama memasuki pemeliharaan pada 1 Juni 2022 dan mengakhiri dukungan pada 1 Juni 2023.

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

Buat dan terapkan aset image kontainer di aplikasi CDK

Saat Anda membuat aset image container dengan AWS Cloud Development Kit (AWS CDK), Docker digunakan secara default untuk melakukan tindakan ini. Jika Anda ingin menggunakan alat manajemen kontainer yang berbeda, Anda dapat mengganti Docker melalui variabel CDK_DOCKER lingkungan.

Contoh: Buat dan publikasikan aset gambar kontainer dengan AWS CDK

Berikut ini adalah contoh sederhana dari aplikasi AWS CDK yang membangun dan menerbitkan aset container ke Amazon Elastic Container Registry (Amazon ECR) menggunakan Docker secara default:

Struktur proyek
my-cdk-app/ ├── lib/ │ ├── my-stack.ts │ └── docker/ │ ├── Dockerfile │ └── app/ │ └── index.js ├── bin/ │ └── my-cdk-app.ts ├── package.json ├── tsconfig.json └── cdk.json
Dockerfile
FROM public.ecr.aws/lambda/nodejs:16 # Copy application code COPY app/ /var/task/ # (Optional) Install dependencies # RUN npm install # The Lambda Node.js base image looks for index.handler by default
Kode aplikasi

Dalam lib/docker/app/index.js:

console.log("Hello from inside the container!");
Tumpukan CDK
import * as cdk from 'aws-cdk-lib'; import { Construct } from 'constructs'; import * as ecr_assets from 'aws-cdk-lib/aws-ecr-assets'; export class MyStack extends cdk.Stack { constructor(scope: Construct, id: string) { super(scope, id); // Define a Docker image asset const dockerImageAsset = new ecr_assets.DockerImageAsset(this, 'MyDockerImage', { directory: 'lib/docker', // Path to the directory containing the Dockerfile }); // Output the ECR URI new cdk.CfnOutput(this, 'ECRImageUri', { value: dockerImageAsset.imageUri, }); } }
Aplikasi CDK
#!/usr/bin/env node import * as cdk from 'aws-cdk-lib'; import { MyStack } from '../lib/my-stack'; const app = new cdk.App(); new MyStack(app, 'MyStack');

Saat kami menjalankancdk deploy, AWS Cloud Development Kit (AWS CDK) Command Line Interface (CLI) melakukan hal berikut:

  1. Bangun image Docker — Jalankan docker build secara lokal berdasarkan Dockerfile pada direktori tertentu ()lib/docker.

  2. Tag gambar — Jalankan docker tag untuk menandai gambar yang dibangun dengan hash unik, berdasarkan konten gambar.

  3. Publikasikan ke Amazon ECR - Jalankan docker push untuk mempublikasikan gambar kontainer ke repositori Amazon ECR. Repositori ini harus sudah ada. Itu dibuat selama proses bootstrapping default.

  4. Keluarkan URI Gambar - Setelah penerapan berhasil, URI ECR Amazon dari image kontainer yang dipublikasikan akan dikeluarkan di command prompt Anda. Ini adalah URI gambar Docker kami di Amazon ECR.

Cara mengganti Docker dengan alat manajemen kontainer lain

Gunakan variabel CDK_DOCKER lingkungan untuk menentukan jalur ke biner alat manajemen kontainer pengganti Anda. Berikut ini adalah contoh mengganti Docker dengan Finch:

$ which finch /usr/local/bin/finch # Locate the path to the binary $ export CDK_DOCKER='/usr/local/bin/finch' # Set the environment variable $ cdk deploy # Deploy using the replacement

Aliasing atau penautan tidak didukung. Untuk mengganti Docker, Anda harus menggunakan variabel CDK_DOCKER lingkungan.

Mesin pengganti drop-in Docker yang didukung

Finch didukung, meskipun mungkin ada beberapa fitur Docker yang tidak tersedia atau mungkin bekerja secara berbeda saat alat berkembang. Untuk informasi lebih lanjut tentang Finch, lihat Siap Penerbangan: Mengumumkan Finch 1.0 GA! di Blog AWS Open Source.

Alat manajemen kontainer lainnya mungkin berfungsi. CDK tidak memeriksa pengganti Docker mana yang Anda gunakan untuk menentukan apakah itu didukung. Jika alat memiliki perintah Docker yang setara dan berperilaku serupa, itu akan berfungsi.