Yu *_*hen 3 amazon-web-services amazon-cloudwatch terraform
我一直在ECS上运行容器,并使用AWS Cloudwatch事件在任务完成时通知我。所有基础结构都是使用Terraform创建的。但是,我无法在事件模式中获得正确的语法,因此仅通知我非零退出代码。
以下资源很好用,每当我的一个容器退出时,它就会向SNS发送通知:
resource "aws_cloudwatch_event_rule" "container-stopped-rule" {
name = "container-stopped"
description = "Notification for containers that exit for any reason. (error)."
event_pattern = <<PATTERN
{
"source": [
"aws.ecs"
],
"detail-type": [
"ECS Task State Change"
],
"detail": {
"lastStatus": [
"STOPPED"
],
"stoppedReason" : [
"Essential container in task exited"
]
}
}
PATTERN
}
Run Code Online (Sandbox Code Playgroud)
但是,我正在尝试略微修改模式,以便仅在容器退出并显示错误代码时通知我-由于我们收到的通知太多,我们已经开始调出电子邮件,有时不会注意到容器错误退出的电子邮件通知:
resource "aws_cloudwatch_event_rule" "container-stopped-rule" {
name = "container-stopped"
description = "Notification for containers with exit code of 1 (error)."
event_pattern = <<PATTERN
{
"source": [
"aws.ecs"
],
"detail-type": [
"ECS Task State Change"
],
"detail": {
"containers": [
{
"exitCode": 1
}
],
"lastStatus": [
"STOPPED"
],
"stoppedReason" : [
"Essential container in task exited"
]
}
}
PATTERN
}
Run Code Online (Sandbox Code Playgroud)
当我时,这将引发以下错误terraform apply:
aws_cloudwatch_event_rule.container-stopped-rule:更新CloudWatch事件规则失败:InvalidEventPatternException:事件模式无效。原因:匹配值必须为[来源:(String)“ {” detail“:{” containers“:[{” exitCode“:1}],” lastStatus“:[”处的String,number,true,false或null。 STOPPED“],” stoppedReason“:[”退出任务中的基本容器“]},”详细类型“:[” ECS任务状态更改“],”源“:[” aws.ecs“]}”“; 行:1,列:27]状态码:400
这让我感到困惑,因为我遵循的是AWS CloudWatch文档中容器的确切结构。我什至尝试用双引号引起来1,以防Terraform需要字符串而不是数字。
我还尝试使用AWS Console手动编辑事件模式JSON,但收到此错误:
验证错误。详细信息:事件模式包含无效值(只能是非空数组或非空对象)
老实说,在这一点上我很困惑,不胜感激我的语法不正确的任何提示。
事件模式语法很奇怪,我遇到了同样的问题。以下将起作用:
{
"source": [
"aws.ecs"
],
"detail-type": [
"ECS Task State Change"
],
"detail": {
"lastStatus": [
"STOPPED"
],
"stoppedReason": [
"Essential container in task exited"
],
"containers": {
"exitCode": [
1
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我$.detail.group在Input Transformer中使用了通知消息中的任务族名称。
| 归档时间: |
|
| 查看次数: |
1124 次 |
| 最近记录: |