Ceci est le guide du AWS CDK développeur de la version 2. 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.
Qu'est-ce que le reporting des données d'utilisation du CDK ?
AWS Cloud Development Kit (AWS CDK) les applications sont configurées pour collecter et générer des rapports sur les données d'utilisation afin de mieux comprendre comment elles AWS CDK sont utilisées. 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 ?
Il existe deux catégories de données d'utilisation 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
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 CDK modules de base
-
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, ils AWS CDK indiquaient 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
À 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 utilisez InlineApiDefinition
pour définir un OpenAPI spécification et transmettez-la dans une RestApi
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) #33198
Comment le CDK collecte les données d'utilisation
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 les rapports sur les données d'utilisation
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
Pour désactiver tous les rapports de données d'utilisation, vous pouvez utiliser l'interface de ligne de AWS Cloud Development Kit (AWS CDK) commande (CLI) ou configurez le cdk.json
fichier de votre projet.
Pour désactiver tous les rapports de données d'utilisation à l'aide du CDK CLI
-
Utilisez l'
--no-version-reporting
option avec n'importe quel CDK CLI commande permettant de ne pas recevoir 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 lacdk deploy
commande.
Pour désactiver tous les rapports de données d'utilisation en configurant le cdk.json
fichier
-
versionReporting
Réglez surfalse
in./cdk.json
ou~/.cdk.json
. Cela vous désactive par défaut. Voici un exemple :{ "app": "...", "versionReporting": false }
-
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
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
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é.
Pour accepter de recevoir des rapports supplémentaires sur les données d'utilisation
Note
Ces étapes concernent les applications CDK créées à l'origine avec une version antérieure à 2.178.0
-
Vérifiez que vous utilisez désormais la version 2.178.0 ou ultérieure du CDK.
-
Dans votre fichier de configuration CDK, spécifiez
@aws-cdk/core:enableAdditionalMetadataCollection
commetrue
. Voici un exemple :{ "context": { "@aws-cdk/core:enableAdditionalMetadataCollection": "true" } }
-
Vous pouvez également utiliser la
ENABLE_ADDITIONAL_METADATA_COLLECTION
valeur avec laFeatureFlags
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
Données d'utilisation générales et supplémentaires collectées à partir d'une application CDK
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": "*",
}
}
}
]
}