当前位置: 首页 > 知识库问答 >
问题:

AWS Lambda可以从其他地区访问S3桶吗?

司空高义
2023-03-14

我目前尝试使用AWS lambda。lambda函数应该从S3 bucket加载zip文件(>10 MB)。S3桶位于EU-Central-1中,而lambda函数位于lambda:us-East-1中。

当我尝试保存lambda函数时,我得到:

GetObject时出错。S3错误代码:AuthorizationHeaderMalformed。S3错误消息:授权头格式错误;“US-East-1”区域错误;应为“EU-Central-1”

这真的是问题所在吗?是否可以移动lambda函数?

执行Lambda函数的IAM角色具有Amazons3FullAccess策略。

共有2个答案

燕刚捷
2023-03-14

您可以访问与lambda不同区域的S3存储桶。如果您正在使用Python boto3库,下面的代码将对您有所帮助:

import boto3

client = boto3.client('s3', region_name='eu-central-1')

事实上,您可以访问AWS lambda不同区域的任何资源。

西门京
2023-03-14

lambda函数必须与您在“S3链接URL*”处指定的S3 bucket位于同一区域:

 类似资料:
  • 它发现我们帐户中的S3 bucket应用了错误的bucket策略,现在包括root用户在内的所有用户都被拒绝访问 我们无法通过AWS控制台和CLI更改权限,也无法删除bucket。如何修复它?

  • 根据我的理解,在没有给出访问权限的情况下,任何IAM用户都不能访问S3桶/对象。但是在我的用例中,我能够访问它。 我误解了S3的安全策略吗?这是我的用例我有根帐户在AWS,说根用户。这个用户创建了两个IAM用户,比如管理员和测试用户。并且root用户对两个IAM用户都给予了S3FullAccess权限。 现在我以管理员身份登录并创建了一个Bucket(比如Test)。并启用“阻止所有公共访问”。

  • 问题内容: 我有这段代码可以正常工作: 但是,如果方法是从不同的ClassLoader加载的类中的方法,则它将抛出: 如何将实例传递给? 问题答案: 如此回答所述,查找模式必须包含私有访问才能被接受。基本上,这意味着调用者 是 指定的类,因为它创建了特定的查找实例,或者查找类具有足够的信任关系,可以将查找对象传递给执行实际调用的代码(例如,在使用指向时隐含到特定的引导方法)。 从Java 9开始,

  • 问题内容: 我的班级有一个名为DataStorage的哈希图: 如何在另一个类中访问此HashMap中的数据? 问题答案: 将HashMap创建为实例变量,并提供一种将其访问类API的方法:

  • 使用Java AWS SDK,我创建了一个lambda函数来从s3 bucket读取csv文件。我已经将bucket公之于众,可以从任何浏览器轻松访问它和文件。为了测试它,我使用lambda控制台上的test按钮。我正在使用hello world测试配置输入模板。 它失败的原因是: 错误消息:指定的桶无效。(服务:Amazon S3;状态代码:400;错误代码:InvalidBucketName;

  • 我们有一个Lambda函数,需要能够访问私有的S3桶。 该存储桶已启用“阻止所有公共访问”,并具有以下资源策略: 我还将AmazonS3FullAccess策略直接附加到Lambda使用的IAM角色。但是,当Lambda函数尝试访问S3存储桶时,会出现访问被拒绝错误: 使用IAM用户凭据连接到S3的外部系统在尝试访问存储桶时也会收到相同的错误。 有人知道是什么导致了这个错误吗? 以下是发生错误的L