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.
Saat Anda membangun aset image kontainer 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: Membangun dan menerbitkan aset gambar kontainer dengan AWS CDK
Berikut ini adalah contoh sederhana dari AWS CDK aplikasi yang membangun dan menerbitkan aset kontainer 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 AWS 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
, Antarmuka Baris AWS Cloud Development Kit (AWS CDK) Perintah (CLI) melakukan hal berikut:
-
Membangun Docker image — 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 dari kami Docker gambar di Amazon ECR.
Bagaimana 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 penggantian 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 menggantikan Docker, Anda harus menggunakan variabel CDK_DOCKER
lingkungan.
Didukung Docker mesin pengganti drop-in
Finch didukung, meskipun mungkin ada beberapa Docker fitur 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 yang mana Docker penggantian yang Anda gunakan untuk menentukan apakah itu didukung. Jika alat memiliki ekuivalen Docker perintah dan berperilaku sama, itu harus bekerja.