Первый шаг — определение контекста. Контекст можно определить в файле 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.