Ini adalah Panduan Pengembang AWS CDK v2. CDKV1 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.
Konfigurasikan lingkungan untuk digunakan dengan AWS CDK
Anda dapat mengonfigurasi AWS lingkungan dengan berbagai cara untuk digunakan dengan file AWS Cloud Development Kit (AWS CDK). Metode terbaik untuk mengelola AWS lingkungan akan bervariasi, berdasarkan kebutuhan spesifik Anda.
Setiap CDK tumpukan dalam aplikasi Anda pada akhirnya harus dikaitkan dengan lingkungan untuk menentukan ke mana tumpukan akan digunakan.
Untuk pengenalan AWS lingkungan, lihatLingkungan untuk AWS CDK.
Topik
Di mana Anda dapat menentukan lingkungan dari
Anda dapat menentukan lingkungan dalam kredensyal dan file konfigurasi, atau dengan menggunakan env
properti konstruksi dari Stack
Construct Library. AWS
Kredensial dan file konfigurasi
Anda dapat menggunakan AWS Command Line Interface (AWS CLI) untuk membuat credentials
dan config
file yang menyimpan, mengatur, dan mengelola informasi AWS lingkungan Anda. Untuk mempelajari lebih lanjut tentang file-file ini, lihat Pengaturan konfigurasi dan file kredensyal di Panduan AWS Command Line Interface Pengguna.
Nilai yang disimpan dalam file-file ini diatur oleh profil. Cara Anda memberi nama profil Anda dan pasangan nilai kunci dalam file-file ini akan bervariasi berdasarkan metode Anda mengonfigurasi akses terprogram. Untuk mempelajari lebih lanjut tentang metode yang berbeda, lihatKonfigurasikan kredensi keamanan untuk AWS CDKCLI.
Secara umum, AWS CDK menyelesaikan Akun AWS informasi dari credentials
file Anda dan Wilayah AWS informasi dari file Andaconfig
.
Setelah Anda mengkonfigurasi config
file credentials
dan Anda, Anda dapat menentukan lingkungan yang akan digunakan dengan AWS CDK CLI dan melalui variabel lingkungan.
properti env dari konstruksi Stack
Anda dapat menentukan lingkungan untuk setiap tumpukan dengan menggunakan env
properti Stack
konstruksi. Properti ini mendefinisikan akun dan Wilayah yang akan digunakan. Anda dapat meneruskan nilai hard-code ke properti ini atau meneruskan variabel lingkungan yang ditawarkan oleh. CDK
Untuk melewati variabel lingkungan, gunakan variabel AWS_DEFAULT_ACCOUNT
dan AWS_DEFAULT_REGION
lingkungan. Variabel lingkungan ini dapat meneruskan nilai dari config
file Anda credentials
dan. Anda juga dapat menggunakan logika dalam CDK kode Anda untuk menentukan nilai variabel lingkungan ini.
Prioritas lingkungan dengan AWS CDK
Jika Anda menggunakan beberapa metode menentukan lingkungan, AWS CDK mematuhi prioritas berikut:
-
Nilai hard-code ditentukan dengan
env
properti konstruksi.Stack
-
AWS_DEFAULT_ACCOUNT
dan variabelAWS_DEFAULT_REGION
lingkungan ditentukan denganenv
propertiStack
konstruksi. -
Informasi lingkungan yang terkait dengan profil dari Anda
credentials
danconfig
file dan diteruskan ke CDK CLI menggunakan--profile
opsi. -
default
Profil dari Andacredentials
danconfig
file.
Kapan menentukan lingkungan
Ketika Anda mengembangkan denganCDK, Anda mulai dengan mendefinisikan CDK tumpukan, yang berisi konstruksi yang mewakili sumber daya. AWS Selanjutnya, Anda mensintesis setiap CDK tumpukan menjadi AWS CloudFormation template. Anda kemudian menyebarkan CloudFormation template ke lingkungan Anda. Bagaimana Anda menentukan lingkungan menentukan kapan informasi lingkungan Anda diterapkan dan dapat memengaruhi CDK perilaku dan hasil.
Tentukan lingkungan pada sintesis templat
Saat Anda menentukan informasi lingkungan menggunakan env
properti Stack
konstruksi, informasi lingkungan Anda diterapkan pada sintesis templat. Menjalankan cdk synth
atau cdk
deploy
menghasilkan template khusus lingkungan CloudFormation .
Jika Anda menggunakan variabel lingkungan dalam env
properti, Anda harus menggunakan --profile
opsi dengan CDK CLI perintah untuk meneruskan profil yang berisi informasi lingkungan Anda dari kredensyal dan file konfigurasi Anda. Informasi ini kemudian akan diterapkan pada sintesis template untuk menghasilkan template khusus lingkungan.
Informasi lingkungan dalam CloudFormation template lebih diutamakan daripada metode lain. Misalnya, jika Anda menyediakan lingkungan yang berbedacdk deploy --profile
, profil akan diabaikan.profile
Saat Anda memberikan informasi lingkungan dengan cara ini, Anda dapat menggunakan kode dan logika yang bergantung pada lingkungan dalam aplikasi Anda. CDK Ini juga berarti bahwa template yang disintesis bisa berbeda, berdasarkan mesin, pengguna, atau sesi yang disintesis di bawahnya. Pendekatan ini sering dapat diterima atau diinginkan selama pengembangan, tetapi tidak direkomendasikan untuk penggunaan produksi.
Tentukan lingkungan pada penyebaran tumpukan
Jika Anda tidak menentukan lingkungan menggunakan env
properti Stack
konstruksi, CDK CLI akan menghasilkan template agnostik lingkungan CloudFormation pada sintesis. Anda kemudian dapat menentukan lingkungan yang akan digunakan dengan menggunakancdk deploy --profile
.profile
Jika Anda tidak menentukan profil saat menerapkan template agnostik lingkungan, CDK CLI akan mencoba menggunakan nilai lingkungan dari default
profil Anda credentials
dan config
file saat penerapan.
Jika informasi lingkungan tidak tersedia saat penyebaran, AWS CloudFormation akan mencoba untuk menyelesaikan informasi lingkungan saat penyebaran melalui atribut terkait lingkungan seperti,, dan. stack.account
stack.region
stack.availabilityZones
Untuk tumpukan agnostik lingkungan, konstruksi dalam tumpukan tidak dapat menggunakan informasi lingkungan dan Anda tidak dapat menggunakan logika yang memerlukan informasi lingkungan. Misalnya, Anda tidak dapat menulis kode seperti if (stack.region ====
'us-east-1')
atau menggunakan metode konstruksi yang memerlukan informasi lingkungan sepertiVpc.fromLookup
. Untuk menggunakan fitur ini, Anda harus menentukan lingkungan dengan env
properti.
Untuk tumpukan agnostik lingkungan, konstruksi apa pun yang menggunakan Availability Zones akan melihat dua Availability Zone, memungkinkan tumpukan untuk diterapkan ke Wilayah mana pun.
Cara menentukan lingkungan dengan AWS CDK
Tentukan lingkungan hard-code untuk setiap tumpukan
Gunakan env
properti Stack
konstruksi untuk menentukan nilai AWS lingkungan untuk tumpukan Anda. Berikut adalah contohnya:
Kami merekomendasikan pendekatan ini untuk lingkungan produksi. Dengan secara eksplisit menentukan lingkungan dengan cara ini, Anda dapat memastikan bahwa tumpukan selalu diterapkan ke lingkungan tertentu.
Tentukan lingkungan menggunakan variabel lingkungan
AWS CDK Ini menyediakan dua variabel lingkungan yang dapat Anda gunakan dalam CDK kode Anda: CDK_DEFAULT_ACCOUNT
danCDK_DEFAULT_REGION
. Bila Anda menggunakan variabel lingkungan ini dalam env
properti instance tumpukan Anda, Anda dapat meneruskan informasi lingkungan dari kredensi dan file konfigurasi menggunakan file CDK CLI --profile
pilihan.
Berikut ini adalah contoh bagaimana menentukan variabel lingkungan ini:
Dengan menentukan lingkungan menggunakan variabel lingkungan, Anda dapat memiliki CDK tumpukan yang sama disintesis ke AWS CloudFormation template untuk lingkungan yang berbeda. Ini berarti Anda dapat menerapkan CDK tumpukan yang sama ke AWS lingkungan yang berbeda tanpa harus memodifikasi CDK kode Anda. Anda hanya perlu menentukan profil yang akan digunakan saat menjalankancdk synth
.
Pendekatan ini sangat bagus untuk lingkungan pengembangan saat menerapkan tumpukan yang sama ke lingkungan yang berbeda. Namun, kami tidak merekomendasikan pendekatan ini untuk lingkungan produksi karena CDK kode yang sama dapat mensintesis template yang berbeda, tergantung pada mesin, pengguna, atau sesi yang disintesis di bawahnya.
Tentukan lingkungan dari kredensi dan file konfigurasi Anda dengan CDK CLI
Saat menerapkan template agnostik lingkungan, gunakan opsi dengan apa pun --profile
CDK CLI perintah untuk menentukan profil yang akan digunakan. Berikut ini adalah contoh yang menyebarkan CDK tumpukan bernama myStack
menggunakan prod
profil yang didefinisikan dalam config
file credentials
dan:
$
cdk deploy
myStack
--profileprod
Untuk informasi lebih lanjut tentang --profile
opsi, bersama dengan lainnya CDK CLI perintah dan opsi, lihatAWS CDK CLI referensi perintah.
Pertimbangan saat mengonfigurasi lingkungan dengan AWS CDK
Layanan yang Anda tentukan dengan menggunakan konstruksi dalam tumpukan Anda harus mendukung Wilayah yang Anda gunakan. Untuk daftar yang didukung Layanan AWS per wilayah, lihat AWS Layanan menurut Wilayah
Anda harus memiliki kredensyal valid AWS Identity and Access Management (IAM) untuk melakukan penerapan tumpukan dengan AWS CDK ke dalam lingkungan yang Anda tentukan.
Contoh
Mensintesis template agnostik lingkungan dari tumpukan CloudFormation CDK
Dalam contoh ini, kami membuat template agnostik lingkungan dari CloudFormation tumpukan kami. CDK Kami kemudian dapat menyebarkan template ini ke lingkungan apa pun.
Berikut ini adalah contoh CDK tumpukan kami. Tumpukan ini mendefinisikan bucket Amazon S3 dan output CloudFormation tumpukan untuk Wilayah bucket. Untuk contoh ini, tidak env
didefinisikan:
Ketika kita berlaricdk synth
, CDK CLI menghasilkan CloudFormation template dengan parameter semu AWS::Region
sebagai nilai output untuk Wilayah bucket. Parameter ini akan diselesaikan saat penerapan:
Outputs: BucketRegion: Value: Ref: AWS::Region
Untuk menyebarkan tumpukan ini ke lingkungan yang ditentukan dalam dev
profil kredensyal dan file konfigurasi kami, kami menjalankan yang berikut ini:
$
cdk deploy CdkAppStack --profile dev
Jika kami tidak menentukan profil, CDK CLI akan mencoba menggunakan informasi lingkungan dari default
profil di kredensi dan file konfigurasi kami.
Gunakan logika untuk menentukan informasi lingkungan pada sintesis template
Dalam contoh ini, kita mengkonfigurasi env
properti stack
instance kita untuk menggunakan ekspresi yang valid. Kami menentukan dua variabel lingkungan tambahan, CDK_DEPLOY_ACCOUNT
danCDK_DEPLOY_REGION
. Variabel lingkungan ini dapat mengesampingkan default pada waktu sintesis jika ada:
Dengan lingkungan tumpukan kami dideklarasikan dengan cara ini, kami kemudian dapat menulis skrip pendek atau file batch dan mengatur variabel dari argumen baris perintah, lalu memanggilcdk deploy
. Berikut adalah contohnya. Argumen apa pun di luar dua yang pertama diteruskan cdk deploy
untuk menentukan opsi atau argumen baris perintah:
Kami kemudian dapat menulis skrip tambahan yang menggunakan cdk-deploy-to
skrip untuk menyebarkan ke lingkungan tertentu. Berikut adalah contohnya:
Berikut ini adalah contoh yang menggunakan cdk-deploy-to
skrip untuk menyebarkan ke beberapa lingkungan. Jika penerapan pertama gagal, proses berhenti: