要将数据放入跨账户的S3存储桶,您可以通过以下步骤使用AWS Lambda和AWS SDK for Python(Boto3)来实现:
设置IAM角色:在源Lambda函数所在的账户中创建一个IAM角色,该角色应具有将数据放入目标S3存储桶的权限。确保在信任关系策略中添加了源账户的ARN。
编写Lambda函数代码:创建一个Lambda函数,使用Boto3库连接到S3服务,并使用put_object方法将数据放入目标S3存储桶。
下面是一个示例代码,假设您已经在源Lambda函数中配置了合适的IAM角色和环境变量:
import boto3
import os
def lambda_handler(event, context):
# 从环境变量中获取目标S3存储桶和文件名
target_bucket = os.environ['TARGET_BUCKET']
file_name = 'example.txt' # 替换为您要上传的文件名
# 创建S3客户端
s3_client = boto3.client('s3')
# 读取要上传的文件内容
file_content = 'Hello, World!' # 替换为您要上传的文件内容
# 将文件内容放入目标S3存储桶
s3_client.put_object(
Body=file_content,
Bucket=target_bucket,
Key=file_name
)
return {
'statusCode': 200,
'body': 'File uploaded successfully'
}
确保将目标S3存储桶的名称设置为环境变量TARGET_BUCKET。请注意,上述示例假设您已经在源Lambda函数中正确配置了IAM角色和环境变量。
此代码将在源账户中创建的Lambda函数中执行,以将数据放入目标S3存储桶。确保在目标S3存储桶中配置了适当的跨账户访问权限,以允许源账户的Lambda函数写入数据。