代码之家  ›  专栏  ›  技术社区  ›  divyanayan awasthi

使用AWS CLI将lambda与rest端点集成

  •  1
  • divyanayan awasthi  · 技术社区  · 5 年前

    我正在尝试使用AWS CLI集成lambda和rest-api网关端点,并运行以下命令,但出现以下错误

    aws apigateway put-integration  --region us-west-2 --rest-api-id 91b73m5i10  --resource-id pjg2ac --http-method GET --type AWS --integration-http-method GET --uri arn:aws:apigateway:us-west-2:lambda:path/apigateway/functions/arn:aws:lambda:us-west-2:xxxxx:function:sendFile_Trips_divyanayan/invocations
    

    调用PutIntegration操作时出错(NotFoundException):指定的方法标识符无效

    看了这篇相关的文章,但没什么帮助

    Create api-gateway lambda integration using aws-cli

    1 回复  |  直到 5 年前
        1
  •  1
  •   Sangam Belose    5 年前

    这个错误是不言而喻的。很可能你的 ApiGateway 终结点在该资源上没有get方法。

    请添加相同的,然后尝试运行上述命令。

    您可能需要添加--credentials参数,该参数是 ARN 对于 IAM 允许此集成的角色 lambda 功能。

    你也需要改变 --integration-http-method POST (这是apigateway-lambda之间的默认集成方法。

    aws apigateway put-integration  --region us-west-2 --rest-api-id 91b73m5i10  --resource-id pjg2ac --http-method GET --type AWS_PROXY --integration-http-method POST --uri arn:aws:apigateway:us-west-2:lambda:path//2015-03-31/functions/arn:aws:lambda:us-west-2:xxxxxxxx:function:sendFile_Trips_divyanayan/invocations --credentials arn:aws:iam::xxxxxxxx:role/lambda-role
    

    此外,在凭据中给定的角色在受信任关系(主体)中应具有以下内容

        {
            "Version": "2012-10-17",
            "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                "Service": [
                    "apigateway.amazonaws.com",
                    "logs.amazonaws.com",
                    "lambda.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
      ]
    }
    

    注释 : 在外部论坛上提问时不要暴露accountID。