Указана неверная конечная точка HTTP для URI в Amazon ApiGateway
Я пытаюсь создать ресурс / пользователя / устройства с помощью метода GET для API-шлюза, используя шаблон облачной информации, но он дает мне следующую ошибку
Произошла ошибка: ApiGatewayRootMethod - для URI указана неверная конечная точка HTTP (Служба: AmazonApiGateway; Код состояния: 400; Код ошибки: BadRequestException; Идентификатор запроса:xxxxxxxxxx)
Ниже мой шаблон облачной информации,
AWSTemplateFormatVersion: 2018-11-13
Description: test user
resources:
Resources:
UserDeviceApiGateway:
Type: "AWS::ApiGateway::RestApi"
Properties:
Name: "test-user-info"
Description: "Fetch the user"
UserResource:
Type: 'AWS::ApiGateway::Resource'
Properties:
ParentId:
Fn::GetAtt: ["UserDeviceApiGateway","RootResourceId"]
RestApiId:
Ref: "UserDeviceApiGateway"
PathPart: 'user'
Resource:
Type: 'AWS::ApiGateway::Resource'
Properties:
ParentId:
Ref: "UserResource"
RestApiId:
Ref: "UserDeviceApiGateway"
PathPart: 'devices'
ApiGatewayRootMethod:
Type: "AWS::ApiGateway::Method"
Properties:
AuthorizationType: "NONE"
HttpMethod: "GET"
Integration:
IntegrationHttpMethod: "GET"
Type: "HTTP"
Uri: Sub
- "arn:aws:apigateway:arn:aws:lambda:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:xxxxxxxx:function:user-device-lambda/invocations"
ResourceId:
Fn::GetAtt: ["UserDeviceApiGateway","RootResourceId"]
RestApiId:
Ref: "UserDeviceApiGateway"
Deployment:
DependsOn:
- ApiGatewayRootMethod
Type: 'AWS::ApiGateway::Deployment'
Properties:
RestApiId:
Ref: "UserDeviceApiGateway"
StageName: dev
0 ответов
Немного поздно на вечеринку, но...
Вы указываете Type: "HTTP"
за ApiGatewayRootMethod
но HTTP принимает URL-адрес конечной точки API. Указанное вами формирование URI принимаетсяType: "AWS"
.
Из документов AWS:
Универсальный идентификатор ресурса (URI) для интеграции.
Если вы указываете HTTP для свойства Type, укажите URL-адрес конечной точки API.
Если вы указываете MOCK для свойства Type, не указывайте это свойство.
Если вы указываете AWS для свойства Type, укажите сервис AWS, который следует этой форме: arn: aws: apigateway: region: subdomain.service|service:path| action / service_api. Например, URI лямбда-функции имеет следующую форму: arn:aws:apigateway:region:lambda:path/path. Путь обычно имеет вид /2015-03-31/functions/LambdaFunctionARN/invocations. Для получения дополнительной информации см. Свойство uri ресурса Integration в Справочнике по REST API Amazon API Gateway.
Если вы указали HTTP или AWS для свойства Type, вы должны указать это свойство.