如何创建侦听服务器运行状况检查的 aws 事件规则?

问题描述 投票:0回答:1

我想监听我的服务器何时启动以触发应用程序。目前我只是测试一下是否可以在服务器启动后立即记录输出。

这是我的任务定义健康检查

{

      "name": "nginx-example",
      "healthCheck": {
        "command": [
          "CMD-SHELL",
          "curl -f http://localhost:80/ || exit 1"
        ],
        "interval": 30,
        "timeout": 5,
        "retries": 3,
        "startPeriod": 10
      }
}

这是我的活动规则:

{
  "Name": "rule-nginx-ok",
  "EventPattern":  "{\"source\": [\"aws.ecs\"], \"detail-type\": [\"ECS Task State Change\"], \"detail\": {\"lastStatus\": [\"RUNNING\"], \"healthStatus\": [\"HEALTHY\"], \"containers\": {\"name\": [\"nginx-example\"]}}}",
  "State": "ENABLED",
  "Description": "Rule to capture ECS nginx health check OK events"
}

这会触发输出到我的日志的目标。

我已设置所有权限。我可以手动触发一个事件,这将显示在我的 lambda 日志中。

{
    "time": 1697929865000,
    "detail": {
        "lastStatus": "RUNNING",
        "healthStatus": "HEALTHY",
        "containers": [
            {
                "name": "nginx-example"
            }
        ]
    }
}

尽管 nginx 服务器启动后,尽管运行状况检查正常,但不会触发此规则。 我只是想知道我的活动规则是否遗漏了某些内容?

amazon-web-services amazon-ecs aws-event-bridge
1个回答
0
投票

我无法让这条规则发挥作用。我最终使用了订阅:

aws logs put-subscription-filter \
 --log-group-name $project_repo \
  --filter-name "HealthCheckSuccessFilter" \
  --filter-pattern "$NGINX_READY_MESSAGE" \
  --destination-arn $FunctionArn
© www.soinside.com 2019 - 2024. All rights reserved.