我想监听我的服务器何时启动以触发应用程序。目前我只是测试一下是否可以在服务器启动后立即记录输出。
这是我的任务定义健康检查
{
"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 服务器启动后,尽管运行状况检查正常,但不会触发此规则。 我只是想知道我的活动规则是否遗漏了某些内容?
我无法让这条规则发挥作用。我最终使用了订阅:
aws logs put-subscription-filter \
--log-group-name $project_repo \
--filter-name "HealthCheckSuccessFilter" \
--filter-pattern "$NGINX_READY_MESSAGE" \
--destination-arn $FunctionArn