Esta es la guía para AWS CDK desarrolladores de la versión 2. La primera versión del CDK pasó a la etapa de mantenimiento el 1.° de junio de 2022 y no cuenta con soporte desde el 1.° de junio de 2023.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
¿Qué son los informes de datos de uso de CDK?
AWS Cloud Development Kit (AWS CDK) las aplicaciones están configuradas para recopilar e informar sobre los datos de uso a fin de obtener información sobre cómo AWS CDK se utilizan. El equipo de CDK utiliza estos datos para hacer lo siguiente:
-
Comuníquese con los clientes: identifique las pilas utilizando una estructura con problemas conocidos de seguridad o confiabilidad y envíe comunicaciones sobre temas que afecten a los clientes.
-
Informe sobre el desarrollo de las CDK: obtenga información sobre el uso de las CDK para informar mejor sobre el desarrollo de las CDK.
-
Investigue los problemas relacionados con las CDK: cuando se notifican errores, los datos de uso proporcionan información valiosa al equipo de CDK a la hora de solucionar problemas.
¿Qué datos de uso se recopilan?
La CDK recopila dos categorías de datos de uso:
-
Datos de uso general
-
Datos de uso adicionales
Recopilación de datos de uso general
La CDK recopila los siguientes tipos de datos de uso general de sus aplicaciones de CDK:
-
Versiones de las bibliotecas de CDK utilizadas.
-
Nombres de las construcciones utilizadas en los siguientes módulos:
NPM
-
AWS CDK módulos principales
-
AWS Construya módulos de biblioteca
-
AWS Módulo Solutions Constructs
-
AWS Módulo del kit de implementación de Render Farm
-
nota
Antes de la versión 1.93.0, AWS CDK indicaba los nombres y las versiones de los módulos cargados durante la síntesis, en lugar de las construcciones utilizadas en la pila.
Recopilación de datos de uso adicionales
A partir de la versión 2.178.0 de CDK, la recopilación de datos de uso se amplió para incluir los siguientes datos de uso adicionales:
-
Claves de propiedad definidas por CDK: cuando se utiliza una propiedad integrada de una construcción L2, se recopilará la clave de propiedad. Esto incluye las claves de propiedad integradas anidadas en los objetos del diccionario.
-
Valores de propiedades booleanas y de enumeración de las claves de propiedad definidas por CDK: en el caso de las claves de propiedad definidas por CDK, solo se recopilarán los valores de propiedad de los tipos booleano y enumerativo. Todos los demás tipos, como los valores de cadena o las referencias a construcciones, se redactarán.
-
Nombre del método, claves y valores de propiedad de los tipos booleano y enum: cuando utilice un método de construcción L2, recopilaremos el nombre del método, las claves de propiedad y los valores de propiedad de los tipos booleano y de enumeración.
En el caso de las claves de propiedad y los valores que cree de forma exclusiva, se redactará todo el objeto. Por ejemplo, si se utiliza InlineApiDefinition
para definir un OpenAPI una especificación y pasarla a una RestApi
construcción, se redactará todo el InlineApiDefinition
objeto.
Para obtener más información sobre la recopilación de datos de uso adicionales, incluidas sus ventajas y posibles problemas, consulte el debate #33198 sobre cómo recopilar metadatos adicionales (bajo la marca de características) sobre CDK
Cómo recopila el CDK los datos de uso
En síntesis, la CDK recopila los datos de uso de la aplicación y los almacena en el AWS::CDK::Metadata
recurso. El siguiente es un ejemplo de esto en una AWS CloudFormation plantilla sintetizada:
CDKMetadata:
Type: "AWS::CDK::Metadata"
Properties:
Analytics: "v2:deflate64:H4sIAND9SGAAAzXKSw5AMBAA0L1b2PdzBYnEAdio3RglglY60zQi7u6TWL/XKmNUlxeQSOKwaPTBqrNhwEWU3hGHiCzK0dWWfAxoL/Fd8mvk+QkS/0X6BdjnCdgmOOQKWz+AqqLDt2Y3YMnLYWwAAAA="
La propiedad Analytics
es una lista de los constructos de la pila comprimida con gzip, codificada en base64 y codificada con prefijos.
Cómo excluirse o aceptar la presentación de informes de datos de uso
Las opciones para optar por no participar en los informes de datos de uso generales y en los informes de datos de uso adicionales dependen de la versión de CDK que utilizaste para crear originalmente tu aplicación.
De forma predeterminada, las aplicaciones de CDK están configuradas para habilitar automáticamente los informes de datos de uso de la siguiente manera:
-
Todas las aplicaciones de CDK: optó por la presentación de informes de datos de uso general.
-
Aplicaciones CDK creadas con una versión anterior a la v2.178.0: no se habilitaron automáticamente para recibir informes de datos de uso adicionales.
-
Aplicaciones de CDK creadas con la versión 2.178.0 o posterior: se optó por la generación de informes de datos de uso adicionales.
aviso
Si optas por no participar, la CDK no podrá identificar si te has visto afectado por problemas de seguridad y no te enviará notificaciones al respecto.
Excluya todos los informes de datos de uso
Para excluirse de todos los informes de datos de uso, puede utilizar la interfaz de línea de AWS Cloud Development Kit (AWS CDK) comandos (CLI) o configurar el cdk.json
archivo de su proyecto.
Para excluirse de todos los informes de datos de uso mediante el CDK CLI
-
Utilice la
--no-version-reporting
opción con cualquier CDK CLI comando para excluirse de un solo comando. A continuación, se muestra un ejemplo de desactivación durante la síntesis de plantillas:$
cdk synth --no-version-reporting
Dado que el CDK sintetiza las plantillas automáticamente cuando se ejecuta
cdk deploy
, también debe utilizarlas--no-version-reporting
junto con elcdk deploy
comando.
Para excluirse de todos los informes de datos de uso mediante la configuración del archivo cdk.json
-
Configure
versionReporting
comofalse
en./cdk.json
o~/.cdk.json
. Esto lo desactiva de forma predeterminada. A continuación, se muestra un ejemplo:{ "app": "...", "versionReporting": false }
-
Después de la configuración, puede anular este comportamiento y activarlo especificando
--version-reporting
en un comando individual.
Excluya únicamente los informes de datos de uso adicionales
Si su aplicación de CDK se creó con una versión de CDK anterior a la 2.178.0, quedará automáticamente excluido de los informes de datos de uso adicionales, incluso si optó por los informes de datos de uso generales. No tienes que hacer nada para excluirte de los informes de datos de uso adicionales.
Si tu aplicación de CDK se creó con la versión 2.178.0 o posterior de CDK, debes excluirte de todos los informes de datos de uso. No puedes excluirte únicamente de los informes de datos de uso adicionales.
Opta por los informes de datos de uso
Si tu aplicación de CDK se creó con la versión 2.178.0 o posterior de CDK, puedes habilitar la generación de informes de todos los datos de uso configurándola en. versionReporting
true
Este es el comportamiento predeterminado de las aplicaciones CDK.
Si tu aplicación de CDK se creó con una versión de CDK anterior a la 2.178.0, puedes optar por la generación de informes de datos de uso general configurándola en. versionReporting
true
Para optar por recibir informes de datos de uso adicionales, debes habilitar una marca de función.
Para optar por recibir informes de datos de uso adicionales
nota
Estos pasos son para las aplicaciones de CDK creadas originalmente con una versión anterior a la 2.178.0
-
Compruebe que ahora está utilizando la versión 2.178.0 o posterior del CDK.
-
En el archivo de configuración de la CDK, especifique como.
@aws-cdk/core:enableAdditionalMetadataCollection
true
A continuación, se muestra un ejemplo:{ "context": { "@aws-cdk/core:enableAdditionalMetadataCollection": "true" } }
-
También puede usar el
ENABLE_ADDITIONAL_METADATA_COLLECTION
valor con laFeatureFlags
clase. A continuación, se muestra un ejemplo: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');
Ejemplos
Datos de uso generales y adicionales recopilados de una aplicación CDK
El siguiente es un ejemplo de una aplicación de 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();
En la síntesis, los datos de uso se recopilan, comprimen y almacenan en el AWS::CDK::Metadata
recurso.
El siguiente es un ejemplo de datos de uso general recopilados con una versión de CDK anterior a la 2.178.0:
{
"fqn": "aws-cdk-lib.aws-s3.Bucket",
"version": "v2.170.0"
}
El siguiente es un ejemplo de los datos de uso recopilados, incluidos los datos de uso adicionales introducidos en la versión 2.178.0 de la 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": "*",
}
}
}
]
}