使用AWS Lambda和S3 URL的必要AWS S3权限

2024-10-03 23:19:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须将我的AWS Lambda连接到AWS S3 bucket,以便获得定制的pickle对象。我可以在thisAWS资源中完成这项工作,而且效果很好

但是,我需要显式地将AWS S3 bucketURL放入AWS lambda中,以便将大型Python包xgboost导入AWS lambda容器中的temp目录(如thisthis)。我能够做到这一点,但要做到这一点,我需要授予我的S3存储桶公共访问权限

我的问题是,是否可以在AWS Lambda中显式地声明AWS S3 URL,而不需要允许公众访问S3 bucket


Tags: 对象lambdaawss3bucket资源thistemp
1条回答
网友
1楼 · 发布于 2024-10-03 23:19:43

我在使用boto3定义预签名URL时找到了答案(更多详细信息here):

import boto3

s3_client = boto3.client('s3')

BUCKET = 'my-bucket'
OBJECT = 'xgboost.zip'

url = s3_client.generate_presigned_url(
    'get_object',
    Params={'Bucket': BUCKET, 'Key': OBJECT},
    ExpiresIn=300)

使用它,我可以阻止S3存储桶的所有公共访问

相关问题 更多 >