如何获取使用java调用aws lambda的api网关的名称

时间:2017-12-04 17:26:22

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

我试图在我的Lambda代码中检索apigateway名称。我在AWS http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html上引用了以下文档。

我知道我们可以使用上下文变量检索API ID。但是,我有兴趣检索创建的API的实际名称。有没有办法得到它?

提前致谢。

2 个答案:

答案 0 :(得分:1)

据我所知,您无法直接获取API网关名称,但您可以获取API网关 Id

传入事件和上下文。在这种情况下,有一个名为“requestContext”的键。在请求上下文中是“apiId”键。

然后,您可以使用API​​密钥ID在需要时查找名称。

答案 1 :(得分:0)

不幸的是,您将无法直接从上下文获取API名称,只能获取其标识符。

获取此信息的一种方法是根据上下文中的ID获取API信息:

response = client.get_rest_api(
    restApiId='string'
)

您将收到以下答复:

{
    'id': 'string',
    'name': 'string',
    'description': 'string',
    'createdDate': datetime(2015, 1, 1),
    'version': 'string',
    'warnings': [
        'string',
    ],
    'binaryMediaTypes': [
        'string',
    ],
    'minimumCompressionSize': 123,
    'apiKeySource': 'HEADER'|'AUTHORIZER',
    'endpointConfiguration': {
        'types': [
            'REGIONAL'|'EDGE'|'PRIVATE',
        ]
    },
    'policy': 'string'
}

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/apigateway.html#APIGateway.Client.get_rest_api