Я смотрю на этот пример кода , и я не уверен, как я могу принять его в моей ситуации:
Моя цель:
Я хочу подписаться на событие rds, чтобы моя лямбда-функция вызывалась, когда данные временной базы данных полностью восстанавливались из моментального снимка.
Подробности:
Вот мой рабочий процесс:
1) Лямбда-функция start_restore
запускается в запланированное время. это
Функция написана на Python и использует boto3
для создания временного
mysql db с именами типа temp-sales-20190701
. Функция будет
найдите последний снимок БД sales
и восстановите его до
temp-sales-20190701
2) После завершения восстановления я хочу выполнить некоторые действия с
Temp дБ и будет сброшен в конце концов. ( Пожалуйста, не задавайте вопросов
нужна временная база данных на этом этапе. Я намеренно пропускаю много
детали, потому что это очень специфично для требования пользователя )
Вот код в примере:
resource "aws_db_instance" "default" {
allocated_storage = 10
engine = "mysql"
engine_version = "5.6.17"
instance_class = "db.t2.micro"
name = "mydb"
username = "foo"
password = "bar"
db_subnet_group_name = "my_database_subnet_group"
parameter_group_name = "default.mysql5.6"
}
resource "aws_sns_topic" "default" {
name = "rds-events"
}
resource "aws_db_event_subscription" "default" {
name = "rds-event-sub"
sns_topic = "${aws_sns_topic.default.arn}"
source_type = "db-instance"
source_ids = ["${aws_db_instance.default.id}"]
event_categories = [
"availability",
"deletion",
"failover",
"failure",
"low storage",
"maintenance",
"notification",
"read replica",
"recovery",
"restoration",
]
}
(как придира, думаю, мне нужно только "restoration"
в event_categories
)
В результате aws_db_instance.default
отсутствует при применении файла terraform, поскольку temp-sales-20190701
создается на лету. Я думаю, что было бы невозможно создать подписку на событие db с неизвестным идентификатором db, правильно?
Если это так, могу ли я создать подписку sns внутри лямбда-функции start_restore
?