gpt4 book ai didi

python-3.x - 在 Sagemaker Endpoint 上部署的 Docker 容器中使用 boto3 下载文件

转载 作者:行者123 更新时间:2023-12-04 13:41:08 26 4
gpt4 key购买 nike

我构建了自己的 Docker 容器,该容器提供要部署为 Amazon Sagemaker 上的端点的推理代码。但是,此容器需要访问 s3 中的某些文件。使用的 IAM 角色可以访问我尝试访问的所有 s3 存储桶。

使用 boto3 客户端下载文件的代码:

import boto3

model_bucket = 'my-bucket'

def download_file_from_s3(s3_path, local_path):
client = boto3.client('s3')
client.download_file(model_bucket, s3_path, local_path)

IAM 角色的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::my-bucket/*"
]
}
]
}

在本地启动 docker 容器允许我像预期的那样从 s3 下载文件。

但是,在 Sagemaker 上部署为端点时,请求超时:
botocore.vendored.requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='my-bucket.s3.eu-central-1.amazonaws.com', port=443): Max retries exceeded with url: /path/to/my-file (Caused by ConnectTimeoutError(<botocore.awsrequest.AWSHTTPSConnection object at 0x7f66244e69b0>, 'Connection to my-bucket.s3.eu-central-1.amazonaws.com timed out. (connect timeout=60)'))

任何帮助表示赞赏!

最佳答案

出于安全原因,他们不允许它本地访问 s3,您需要将其连接到 VPC
https://docs.aws.amazon.com/sagemaker/latest/dg/host-vpc.html

关于python-3.x - 在 Sagemaker Endpoint 上部署的 Docker 容器中使用 boto3 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56835306/

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