在/使用CF下的API网关创建方法

时间:2019-05-03 14:30:19

标签: amazon-cloudformation aws-api-gateway

如何使用CF在API Gateway的根目录/文件夹下创建方法?因此,例如,我有一个类似于以下内容的网关:

/ 选件 开机自检

enter image description here

但是,当尝试使用CF时,我得到: 资源的路径部分仅允许在开头和结尾处使用a-zA-Z0-9 ._-和花括号。所以我的PathPart是令人讨厌的行。

  ApiGate:
    Type: AWS::ApiGateway::Resource
    Properties:
      ParentId: !GetAtt 
        - ApiGateApi
        - RootResourceId
      PathPart: '{/}'
      RestApiId: !Ref ApiGateApi

我可以将PathPart更改为其他内容,但随后它会将它创建为/子对象,这是我不想要的。

enter image description here

2 个答案:

答案 0 :(得分:0)

将以下内容添加到我的AWS::ApiGateway::Method后,它可以正常工作了。

  MyMethodOPTIONS:
    Type: 'AWS::ApiGateway::Method'
    Properties:
      ResourceId: !GetAtt MyRestApi.RootResourceId

答案 1 :(得分:0)

这解决了我的问题,就我而言,我需要两种方法: 1.会回应对root的要求,例如https://<api-url>/prodhttps://<api-url>/prod/。这将使用API​​网关的RootResourceId:

ResourceId:!GetAtt myApiGateway.RootResourceId

  1. 这将响应对https://<api-url>/prod/下设置的任何请求。可能是petstore,或者如果使用{proxy+},则后端工作负载将尝试解决请求。它将引用模板中定义的资源类型:

ResourceId:!Ref myResource