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:
-
Bangun image Docker — Jalankan
docker build
secara lokal berdasarkanDockerfile
pada direktori tertentu ()lib/docker
. -
Tag gambar — Jalankan
docker tag
untuk menandai gambar yang dibangun dengan hash unik, berdasarkan konten gambar. -
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. -
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
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.