Amazon ECS 任务无法从 S3 下载环境文件

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

我的 ECS 服务遇到问题,任务在部署期间始终失败。我收到的具体错误信息如下:

ResourceInitializationError: failed to download env files: file download command: non empty error stream: service call has been retried 5 time(s): RequestCanceled: request context canceled caused by: context deadline exceeded

  • ECS 任务配置为从 S3 存储桶下载环境文件。
  • 我的ECS服务位于首尔地区(ap-northeast-2),S3存储桶位于美国东部(俄亥俄)地区(us-east-2)。
  • S3 存储桶和对象未设置为公共访问。

如果您对此问题有任何意见或需要更多信息,请立即告诉我。

请注意,我的母语不是英语,因此对于我的解释不够清晰,我深表歉意。感谢您的理解。

我怀疑该问题可能与超时设置有关,因为该错误表明由于超出上下文截止时间而多次重试后请求被取消。 我尝试将任务定义 JSON 中的 startTimeout 和 stopTimeout 设置为 120 秒,但这并没有解决问题。

之前我们也遇到过类似的问题,但是通过重试过程自动解决了,所以我们没有做任何更改。但是添加新的定时任务后,这个任务并没有运行成功。

为了解决这个问题,如上所述,我在注册新的计划任务并部署它后修改了任务定义。不幸的是,服务部署也失败并出现同样的错误。最终,我通过从 JSON 中删除超时设置回滚到之前的版本,从而允许服务部署继续进行。但是,计划任务仍然失败,并出现同样的错误。

amazon-web-services amazon-s3 service containers amazon-ecs
1个回答
0
投票

我的任务的 VPC 设置了一个没有 NAT 网关的私有子网,因此它无法访问 S3 存储桶。创建 NAT 网关并向 NAT 网关的现有路由表添加新路由后,问题得到解决。

我希望它可以帮助面临同样问题的人。

© www.soinside.com 2019 - 2024. All rights reserved.