当前位置: 首页 > 知识库问答 >
问题:

如何在SAM中的Apigateway专用api的开放api规范中指定VPCENDPOINTID

薛兴德
2023-03-14

我有一个SAM模板文件,其中我将Api定义为AWS::Serverless::Api资源。api应该具有EndpointConfiguration:PRIVATE与AWS::ApiGateway::RestApi不同,AWS::Serverless::api仅支持EndpointConfiguration的字符串值。

对于AWS::ApiGateway::RestApi:我可以添加2种属性类型:私有vpcEndpointIds:[]

但是对于AWS::Serverless::Api,我只有一个PRIVATE属性

在搜索如何配置vpcEndpointIds时,我发现:

https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html

本文档还指出,VPCENDPOINTID应该在开放式api规范文档中的“x-amazon-apigateway-endpoint-configuration”下定义。

但无论是在AWS文档中还是在OpenAPI文档中,我都找不到任何关于如何准确定义它的示例。

OpenAPIdoc说它应该在我尝试过的服务器对象下定义,但都不起作用。

任何帮助都将不胜感激

共有2个答案

盖诚
2023-03-14

谢谢你的回复。

我在SAM中找到了正确的方法。正如您所提到的,它在SAM中不是直接可用的选项。但您可以在api开放api定义文档中的servers对象下实现这一点,如下所示:

        servers:
      - url: "https://apiname.execute-api.region.aws.com/{basePath}"
        variables:
          basePath:
            default: "/stagename"
        x-amazon-apigateway-endpoint-configuration:
          vpcEndpointIds:
            - !Ref vpcEndpointId

对于遇到相同问题的用户,请记住,如果您使用的是swagger 2.0规范,那么属性需要处于不同的级别。在这里找到它-https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html

郑宏朗
2023-03-14

此选项可用于CloudFormation,但SAM目前不支持在EndpointConfiguration下定义VPCendpoint。

最近添加了关联VPCendpoint的此功能,因此我认为SAM尚未对此进行更新。有对它的功能要求,所以我预计它将很快实现。

 类似资料:
  • 我不熟悉swagger文档等,请分享为以下endpoint(spring boot microservice的endpoint)创建开放api规范的好资源或步骤: 任何帮助或参考将不胜感激。谢谢大家。

  • 我是AWS SAM的新手。我已经使用AWS web控制台实现了一个API网关,并在API方法请求中指定了主体验证,我希望使用SAM模板实现同样的功能。我对如何在API网关SAM模板中指定方法请求的搜索与此无关。需要帮忙吗?

  • 我有一个打开的api yaml文件如下。我想分配空字符串值作为默认字符串类型属性。做这件事的方法是什么

  • 本文向大家介绍iOS9开放的新API--Spotlight使用指南,包括了iOS9开放的新API--Spotlight使用指南的使用技巧和注意事项,需要的朋友参考一下 1.Spotloight是什么?   Spotlight在iOS9上做了一些新的改进, 也就是开放了一些新的API, 通过Core Spotlight Framework你可以在你的app中集成Spotlight。集成Spotlig

  • 在我的swagger Open API文档中,我给出了如下的对象定义: 我找不到电子邮件地址的格式,如: 我看了官方文件,他们说: 即使本规范未定义,也可以使用“email”、“uuid”等格式。未附带格式属性的类型遵循JSON模式中的类型定义。 我正在努力实现这一点,任何提示我如何才能实现这一点?