Pulumi-'AWS_PROXY'当前仅支持Lambda函数

问题描述 投票:0回答:1

我想通过Alias创建连接到Lambda函数的API网关,我有IntegrationRouteTargetProvider,它提供了到API的集成路由。我从lambda获取了URI,所以我认为它是正确的。我还检查了一些SO问题,并且在文档中也为arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}

我的uri是

arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:051069080387:function:deploy-test-4-lambda/invocations

但是,当我尝试创建api时出现错误:

无法将集成放在路径'/'上的资源的'ANY'上:类型'AWS_PROXY'的集成当前仅支持Lambda函数和Firehose流调用。

这里是我的IntegrationRouteTargetProvider

export class AliasLambdaProvider implements IntegrationRouteTargetProvider {
    target(name: string, parent: pulumi.Resource): pulumi.Input<IntegrationTarget> {
        return {
            type: "aws_proxy",
            uri: 'arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:051069080387:function:deploy-test-4-lambda/invocations',
        };
    }
}

并且比在创建API时使用它

return new API(name, {
        routes: [
            {
                path: "/",
                target: new AliasLambdaProvider()
            }
        ],
        stageName: name + "-stage"
    }, { provider });
amazon-web-services amazon-cloudformation aws-api-gateway pulumi
1个回答
0
投票

您正在使用:

类型:“ aws_proxy”

这意味着所有内容都传递给了lambda,并且标头需要在lambda上进行处理。 AWS_Proxy已禁用集成类型,因此出现错误。但是,如果您想定义集成方法/映射模板等,请使用:

类型:“ aws”

© www.soinside.com 2019 - 2024. All rights reserved.