我正在调试一个ECS任务,它基本上从SQS队列中抓取一条消息,从S3下载文件,操纵它并将其上传回S3。这个脚本在本地工作正常,如果我在docker容器中运行它也可以在本地正常工作。当我使用docker镜像在ECS中创建任务并让它运行时,它似乎不会处理该文件。为了找到问题,我创建了一个非常小的脚本,只需将文件上传到s3
aws s3 cp hello-world.txt s3://my-buckt-name/hello-world.txt
这在本地再次正常工作,并且在docker容器(本地)中工作正常。当我为它创建任务时,它根本不起作用。 ECS任务的角色是“完全S3访问”......任何想法?
我的s3存储桶上是否需要存储桶策略?我认为如果我授予对需要它的AWS服务的访问权限就足够了,但显然它不起作用......并且使用我的管理员帐户我可以使用awscli在我的存储桶中创建对象......
EDIT 好吧,问题似乎是该地区。我在另一个地区创建了另一个桶(之前是法兰克福,现在是爱尔兰),现在我可以按照我的预期复制并粘贴到桶中。有趣的是,我可以通过编程方式创建存储桶(即使是在我的ECS任务中),但我似乎无法在位于法兰克福的存储桶中创建对象。