可以按照以下步骤解决。
在“IAM管理控制台”中,确保您的Lambda函数的执行角色具有访问S3存储桶的权限。在S3存储桶的“权限管理”中,确保您的AWS账户或Role的AWS账户具有访问存储桶的权限。
确保S3存储桶和Lambda函数都位于同一区域中。如果它们位于不同的区域,您将无法访问存储桶。
请注意S3存储桶名称应该是全球唯一的。确保您正确输入存储桶的名称。
示例:
以下代码示例演示如何在Lambda函数中读取S3对象。请修改示例代码,以便适应您的AWS账户和S3存储桶。
import boto3
def lambda_handler(event, context): # 创建S3客户端 s3 = boto3.client('s3')
# 配置S3对象键和存储桶名称
bucket_name = 'my-bucket'
object_key = 'test.txt'
try:
# 读取S3对象
response = s3.get_object(Bucket=bucket_name, Key=object_key)
data = response['Body'].read()
print(data)
except Exception as e:
print(f"Error reading S3 object: {e}")
raise e
上面的代码示例中,当访问被拒绝时,会打印错误消息并引发异常。您可以通过解决上面提到的问题,来解决