繁体   English   中英

如何在 Python 中使用 AWS lambda 提供 YAML/文本文件作为响应?

[英]How to serve YAML/text files as response using AWS lambda in Python?

我无法获得有关如何在 AWS Lambda 中将 static 文件作为响应提供的信息。 我有一个 YAML 文件内容,当用户点击 HTTP GET 请求时,该文件内容需要作为 YAML 文件(应在浏览器中作为文件下载)发送。 如何配置 lambda function 以及在创建请求时我们应该在 API 网关中进行哪些更改?

样品 Lambda function:

import yaml
def lambda_handler(event, context):
    test_url = 'http://www.google.com'

    with open("test.yml") as f:
        list_doc = yaml.load(f)
    # updating a variable in yaml file
    list_doc[0]['vars']['url'] = test_url
    with open("/tmp//return_file.yml", "w") as f:
        yaml.dump(list_doc, f, default_flow_style=False)
    # how to send this return_file.yml as http response?
    # return {
    #     'statusCode': 200,
    #     'body': json.dumps('Hello from Lambda!')
    # }

首先,您需要为类型*/*application/octet-stream 启用 REST API 的二进制支持

然后在你的lambda_function.py中,你需要像这样返回

    f = yaml.dump(filename, encoding='utf-8')
    return {
        'statusCode': 200,
        'headers': { 'Content-Type': 'application/octet-stream; charset=utf-8'},
        'body': f.decode('utf-8')
    }

暂无
暂无

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

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