gpt4 book ai didi

python - 文件可以在本地上传到 S3 但不能在容器内(无法找到凭据)

转载 作者:行者123 更新时间:2023-12-02 20:59:17 26 4
gpt4 key购买 nike

我有一个 Python 脚本将文件上传到 S3,代码与 this question 中的相同。 .

我有一个传递 AWS 凭证的 bash 脚本。我想上传的文件是从在 Fargate(ina 容器)上运行的模型生成的,所以我尝试在容器中运行这个 Python 脚本以上传到 S3,我已经构建了图像,但是当我运行 docker run containername 它会给我错误:

INFO:root:Uploading to S3 from test.csv to bucket_name test.csv

File "/usr/local/lib/python3.6/dist-packages/botocore/auth.py", line 357, in add_auth
raise NoCredentialsError
botocore.exceptions.NoCredentialsError: Unable to locate credentials

有人可以给我一些提示吗?我该如何解决?提前致谢。

最佳答案

要传递 docker 凭据,您需要在容器中安装 ~/.aws/credentials

docker -v ~/.aws/credentials:/root/.aws/credentials:ro 

或者将您的凭据作为环境变量传递

docker run -e -e AWS_ACCESS_KEY_ID=$(aws configure get aws_access_key_id --profile profilename) -e AWS_SECRET_ACCESS_KEY=$(aws configure get aws_secret_access_key --profile profilename)

对于 Fargate 端,您需要创建一个 IAM 角色并添加一个有权访问该存储桶的策略。

这需要分配给任务角色。这与用于拉取 docker 镜像的 Task Execution Role 不同。 Task Role 在运行时使用,您需要在此处添加 S3 访问策略。

关于python - 文件可以在本地上传到 S3 但不能在容器内(无法找到凭据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61250393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com