terraform为RDS创建cloudwatch事件以触发lambda
我想在RDS实例重新启动或停止时运行AWS lambda函数。 我正在探索创建cloudwatch事件,每当RDS实例重新启动或停止时,它都会触发我的lambda函数 如何使用terraform设置此功能。我使用了下面的方法进行尝试,但它无法执行。terraform为RDS创建cloudwatch事件以触发lambda,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我想在RDS实例重新启动或停止时运行AWS lambda函数。 我正在探索创建cloudwatch事件,每当RDS实例重新启动或停止时,它都会触发我的lambda函数 如何使用terraform设置此功能。我使用了下面的方法进行尝试,但它无法执行。 provider "aws" { access_key = "" secret_key = "" version = "~> 2.10" region = "ap-southeast-1" } resource "aw
provider "aws"
{
access_key = ""
secret_key = ""
version = "~> 2.10"
region = "ap-southeast-1"
}
resource "aws_cloudwatch_event_rule" "test-RDS-event" {
name = "test-RDS-event"
description = "Capture RDS event for lambda target"
event_pattern = <<pattern
{
"source": [
"aws.rds"
],
"detail-type": [
"RDS DB Instance Event"
],
"detail": {
"EventCategories": [
"failover"
]
}
}
pattern
}
resource "aws_cloudwatch_event_target" "lambda" {
rule = "${aws_cloudwatch_event_rule.test-RDS-event.name}"
target_id = "populate_NLB_TG_with_RDS"
arn = "${aws_cloudwatch_event_target.lambda.arn}"
}
提供程序“aws”
{
access_key=“”
secret_key=“”
version=“~>2.10”
region=“ap-东南-1”
}
资源“aws\u cloudwatch\u事件\u规则”“测试RDS事件”{
name=“测试RDS事件”
description=“捕获lambda目标的RDS事件”
event_pattern=在提供的代码中,您没有创建lambda函数,因此-不要使用lambda的arn。它应该类似于:
resource "aws_lambda_function" "rds-events" {
filename = "${data.archive_file.start_scheduler.output_path}"
function_name = "rds-events"
...
}
resource "aws_cloudwatch_event_target" "lambda" {
rule = "${aws_cloudwatch_event_rule.test-RDS-event.name}"
target_id = "populate_NLB_TG_with_RDS"
arn = "${aws_lambda_function.rds-events.arn}"
}
在提供的代码中,您没有创建lambda函数,因此-不要使用lambda的arn。它应该类似于:
resource "aws_lambda_function" "rds-events" {
filename = "${data.archive_file.start_scheduler.output_path}"
function_name = "rds-events"
...
}
resource "aws_cloudwatch_event_target" "lambda" {
rule = "${aws_cloudwatch_event_rule.test-RDS-event.name}"
target_id = "populate_NLB_TG_with_RDS"
arn = "${aws_lambda_function.rds-events.arn}"
}
到目前为止,您尝试了什么?参考资料“aws_cloudwatch_event_rule”“test RDS event”{name=“test RDS event”description=“Capture RDS event for lambda target”event_pattern=我已经在上面写过了,当我尝试初始化时,我在下面遇到了错误:错误加载C:\Terraform\example.tf:错误读取aws_cloudwatch_event_目标的配置[lambda]:aws_lambda_function.populate_NLB_TG_with_RDS:resource变量必须由三部分组成:TYPE.NAME.ATTR in:${aws_lambda_function.populate_NLB_TG_with_RDS}您应该编辑您的问题,将Terraform代码包括在内,而不是将其放在未格式化的注释中。您好,对不起,我对这个门户和编程非常陌生,所以我不太确定。我已经更新了代码和我收到的错误。对上述内容有任何建议。您迄今为止尝试了什么?参考资料“aws\u cloudwatch\u事件\u规则”“test RDS event”{name=“test RDS event”description=“Capture RDS event for lambda target”event_pattern=我已经在上面写过了,当我尝试初始化时,下面出现了错误:错误加载C:\Terraform\example.tf:错误读取aws_cloudwatch_event_target的配置[lambda]:aws_lambda_function.populate_NLB_TG_with_RDS:resource变量必须由三部分组成:TYPE.NAME.ATTR in:${aws_lambda_function.populate_NLB_TG_with_RDS}您应该编辑您的问题,将Terraform代码包括在内,而不是将其放在未格式化的注释中。您好,对不起,我对这个门户和编程非常陌生,所以我不太确定。我已经更新了代码和我收到的错误。以上有什么建议吗。