小编bau*_*exj的帖子

如何使用 AWS CDK 查找现有 ApiGateway

我正在使用 AWS CDK 构建我的 lambda,并且我想从 lambda 的 CDK 堆栈注册终端节点。

我发现我可以使用 fromRestApiId(scope, id,restApiId) 获取现有的 ApiGateway 构造(此处的文档

所以目前这效果很好:

    //TODO how to look up by ARN instead of restApiId and rootResourceId??
    const lambdaApi = apiGateway.LambdaRestApi
                                .fromRestApiAttributes(this, generateConstructName("api-gateway"), {
                                    restApiId: <API_GATEWAY_ID>,
                                    rootResourceId: <API_GATEWAY_ROOT_RESOURCE_ID>,
                                });

    const lambdaApiIntegration = new apiGateway.LambdaIntegration(lambdaFunction,{
        proxy: true,
        allowTestInvoke: true,
    })

    const root = lambdaApi.root;

    root.resourceForPath("/v1/meeting/health")
        .addMethod("GET", lambdaApiIntegration);
Run Code Online (Sandbox Code Playgroud)

但我想部署到许多 AWS 账户和许多区域。我不想对每个帐户区域对的API_GATEWAY_IDAPI_GATEWAY_ROOT_RESOURCE_ID进行硬编码。

是否有更通用的方法来获取现有的 ApiGateway 构造(例如通过名称或 ARN)?

先感谢您。

javascript amazon-web-services aws-lambda aws-api-gateway aws-cdk

5
推荐指数
1
解决办法
1万
查看次数