Первый шаг — определение контекста. Контекст можно определить в файле cdk.context.json, который должен находиться в корневом каталоге проекта. Файл контекста должен иметь объект JSON с парами ключ-значение, как показано ниже.

{
    "key": "value",
    "environment": "dev"
}

Шаг 2. Используйте контекст в приложении CDK

После определения контекста в файле cdk.context.json мы можем использовать его в приложении CDK. Вот пример использования Context в приложении TypeScript CDK.

import * as cdk from 'aws-cdk-lib';
import { MyStack } from './my-stack';

const app = new cdk.App({
  context: {
    key: 'value',
    environment: 'dev'
  }
});

new MyStack(app, 'MyStack');

В приведенном выше примере мы создаем приложение CDK и передаем Context в качестве аргумента конструктору cdk.App. Затем к парам "ключ-значение" можно получить доступ в приложении CDK.

Шаг 3. Доступ к контексту в стеке AWS CDK

После передачи контекста приложению CDK мы можем получить к нему доступ в стеке AWS CDK. Вот пример того, как получить доступ к контексту в стеке TypeScript CDK.

import * as cdk from 'aws-cdk-lib';
import * as s3 from 'aws-cdk-lib/aws-s3';

export class MyStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const key = this.node.tryGetContext('key');
    const environment = this.node.tryGetContext('environment');

    new s3.Bucket(this, 'MyBucket', {
      bucketName: `${key}-${environment}-bucket`
    });
  }
}

В приведенном выше примере мы получаем доступ к Context в конструкторе MyStack и используем пары ключ-значение для создания корзины S3.

Заключение

В заключение, Context — это мощный механизм в AWS CDK, который позволяет нам передавать параметры в приложение CDK и использовать их в стеке AWS CDK. Выполнив описанные выше шаги, вы сможете использовать Context в своих проектах AWS CDK.