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.
Apa itu pelaporan data penggunaan CDK?
AWS Cloud Development Kit (AWS CDK) aplikasi dikonfigurasi untuk mengumpulkan dan melaporkan data penggunaan untuk mendapatkan wawasan tentang bagaimana AWS CDK digunakan. Tim CDK menggunakan data ini untuk melakukan hal berikut:
-
Berkomunikasi dengan pelanggan — Identifikasi tumpukan menggunakan konstruksi dengan masalah keamanan atau keandalan yang diketahui dan kirimkan komunikasi tentang topik yang memengaruhi pelanggan.
-
Menginformasikan pengembangan CDK — Dapatkan wawasan tentang penggunaan CDK untuk menginformasikan pengembangan CDK dengan lebih baik.
-
Selidiki masalah CDK — Saat bug dilaporkan, data penggunaan memberikan wawasan berharga kepada tim CDK saat pemecahan masalah.
Data penggunaan apa yang dikumpulkan?
Ada dua kategori data penggunaan yang dikumpulkan oleh CDK:
-
Data penggunaan umum
-
Data penggunaan tambahan
Pengumpulan data penggunaan umum
CDK mengumpulkan jenis data penggunaan umum berikut dari aplikasi CDK Anda:
-
Versi perpustakaan CDK yang digunakan.
-
Nama konstruksi yang digunakan dari
NPM
modul berikut:-
AWS CDK modul inti
-
AWS Membangun modul Perpustakaan
-
AWS Modul Konstruksi Solusi
-
AWS Modul Kit Penyebaran Pertanian Render
-
catatan
Sebelum versi 1.93.0, AWS CDK dilaporkan nama dan versi modul dimuat selama sintesis, bukan konstruksi yang digunakan dalam tumpukan.
Pengumpulan data penggunaan tambahan
Dimulai dengan CDK versi 2.178.0, pengumpulan data penggunaan diperluas untuk menyertakan data penggunaan tambahan berikut:
-
Kunci properti yang ditentukan Cdk - Saat Anda menggunakan properti bawaan dari konstruksi L2, kunci properti akan dikumpulkan. Ini termasuk kunci properti bawaan yang bersarang di objek kamus.
-
Nilai properti Boolean dan enum dari kunci properti yang ditentukan Cdk - Untuk kunci properti yang ditentukan Cdk, nilai properti hanya tipe Boolean dan enum akan dikumpulkan. Semua tipe lainnya, seperti nilai string atau referensi konstruksi akan disunting.
-
Nama metode, kunci, dan nilai properti tipe Boolean dan enum - Saat Anda menggunakan metode konstruksi L2, kami akan mengumpulkan nama metode, kunci properti, dan nilai properti tipe Boolean dan enum.
Untuk kunci properti dan nilai yang Anda buat secara unik, seluruh objek akan disunting. Misalnya, jika Anda menggunakan InlineApiDefinition
untuk mendefinisikan OpenAPI spesifikasi dan meneruskannya ke dalam RestApi
konstruksi, seluruh InlineApiDefinition
objek akan disunting.
Untuk informasi lebih lanjut tentang pengumpulan data penggunaan tambahan, termasuk manfaat dan potensi masalahnya, lihat diskusi CDK Collecting Addata Tambahan (di bawah tanda fitur) #33198
Bagaimana CDK mengumpulkan data penggunaan
Pada sintesis, CDK mengumpulkan data penggunaan dari aplikasi Anda dan menyimpannya di dalam sumber daya. AWS::CDK::Metadata
Berikut ini adalah contoh dari ini pada AWS CloudFormation template yang disintesis:
CDKMetadata:
Type: "AWS::CDK::Metadata"
Properties:
Analytics: "v2:deflate64:H4sIAND9SGAAAzXKSw5AMBAA0L1b2PdzBYnEAdio3RglglY60zQi7u6TWL/XKmNUlxeQSOKwaPTBqrNhwEWU3hGHiCzK0dWWfAxoL/Fd8mvk+QkS/0X6BdjnCdgmOOQKWz+AqqLDt2Y3YMnLYWwAAAA="
Analytics
Properti ini adalah daftar konstruksi yang di-gzip, dikodekan base64, dan dikodekan awalan di tumpukan.
Cara memilih keluar atau ikut serta dalam pelaporan data penggunaan
Opsi Anda untuk memilih keluar atau ikut serta dalam pelaporan data penggunaan umum dan pelaporan data penggunaan tambahan bergantung pada versi CDK yang Anda gunakan untuk membuat aplikasi Anda pada awalnya.
Secara default, aplikasi CDK dikonfigurasi untuk secara otomatis ikut serta dalam pelaporan data penggunaan sebagai berikut:
-
Semua aplikasi CDK — Memilih untuk pelaporan data penggunaan umum.
-
Aplikasi CDK yang dibuat dengan versi yang lebih lama dari v2.178.0 — Tidak secara otomatis memilih pelaporan data penggunaan tambahan.
-
Aplikasi CDK yang dibuat dengan v2.178.0 atau yang lebih baru — Memilih pelaporan data penggunaan tambahan.
Awas
Jika Anda memilih untuk tidak ikut serta, CDK tidak akan dapat mengidentifikasi apakah Anda terkena dampak masalah keamanan dan tidak akan mengirimi Anda pemberitahuan untuk mereka.
Menyisih dari semua pelaporan data penggunaan
Untuk memilih keluar dari semua pelaporan data penggunaan, Anda dapat menggunakan Antarmuka Baris AWS Cloud Development Kit (AWS CDK) Perintah (CLI) atau konfigurasikan cdk.json
file proyek Anda.
Untuk memilih keluar dari semua pelaporan data penggunaan menggunakan CDK CLI
-
Gunakan
--no-version-reporting
opsi dengan CDK apa pun CLI perintah untuk memilih keluar untuk satu perintah. Berikut ini adalah contoh memilih keluar selama sintesis template:$
cdk synth --no-version-reporting
Karena CDK mensintesis template secara otomatis saat Anda menjalankan
cdk deploy
, Anda juga harus menggunakan--no-version-reporting
dengan perintah.cdk deploy
Untuk memilih keluar dari semua pelaporan data penggunaan dengan mengonfigurasi file cdk.json
-
Setel
versionReporting
kefalse
dalam./cdk.json
atau~/.cdk.json
. Ini memilih Anda keluar secara default. Berikut adalah contohnya:{ "app": "...", "versionReporting": false }
-
Setelah mengonfigurasi, Anda dapat mengganti perilaku ini dan ikut serta dengan menentukan perintah
--version-reporting
individual.
Menyisih dari hanya pelaporan data penggunaan tambahan
Jika aplikasi CDK Anda dibuat dengan versi CDK yang lebih lama dari 2.178.0, Anda secara otomatis memilih keluar dari pelaporan data penggunaan tambahan, bahkan jika Anda memilih untuk melakukan pelaporan data penggunaan umum. Anda tidak perlu melakukan apa pun untuk memilih keluar dari pelaporan data penggunaan tambahan.
Jika aplikasi CDK Anda dibuat dengan CDK versi 2.178.0 atau yang lebih baru, Anda harus memilih keluar dari semua pelaporan data penggunaan. Anda tidak dapat memilih keluar dari pelaporan data penggunaan tambahan saja.
Ikut serta dalam pelaporan data penggunaan
Jika aplikasi CDK Anda dibuat dengan CDK versi 2.178.0 atau yang lebih baru, Anda dapat ikut serta dalam semua pelaporan data penggunaan dengan menyetelnya. versionReporting
true
Ini adalah perilaku default aplikasi CDK.
Jika aplikasi CDK Anda dibuat dengan versi CDK yang lebih lama dari 2.178.0, Anda dapat ikut serta dalam pelaporan data penggunaan umum dengan menyetelnya. versionReporting
true
Untuk ikut serta dalam pelaporan data penggunaan tambahan, Anda harus mengaktifkan tanda fitur.
Untuk ikut serta dalam pelaporan data penggunaan tambahan
catatan
Langkah-langkah ini untuk aplikasi CDK yang awalnya dibuat dengan versi yang lebih lama dari 2.178.0
-
Verifikasi bahwa Anda sekarang menggunakan CDK versi 2.178.0 atau yang lebih baru.
-
Dalam file konfigurasi CDK Anda, tentukan
@aws-cdk/core:enableAdditionalMetadataCollection
sebagaitrue
. Berikut adalah contohnya:{ "context": { "@aws-cdk/core:enableAdditionalMetadataCollection": "true" } }
-
Anda juga dapat menggunakan
ENABLE_ADDITIONAL_METADATA_COLLECTION
nilai denganFeatureFlags
kelas. Berikut adalah contohnya:import * as cdk from 'aws-cdk-lib'; import { FeatureFlags } from 'aws-cdk-lib'; import * as cx_api from 'aws-cdk-lib/cx-api'; import { Construct } from 'constructs'; export class MyStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Set the feature flag ENABLE_ADDITIONAL_METADATA_COLLECTION to true FeatureFlags.of(this).add(cx_api.ENABLE_ADDITIONAL_METADATA_COLLECTION, true); // Your stack resources go here new cdk.aws_s3.Bucket(this, 'MyBucket'); } } const app = new cdk.App(); new MyStack(app, 'MyStack');
Contoh
Data penggunaan umum dan tambahan yang dikumpulkan dari aplikasi CDK
Berikut ini adalah contoh aplikasi CDK:
import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as s3 from 'aws-cdk-lib/aws-s3';
class MyStack extends cdk.Stack {
constructor(scope, id, props) {
super(scope, id, props);
// Create an S3 bucket (L2 construct)
const myBucket = new s3.Bucket(this, 'MyBucket', {
bucketName: 'my-cdk-example-bucket', // String type
versioned: true, // Boolean type
removalPolicy: cdk.RemovalPolicy.DESTROY, // ENUM type
lifecycleRules: [{ // Array of object type
expirationDate: new Date('2019-10-01'),
objectSizeLessThan: 600,
objectSizeGreaterThan: 500,
}],
});
// Use a method of the L2 construct to define additional properties
myBucket.addLifecycleRule({
id: 'ExpireOldObjects',
enabled: true, // Boolean
expiration: cdk.Duration.days(90), // Expire objects after 90 days
});
}
}
// Define the CDK app and stack
const app = new cdk.App();
new MyStack(app, 'MyStack');
app.synth();
Pada sintesis, data penggunaan dikumpulkan, dikompresi, dan disimpan dalam AWS::CDK::Metadata
sumber daya.
Berikut ini adalah contoh data penggunaan umum yang dikumpulkan dengan versi CDK yang lebih lama dari 2.178.0:
{
"fqn": "aws-cdk-lib.aws-s3.Bucket",
"version": "v2.170.0"
}
Berikut ini adalah contoh data penggunaan yang dikumpulkan, termasuk data penggunaan tambahan yang diperkenalkan dalam CDK versi 2.178.0:
{
"fqn": "aws-cdk-lib.aws_s3.Bucket",
"version": "2.170.0",
"metadata": [
{
"type": "aws:cdk:analytics:construct",
"data": {
"bucketName": "*",
"versioned": true,
"removalPolicy": "cdk.RemovalPolicy.DESTROY",
"lifecycleRules": [
{
"expirationDate": "*",
"objectSizeLessThan": "*",
"objectSizeGreaterThan": "*"
}
]
}
},
{
"type": "aws:cdk:analytics:method",
"data": {
"name": "addLifecycleRule",
"prop": {
"id": "*",
"enabled": true,
"expiration": "*",
}
}
}
]
}