【问题标题】:Why does AWS keep saying my ARN is invalid?为什么 AWS 一直说我的 ARN 无效?
【发布时间】:2021-04-26 17:08:14
【问题描述】:

我正在尝试使用 Lambda 集成部署 API 网关,但我无法解决一个特定错误。我检查了一些关于确保您遵循请求格式的帖子,我相信我已经这样做了。我一直收到的错误是:

请求中指定的 ARN 无效:“AWS_PROXY”类型的集成 目前仅支持 Lambda 函数和 Firehose 流 调用(服务:AmazonApiGatewayV2;状态代码:400;错误 代码:BadRequestException;

这就是我的 CloudFormation 的样子:

Parameters:
EnvType:
    Type: String
    Default: "dev"

Resources:
    routerLambda:
            Type: AWS::Lambda::Function
            Properties:
                 FunctionName: !Sub router-${EnvType}
                 ...

    routerLambdaIntegration:
            Type: AWS::ApiGatewayV2::Integration
            Properties:
                ApiId: !Ref apiGateway
                IntegrationType: AWS_PROXY
                IntegrationUri: !Sub "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:router-dev/invocation"
            DependsOn: routerLambda

谁能看到我错过了什么?

【问题讨论】:

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


    【解决方案1】:

    URI 中有一个小错字,您使用的是invocation 而不是invocations

    应该是

        Target: arn:aws:apigateway:{region}:lambda:path/2015-03-31/functions/arn:aws:lambda:{region}:{account-id}:function:{function-name}/invocations
    

    但你有

      IntegrationUri: !Sub "arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:router-dev/invocation"
    

    【讨论】:

    • 伙计,我已经检查了三次,但未能发现:(感谢您多一双眼睛。
    • @Ian 碰巧,我自己去过那里很多次。我尝试做的大部分时间都是从documentations 中获取基本示例,然后在此基础上进行构建。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    相关资源
    最近更新 更多