

Ceci est le guide du développeur du AWS CDK v2. L'ancien CDK v1 est entré en maintenance le 1er juin 2022 et a pris fin le 1er juin 2023.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configurer les rapports sur les données d'utilisation de la bibliothèque AWS CDK
<a name="usage-data"></a>

## En quoi consistent les rapports sur les données d'utilisation de la bibliothèque CDK ?
<a name="usage-data-intro"></a>

 AWS Les applications Cloud Development Kit (AWS CDK) sont configurées pour collecter et générer des rapports sur les données d'utilisation afin de mieux comprendre comment le AWS CDK est utilisé. L'équipe CDK utilise ces données pour effectuer les opérations suivantes :
+  **Communiquez avec les clients** : identifiez les piles à l'aide d'une structure présentant des problèmes de sécurité ou de fiabilité connus et envoyez des communications sur des sujets ayant un impact sur les clients.
+  **Informez le développement des CDK** : obtenez un aperçu de l'utilisation des CDK pour mieux éclairer le développement des CDK.
+  **Étudier les problèmes liés au CDK** — Lorsque des bogues sont signalés, les données d'utilisation fournissent des informations précieuses à l'équipe du CDK lors du dépannage.

## Quelles sont les données d'utilisation collectées ?
<a name="usage-data-categories"></a>

Il existe deux catégories de données d'utilisation des applications collectées par le CDK :
+ Données d'utilisation générales
+ Données d'utilisation supplémentaires

### Collecte de données d'utilisation générales
<a name="usage-data-categories-general"></a>

Le CDK collecte les types de données d'utilisation générales suivants à partir de vos applications CDK :
+ Versions des bibliothèques CDK utilisées.
+ Noms des constructions utilisées à partir des `NPM` modules suivants :
  +  AWS Modules principaux CDK
  +  AWS Construire des modules de bibliothèque
  +  AWS Module Solutions Constructs
  +  AWS Module du kit de déploiement de Render Farm

**Note**  
Avant la version 1.93.0, le AWS CDK signalait les noms et les versions des modules chargés lors de la synthèse, au lieu des constructions utilisées dans la pile.

### Collecte de données d'utilisation supplémentaires
<a name="usage-data-categories-additional"></a>

À partir de la version 2.178.0 du CDK, la collecte de données d'utilisation s'est étendue pour inclure les données d'utilisation supplémentaires suivantes :
+  **Clés de propriété définies par le CDK —** Lorsque vous utilisez une propriété intégrée d'une construction L2, la clé de propriété est collectée. Cela inclut les clés de propriété intégrées imbriquées dans les objets du dictionnaire.
+  **Valeurs de propriétés booléennes et enum issues des clés de propriété définies par le CDK — Pour les clés de propriété définies par** le CDK, les valeurs de propriété des types booléen et enum uniquement seront collectées. Tous les autres types, tels que les valeurs de chaîne ou les références de construction, seront supprimés.
+  **Nom de méthode, clés et valeurs de propriété de types booléen et enum** — Lorsque vous utilisez une méthode de construction L2, nous collectons le nom de la méthode, les clés de propriété et les valeurs de propriété des types booléen et enum.

Pour les clés de propriété et les valeurs que vous créez de manière unique, l'objet entier sera expurgé. Par exemple, si vous définissez ` [InlineApiDefinition](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.InlineApiDefinition.html) ` une OpenAPI spécification et que vous la transmettez dans une ` [RestApi](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.RestApi.html) ` construction, l'`InlineApiDefinition`objet entier sera expurgé.

