【问题标题】:Can you pass stage variables to a lambda using the proxy integration?您可以使用代理集成将阶段变量传递给 lambda 吗?
【发布时间】:2019-02-28 10:23:33
【问题描述】:

我可以使用阶段变量来执行不同的 lamdbas,但看起来你也可以让映射模板读取它们并根据它们的值做一些事情:https://docs.aws.amazon.com/apigateway/latest/developerguide/stage-variables.html

但我使用 lambda 代理集成,所以我没有映射模板。有没有办法通过 rpoxy 集成将阶段配置变量传递给 lambda?

现在我这样做只是为了使用一个阶段变量来指向该阶段的正确 lambda:Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${!stageVariables.LambdaFunctionName}/invocations

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-api-gateway


    【解决方案1】:

    所有定义的阶段变量都在lambda函数中event参数的stageVariables字段中传递:

    import json
    def handler(event, context):
        return {
            "statusCode": 200,
            "headers": {"Content-Type": "application/json"},
            "body": json.dumps(event['stageVariables'])
        }
    

    【讨论】:

    • 不,它不会发生在 Node.js 中
    • @Stephen,我已经在 API Gateway 中定义了阶段变量,但是 Lambda 函数的事件参数没有它们。我需要做什么来传递变量?
    • @AmosLong 它应该从网关传递——我刚刚在 Python 3.7 中实现了我的 Lambda(但在 JS 中应该类似)并使用 event.get('stageVariables').get('env') 来检索 env 变量的值跨度>
    猜你喜欢
    • 2015-10-19
    • 2020-02-02
    • 2023-03-20
    • 1970-01-01
    • 2022-12-07
    • 2021-05-22
    • 2017-09-17
    • 2015-02-13
    • 1970-01-01
    相关资源
    最近更新 更多