繁体   English   中英

AWS Lambda 读取 Athena 数据库文件并写入 S3 无济于事

[英]AWS Lambda reading Athena database file and writing S3 to no avail

一个帮助,因为没有将文件写入 S3 存储桶

我做了什么:

import time
import boto3
query = 'SELECT * FROM db_lambda.tb_inicial limit 10'
DATABASE = 'db_lambda'
output = 's3: // bucket-lambda-test1 / result /'

def lambda_handler (event, context):
    
    client = boto3.client ('athena')

    # Execution
    response = client.start_query_execution (
        QueryString = query,
        QueryExecutionContext = {
            Database: DATABASE
        },
        ResultConfiguration = {
            'OutputLocation': output,
        }
    )
    return response
    return

IAM 角色创建于:

  • AmazonS3FullAccess
  • AmazonAthenaFullAccess
  • CloudWatchLogsFullAccess
  • AmazonVPCFullAccess
  • AWSLambda_FullAccess

运行 Lambda 消息时:

 Response:
{
  "statusCode": 200,
  "body": "\" Hello from Lambda! \ ""
}

Request ID:
"f2dd5cd2-070c-41ea-939f-d4909ce39fd0"

Function logs:
START RequestId: f2dd5cd2-070c-41ea-939f-d4909ce39fd0 Version: $ LATEST
END RequestId: f2dd5cd2-070c-41ea-939f-d4909ce39fd0
REPORT RequestId: f2dd5cd2-070c-41ea-939f-d4909ce39fd0 Duration: 0.84 ms Billed Duration: 1 ms Memory Size: 128 MB Max Memory Used: 52 MB

我是如何进行测试的:

  • 配置测试事件
  • 一个 function 最多可以有 10 个测试事件。 维护事件,以便您可以更改您的计算机或 web 浏览器并使用相同的事件测试 function。
  • 创建新的测试事件
  • 编辑保存的测试事件
  • 测试事件已保存
{
 
}

“来自 Lambda 的问候”消息是 Lambda function 中的默认代码。 在测试 function 之前,您似乎没有单击“部署” 单击部署将保存 Lambda 代码。

此外,一旦你让它运行,请注意start_query_execution()将简单地启动 Athena 查询。 您将需要使用get_query_results()来获取结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM