

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.

# Konfigurasikan AWS pelaporan data penggunaan Perpustakaan CDK
<a name="usage-data"></a>

## Apa itu pelaporan data penggunaan perpustakaan CDK?
<a name="usage-data-intro"></a>

 AWS Aplikasi Cloud Development Kit (AWS CDK) 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?
<a name="usage-data-categories"></a>

Ada dua kategori data penggunaan aplikasi yang dikumpulkan oleh CDK:
+ Data penggunaan umum
+ Data penggunaan tambahan

### Pengumpulan data penggunaan umum
<a name="usage-data-categories-general"></a>

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 Modul inti CDK
  +  AWS Membangun modul Perpustakaan
  +  AWS Modul Konstruksi Solusi
  +  AWS Modul Kit Penyebaran Pertanian Render

**catatan**  
Sebelum versi 1.93.0, AWS CDK melaporkan nama dan versi modul yang dimuat selama sintesis, bukan konstruksi yang digunakan dalam tumpukan.

### Pengumpulan data penggunaan tambahan
<a name="usage-data-categories-additional"></a>

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](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.InlineApiDefinition.html) ` untuk menentukan OpenAPI spesifikasi dan meneruskannya ke dalam ` [RestApi](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.RestApi.html) ` 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) \$133198](https://github.com/aws/aws-cdk/discussions/33198) di repositori aws-cdk.*

## Bagaimana CDK mengumpulkan data penggunaan aplikasi
<a name="usage-data-how"></a>

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
<a name="usage-data-configure"></a>

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
<a name="usage-data-configure-optout-all"></a>

Untuk memilih keluar dari semua pelaporan data penggunaan, Anda dapat menggunakan AWS Cloud Development Kit (AWS CDK) Command Line Interface (CLI) atau mengonfigurasi file project `cdk.json` Anda.

 **Untuk memilih keluar dari semua pelaporan data penggunaan menggunakan CDK CLI**   
+ Gunakan `--no-version-reporting` opsi dengan perintah CDK CLI apa pun untuk memilih keluar dari 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**   

1. Setel `versionReporting` ke `false` dalam `./cdk.json` atau`~/.cdk.json`. Ini memilih Anda keluar secara default. Berikut ini adalah contohnya:

   ```
   {
     "app": "...",
     "versionReporting": false
   }
   ```

1. Setelah mengonfigurasi, Anda dapat mengganti perilaku ini dan ikut serta dengan menentukan perintah `--version-reporting` individual.

### Menyisih dari hanya pelaporan data penggunaan tambahan
<a name="usage-data-configure-optout-additiona"></a>

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
<a name="usage-data-configure-optin"></a>

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.

**catatan**  
Langkah-langkah ini untuk aplikasi CDK yang awalnya dibuat dengan versi yang lebih lama dari 2.178.0

1. Verifikasi bahwa Anda sekarang menggunakan CDK versi 2.178.0 atau yang lebih baru.

1. Dalam file konfigurasi CDK Anda, tentukan `@aws-cdk/core:enableAdditionalMetadataCollection` sebagai`true`. Berikut ini adalah contohnya:

   ```
   {
     "context": {
       "@aws-cdk/core:enableAdditionalMetadataCollection": "true"
     }
   }
   ```

1. Anda juga dapat menggunakan `ENABLE_ADDITIONAL_METADATA_COLLECTION` nilai dengan ` [FeatureFlags](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.FeatureFlags.html) ` kelas. Berikut ini 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
<a name="usage-data-examples"></a>

### Data penggunaan umum dan tambahan yang dikumpulkan dari aplikasi CDK
<a name="usage-data-examples-example1"></a>

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": "*",
                }
            }
        }
    ]
}
```