Questa è la guida per sviluppatori AWS CDK v2. Il vecchio CDK v1 è entrato in manutenzione il 1° giugno 2022 e ha terminato il supporto il 1° giugno 2023.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Cos'è il reporting dei dati di utilizzo di CDK?
AWS Cloud Development Kit (AWS CDK) le applicazioni sono configurate per raccogliere e generare report sui dati di utilizzo per ottenere informazioni dettagliate su come AWS CDK vengono utilizzati. Il team CDK utilizza questi dati per effettuare le seguenti operazioni:
-
Comunica con i clienti: identifica gli stack utilizzando un costrutto con problemi noti di sicurezza o affidabilità e invia comunicazioni su argomenti che hanno un impatto sui clienti.
-
Informate lo sviluppo di CDK: acquisite informazioni sull'utilizzo di CDK per orientare meglio lo sviluppo di CDK.
-
Esamina i problemi relativi al CDK: quando vengono segnalati bug, i dati di utilizzo forniscono informazioni preziose al team CDK per la risoluzione dei problemi.
Quali dati di utilizzo vengono raccolti?
Esistono due categorie di dati di utilizzo raccolti dal CDK:
-
Dati generali di utilizzo
-
Dati di utilizzo aggiuntivi
Raccolta di dati di utilizzo generali
Il CDK raccoglie i seguenti tipi di dati di utilizzo generali dalle applicazioni CDK:
-
Versioni delle librerie CDK utilizzate.
-
Nomi dei costrutti utilizzati dai seguenti moduli:
NPM
-
AWS CDK moduli principali
-
AWS Moduli Construct Library
-
AWS Modulo Solutions Constructs
-
AWS Modulo Render Farm Deployment Kit
-
Nota
Prima della versione 1.93.0, AWS CDK riportavano i nomi e le versioni dei moduli caricati durante la sintesi, anziché i costrutti utilizzati nello stack.
Raccolta aggiuntiva di dati di utilizzo
A partire dalla versione CDK 2.178.0, la raccolta dei dati di utilizzo è stata ampliata per includere i seguenti dati di utilizzo aggiuntivi:
-
Chiavi di proprietà definite da CDK: quando si utilizza una proprietà integrata di un costrutto L2, viene raccolta la chiave di proprietà. Ciò include le chiavi di proprietà integrate annidate negli oggetti del dizionario.
-
Valori delle proprietà booleane ed enum ricavati dalle chiavi di proprietà definite da CDK — Per le chiavi di proprietà definite da CDK, verranno raccolti i valori delle proprietà solo dei tipi booleani ed enum. Tutti gli altri tipi, come i valori di stringa o i riferimenti ai costrutti, verranno oscurati.
-
Nome del metodo, chiavi e valori delle proprietà dei tipi booleano ed enum: quando utilizzi un metodo di costruzione L2, raccoglieremo il nome del metodo, le chiavi di proprietà e i valori delle proprietà dei tipi booleano ed enum.
Per le chiavi di proprietà e i valori creati in modo univoco, l'intero oggetto verrà oscurato. Ad esempio, se si utilizza InlineApiDefinition
per definire un OpenAPI specificazione e la si passa a un RestApi
costrutto, l'intero InlineApiDefinition
oggetto verrà oscurato.
Per ulteriori informazioni sulla raccolta di dati di utilizzo aggiuntivi, compresi i vantaggi e i potenziali problemi, consulta la discussione CDK Collecting Additional Metadata (sotto il flag di funzionalità) #33198
In che modo il CDK raccoglie i dati di utilizzo
In sintesi, il CDK raccoglie i dati di utilizzo dall'applicazione e li archivia all'interno della risorsa. AWS::CDK::Metadata
Di seguito è riportato un esempio di ciò su un modello sintetizzato AWS CloudFormation :
CDKMetadata:
Type: "AWS::CDK::Metadata"
Properties:
Analytics: "v2:deflate64:H4sIAND9SGAAAzXKSw5AMBAA0L1b2PdzBYnEAdio3RglglY60zQi7u6TWL/XKmNUlxeQSOKwaPTBqrNhwEWU3hGHiCzK0dWWfAxoL/Fd8mvk+QkS/0X6BdjnCdgmOOQKWz+AqqLDt2Y3YMnLYWwAAAA="
La Analytics
proprietà è un elenco con gzip, codificato in base64 e con prefisso, dei costrutti nello stack.
Come disattivare o attivare la segnalazione dei dati di utilizzo
Le opzioni di disattivazione o attivazione dei report generali sui dati di utilizzo e dei report aggiuntivi sui dati di utilizzo dipendono dalla versione CDK utilizzata originariamente per creare l'app.
Per impostazione predefinita, le applicazioni CDK sono configurate per attivare automaticamente la segnalazione dei dati di utilizzo come segue:
-
Tutte le app CDK: è stata attivata la segnalazione generale dei dati di utilizzo.
-
App CDK create con una versione precedente alla v2.178.0: non hanno attivato automaticamente la segnalazione aggiuntiva dei dati di utilizzo.
-
App CDK create con la versione 2.178.0 o successiva: hanno attivato la segnalazione aggiuntiva dei dati di utilizzo.
avvertimento
Se scegli di rinunciare, il CDK non sarà in grado di identificare se hai subito problemi di sicurezza e non ti invierà notifiche in merito.
Disattiva tutti i report sui dati di utilizzo
Per disattivare tutti i report sui dati di utilizzo, puoi utilizzare l'interfaccia a riga di AWS Cloud Development Kit (AWS CDK) comando (CLI) o configura il cdk.json
file del tuo progetto.
Per disattivare la segnalazione di tutti i dati di utilizzo tramite il CDK CLI
-
Utilizza l'
--no-version-reporting
opzione con qualsiasi CDK CLI comando per disattivare un singolo comando. Di seguito è riportato un esempio di disattivazione durante la sintesi del modello:$
cdk synth --no-version-reporting
Poiché il CDK sintetizza automaticamente i modelli durante l'esecuzione
cdk deploy
, è consigliabile utilizzarli--no-version-reporting
anche con il comando.cdk deploy
Per disattivare la segnalazione di tutti i dati di utilizzo configurando il file cdk.json
-
Impostato
versionReporting
sufalse
in./cdk.json
o~/.cdk.json
. Questa opzione ti disattiva per impostazione predefinita. Di seguito è riportato un esempio:{ "app": "...", "versionReporting": false }
-
Dopo la configurazione, puoi ignorare questo comportamento e attivare l'opzione
--version-reporting
specificando un singolo comando.
Disattiva solo la segnalazione dei dati di utilizzo aggiuntivi
Se l'app CDK è stata creata con una versione CDK precedente alla 2.178.0, viene automaticamente disattivata la segnalazione aggiuntiva dei dati di utilizzo, anche se è stata attivata la segnalazione generale dei dati di utilizzo. Non devi fare nulla per disattivare la segnalazione aggiuntiva dei dati di utilizzo.
Se l'app CDK è stata creata con la versione CDK 2.178.0 o successiva, è necessario disattivare tutti i report sui dati di utilizzo. Non puoi disattivare solo la segnalazione aggiuntiva dei dati di utilizzo.
Attiva la segnalazione dei dati di utilizzo
Se la tua app CDK è stata creata con la versione CDK 2.178.0 o successiva, puoi attivare la segnalazione di tutti i dati di utilizzo impostando su. versionReporting
true
Questo è il comportamento predefinito delle app CDK.
Se la tua app CDK è stata creata con una versione CDK precedente alla 2.178.0, puoi attivare la segnalazione generale dei dati di utilizzo impostando su. versionReporting
true
Per attivare la segnalazione aggiuntiva dei dati di utilizzo, è necessario abilitare un flag di funzionalità.
Per attivare la segnalazione aggiuntiva dei dati di utilizzo
Nota
Questi passaggi si riferiscono alle app CDK create originariamente con una versione precedente alla 2.178.0
-
Verifica di utilizzare ora la versione CDK 2.178.0 o successiva.
-
Nel file di configurazione CDK, specificate come.
@aws-cdk/core:enableAdditionalMetadataCollection
true
Di seguito è riportato un esempio:{ "context": { "@aws-cdk/core:enableAdditionalMetadataCollection": "true" } }
-
Puoi anche usare il
ENABLE_ADDITIONAL_METADATA_COLLECTION
valore con laFeatureFlags
classe. Di seguito è riportato un esempio: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');
Esempi
Dati di utilizzo generali e aggiuntivi raccolti da un'applicazione CDK
Di seguito è riportato un esempio di app 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();
In sintesi, i dati di utilizzo vengono raccolti, compressi e archiviati nella AWS::CDK::Metadata
risorsa.
Di seguito è riportato un esempio di dati di utilizzo generali raccolti con una versione CDK precedente alla 2.178.0:
{
"fqn": "aws-cdk-lib.aws-s3.Bucket",
"version": "v2.170.0"
}
Di seguito è riportato un esempio di dati di utilizzo raccolti, inclusi i dati di utilizzo aggiuntivi introdotti nella versione CDK 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": "*",
}
}
}
]
}