【发布时间】:2020-03-05 22:25:02
【问题描述】:
我正在尝试设置 lambda 以每天运行 AWS Athena 查询并将结果输出到存储在不同 AWS 账户中的 s3 存储桶。我正在编写 Lambda 的帐户在另一个帐户中具有 s3 写入权限,我只是不知道如何输入我要写入的特定存储桶,而且我找不到任何文档这个用例。
以下是我从 lambda 运行我的雅典娜查询的方式:
client = boto3.client('athena')
client.start_query_execution(
QueryString = [QUERY],
QueryExecutionContext={
'Database': [DATABASE]
},
ResultConfiguration={
'OutputLocation': [OUTPUT_LOCATION]
}
)
将结果存储在我自己的 AWS 账户中时,我的查询工作正常。我不能只写“s3://[BUCKETNAME]”,其中存储桶名称是另一个帐户中存储桶的名称。
我猜我缺少一些非常简单的东西——如果有人能告诉我如何格式化“OUTPUT_LOCATION”,其中 ACCOUNT_ID 是另一个帐户的 ID,而 BUCKET_NAME 是存储桶的名称,那就是很有帮助!
【问题讨论】:
-
你试过在桶名后面加斜杠吗?
s3://BUCKETNAME/你收到什么错误? -
你找到答案了吗??
-
S3 Bucket 和 Athena 数据库应该在同一个区域。参考:stackoverflow.com/questions/45313763/…
标签: amazon-web-services amazon-s3 aws-lambda amazon-athena