#aws-cdk
#aws-cdk
Вопрос:
Существует ли хороший шаблон для выполнения миграции базы данных в конвейере CDK?
Обычно (без конвейера CDK) Я бы добился этого с помощью сценария развертывания, который:
- развертывает стек базы данных
- ожидает завершения стека базы данных
- запускает миграции БД
- развертывает стек API
Есть ли какой-либо способ сделать это в приложении конвейера CDK (запускать миграции после развертывания стека базы данных, но до развертывания стека API)?
export class MyStage extends Stage {
constructor(scope: Construct, id: string, props?: StageProps) {
super(scope, id, props);
const dbStack = new DatabaseStack(this, 'Database');
const apiStack = new ApiStack(this, 'Api', {
dbUrl: dbStack.dbUrl
});
}
}
Ответ №1:
Подобные вещи я бы добавил в пользовательский ресурс: https://docs.aws.amazon.com/cdk/api/latest/docs/custom-resources-readme.html
По сути, вы пишете лямбда-выражение, которое будет обрабатывать событие CREATE и принимает базу данных как свойство. Тогда у него будет код, который обычно является вашим сценарием миграции. Вы можете просто игнорировать события обновления / удаления или, возможно, выполнить резервное копирование данных при удалении. Просто помните, что события относятся к пользовательскому ресурсу, а не обязательно к базе данных (даже если они могут совпадать).