Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS ECS服务重新启动由于目标组运行状况检查失败_Amazon Web Services_Amazon Ecs_Aws Fargate_Aws Application Load Balancer - Fatal编程技术网

Amazon web services AWS ECS服务重新启动由于目标组运行状况检查失败

Amazon web services AWS ECS服务重新启动由于目标组运行状况检查失败,amazon-web-services,amazon-ecs,aws-fargate,aws-application-load-balancer,Amazon Web Services,Amazon Ecs,Aws Fargate,Aws Application Load Balancer,我有一个在Docker容器中运行的.net核心API。 这个容器被部署到AmazonECR,在那里我使用任务定义运行它(已经工作了) 从我的任务定义中删除 当我启动服务时,任务运行并且工作正常。我获得公共IP,在那里我可以检查我的电话是否可用: HTTP 401是正常的,因为调用检查有效令牌 问题是当我尝试添加一个目标组的负载平衡器时 为此,我删除了我的旧服务,并使用负载平衡器和目标组创建了一个新服务 在我像这样启动服务后,目标组健康检查响应将显示“请求超时”,并继续重新启动我的

我有一个在Docker容器中运行的.net核心API。 这个容器被部署到AmazonECR,在那里我使用任务定义运行它(已经工作了)

  • 从我的任务定义中删除
当我启动服务时,任务运行并且工作正常。我获得公共IP,在那里我可以检查我的电话是否可用:

  • HTTP 401是正常的,因为调用检查有效令牌

问题是当我尝试添加一个目标组的负载平衡器时

为此,我删除了我的旧服务,并使用负载平衡器和目标组创建了一个新服务

在我像这样启动服务后,目标组健康检查响应将显示“请求超时”,并继续重新启动我的服务。 当我检查API的公共IP时,它仍然有效,只有当我尝试访问我的API时 通过负载均衡器,它无法工作

目标群体:

磅:

只需在Healthcheck成功代码中添加
401
,它就可以工作了。因为您可以在目标组的运行状况检查中定义多个HTTP状态代码


另外,为了处理“请求超时”
,允许从LB启用ECS实例端口
50598
,只需在Healthcheck成功代码中添加
401
,它就可以工作了。因为您可以在目标组的运行状况检查中定义多个HTTP状态代码


另外,为了处理“请求超时”,从LB允许ECS实例端口
50598
您很可能会收到请求超时,因为附加到任务的安全组不允许从负载平衡器节点进行入站访问

默认情况下,即使所有节点的运行状况检查失败,负载平衡器也会尝试转发到所有节点,如果入站评估失败,则会导致超时

只要主机允许将端口
50598
连接到负载平衡器,就不会发生超时,如果您使用的是ALB,则可以添加一个源作为连接到负载平衡器的安全组

一旦此访问开始工作,您将需要确保HTTP状态代码和路径的运行状况检查成功

同样值得注意的是,对于应用程序负载平衡器,您可以使用范围为
200
-
499
,而对于网络负载平衡器,它只能进行
200
-
399
的运行状况检查

您的目标组也必须配置为在端口
50598
上运行,它当前是目标端口
80

更新


应用程序似乎正在端口
80
上运行。目标组和任务的配置已更新为使用该端口。然后又开始工作。

您可能会收到请求超时,因为附加到任务的安全组不允许从负载平衡器节点进行入站访问

默认情况下,即使所有节点的运行状况检查失败,负载平衡器也会尝试转发到所有节点,如果入站评估失败,则会导致超时

只要主机允许将端口
50598
连接到负载平衡器,就不会发生超时,如果您使用的是ALB,则可以添加一个源作为连接到负载平衡器的安全组

一旦此访问开始工作,您将需要确保HTTP状态代码和路径的运行状况检查成功

同样值得注意的是,对于应用程序负载平衡器,您可以使用范围为
200
-
499
,而对于网络负载平衡器,它只能进行
200
-
399
的运行状况检查

您的目标组也必须配置为在端口
50598
上运行,它当前是目标端口
80

更新



应用程序似乎正在端口
80
上运行。目标组和任务的配置已更新为使用该端口。然后又开始工作。

我已经添加了健康检查参数,路径:/api/user/areYouLoggedIn,成功代码:401。我将再次检查负载平衡器端口againNo ALB SG是否正常,您需要允许Ec2实例端口使其正常工作,这就是您获得超时的原因。我现在添加了允许所有流量的安全规则。我不再得到超时,但我得到一个502.502表示后端应用程序没有运行。检查应用程序。它正在一次又一次地重新启动。我仍然可以检查任务的公共IP,但服务会继续重新启动。我已经添加了健康检查参数,路径:/api/user/areYouLoggedIn,成功代码:401。我将再次检查负载平衡器端口againNo ALB SG是否正常,您需要允许Ec2实例端口使其正常工作,这就是您获得超时的原因。我现在添加了允许所有流量的安全规则。我不再得到超时,但我得到一个502.502表示后端应用程序没有运行。检查应用程序。它正在一次又一次地重新启动。我仍然可以检查任务的公共IP,它可以工作,但服务不断重新启动我现在允许我的安全组的所有流量,而不是超时,我现在得到502。这意味着,当防火墙正在工作时,应用程序正在失败。看看:)应用程序似乎可以工作,我可以使用公共IP作为端点。。。直到它重新启动^^它将重新启动,因为负载平衡器中有502。ECS监控负载平衡器的运行状况502需要解决,你能转发你的侦听器和目标配置的屏幕截图吗?我现在允许我的安全组的所有流量,而不是超时,我现在得到一个502,这意味着当防火墙正在工作时,应用程序正在失败。看看:)应用程序似乎可以工作,我可以使用公共IP作为端点。。。直到它重新启动^^它将重新启动,因为负载平衡器中有502。ECS监控502上的负载平衡器
 "portMappings": [
    {
      "hostPort": 50598,
      "protocol": "tcp",
      "containerPort": 50598
    }
  ],