Pour plus d'informations sur la collecte de données d'utilisation supplémentaires, y compris ses avantages et ses problèmes potentiels, consultez la discussion sur le [CDK Collecting Additional Metadata (under feature flag) \$133198](https://github.com/aws/aws-cdk/discussions/33198) dans le référentiel *aws-cdk*.

## Comment le CDK collecte les données d'utilisation des applications
<a name="usage-data-how"></a>

Lors de la synthèse, le CDK collecte les données d'utilisation de votre application et les stocke dans la ` AWS::CDK::Metadata` ressource. Voici un exemple de cela sur un AWS CloudFormation modèle synthétisé :

```
CDKMetadata:
  Type: "AWS::CDK::Metadata"
  Properties:
    Analytics: "v2:deflate64:H4sIAND9SGAAAzXKSw5AMBAA0L1b2PdzBYnEAdio3RglglY60zQi7u6TWL/XKmNUlxeQSOKwaPTBqrNhwEWU3hGHiCzK0dWWfAxoL/Fd8mvk+QkS/0X6BdjnCdgmOOQKWz+AqqLDt2Y3YMnLYWwAAAA="
```

La `Analytics` propriété est une liste gzippée, codée en base64 et codée par préfixe des constructions de la pile.

## Comment refuser ou accepter de recevoir des rapports sur les données d'utilisation
<a name="usage-data-configure"></a>

Les options qui vous permettent de vous désinscrire ou d'accepter les rapports généraux sur les données d'utilisation et les rapports supplémentaires sur les données d'utilisation dépendent de la version du CDK que vous avez utilisée pour créer votre application à l'origine.

Par défaut, les applications CDK sont configurées pour accepter automatiquement les rapports sur les données d'utilisation comme suit :
+  **Toutes les applications CDK** — J'ai opté pour les rapports généraux sur les données d'utilisation.
+  **Applications CDK créées avec une version antérieure à la version 2.178.0** : les rapports de données d'utilisation supplémentaires ne sont pas automatiquement activés.
+  **Applications CDK créées avec la version 2.178.0 ou une version ultérieure** : vous avez opté pour des rapports de données d'utilisation supplémentaires.

**Avertissement**  
Si vous choisissez de vous désinscrire, le CDK ne sera pas en mesure d'identifier si vous avez été concerné par des problèmes de sécurité et ne vous enverra pas de notifications à ce sujet.

### Désactiver tous les rapports de données d'utilisation
<a name="usage-data-configure-optout-all"></a>

Pour désactiver tous les rapports de données d'utilisation, vous pouvez utiliser l'interface de ligne de commande (CLI) du AWS Cloud Development Kit (AWS CDK) ou configurer le `cdk.json` fichier de votre projet.

 **Pour désactiver tous les rapports de données d'utilisation à l'aide de la CLI CDK**   
+ Utilisez `--no-version-reporting` cette option avec n'importe quelle commande CDK CLI pour désactiver une seule commande. Voici un exemple de désinscription lors de la synthèse du modèle :

  ```
  $ cdk synth --no-version-reporting
  ```

  Étant donné que le CDK synthétise automatiquement les modèles lorsque vous l'exécutez`cdk deploy`, vous devez également les utiliser `--no-version-reporting` avec la `cdk deploy` commande.

 **Pour désactiver tous les rapports de données d'utilisation en configurant le fichier cdk.json**   

1. `versionReporting`Réglez sur `false` in `./cdk.json` ou`~/.cdk.json`. Cela vous désactive par défaut. Voici un exemple :

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

1. Après la configuration, vous pouvez annuler ce comportement et l'activer en `--version-reporting` spécifiant une commande individuelle.

### Désactiver uniquement les rapports de données d'utilisation supplémentaires
<a name="usage-data-configure-optout-additiona"></a>

Si votre application CDK a été créée avec une version du CDK antérieure à la version 2.178.0, vous êtes automatiquement désabonné des rapports de données d'utilisation supplémentaires, même si vous êtes abonné aux rapports généraux sur les données d'utilisation. Vous n'avez rien à faire pour refuser de recevoir des rapports supplémentaires sur les données d'utilisation.

Si votre application CDK a été créée avec la version CDK 2.178.0 ou plus récente, vous devez désactiver tous les rapports de données d'utilisation. Vous ne pouvez pas refuser uniquement les rapports de données d'utilisation supplémentaires.

### Accepter les rapports sur les données d'utilisation
<a name="usage-data-configure-optin"></a>

Si votre application CDK a été créée avec la version CDK 2.178.0 ou plus récente, vous pouvez choisir de recevoir tous les rapports de données d'utilisation en réglant sur. `versionReporting` `true` Il s'agit du comportement par défaut des applications CDK.

Si votre application CDK a été créée avec une version du CDK antérieure à la version 2.178.0, vous pouvez choisir de recevoir des rapports généraux sur les données d'utilisation en réglant sur. `versionReporting` `true` Pour accepter des rapports supplémentaires sur les données d'utilisation, vous devez activer un indicateur de fonctionnalité.

**Note**  
Ces étapes concernent les applications CDK créées à l'origine avec une version antérieure à 2.178.0

1. Vérifiez que vous utilisez désormais la version 2.178.0 ou ultérieure du CDK.

1. Dans votre fichier de configuration CDK, spécifiez `@aws-cdk/core:enableAdditionalMetadataCollection` comme`true`. Voici un exemple :

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

1. Vous pouvez également utiliser la `ENABLE_ADDITIONAL_METADATA_COLLECTION` valeur avec la ` [FeatureFlags](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.FeatureFlags.html) ` classe. Voici un exemple :

   ```
   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');
   ```

## Exemples
<a name="usage-data-examples"></a>

### Données d'utilisation générales et supplémentaires collectées à partir d'une application CDK
<a name="usage-data-examples-example1"></a>

Voici un exemple d'application 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();
```

Lors de la synthèse, les données d'utilisation sont collectées, compressées et stockées dans la ` AWS::CDK::Metadata` ressource.

Voici un exemple de données d'utilisation générales collectées avec une version du CDK antérieure à la version 2.178.0 :

```
{
    "fqn": "aws-cdk-lib.aws-s3.Bucket",
    "version": "v2.170.0"
}
```

Voici un exemple de données d'utilisation collectées, y compris les données d'utilisation supplémentaires introduites dans la version 2.178.0 du CDK :

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