gpt4 book ai didi

amazon-web-services - 在 SAM (AWS IAC) 中将私有(private) API 网关连接到 VPC 的正确方法

转载 作者:行者123 更新时间:2023-12-03 23:49:03 25 4
gpt4 key购买 nike

我正在尝试通过我的部署堆栈中已经存在的 VPC 端点将 AWS 私有(private) API 网关连接到我的 VPC,但是当我 checkin 控制台时,我没有看到连接。

下面是我的 YML 文件中的一些代码片段。

我已从 SSM 中提取 VPC 终端节点并确认这是终端节点 ID。
我的 VPE 端点 ID 在“APIGW”下的 SSM 中显示为 vpce-XXXXXXXXXXXX

Parameters:
TenantName:
Type: String
Profile:
Type: String

...

# VPC params for API GW
VPC:
Type: String
APIGW:
Type: String

然后我按如下方式制作我的私有(private) API 网关。它包含一个在此 API 之上定义的 Lambda。
  PrivateApi:
Type: AWS::Serverless::Api
Properties:
Name: PrivateApi
StageName: v1
MethodSettings:
- HttpMethod: '*'
ResourcePath: /*/*/*
LoggingLevel: ERROR
ThrottlingBurstLimit: 5000
ThrottlingRateLimit: 10000
EndpointConfiguration: PRIVATE
DefinitionBody:
swagger: 2.0
info:
title: PrivateApi
x-amazon-apigateway-api-key-source: "HEADER"
schemes:
- https
x-amazon-apigateway-policy:
Version: "2012-10-17"
Statement:
-
Effect: "Allow"
Principal: "*"
Action:
- "execute-api:Invoke"
Resource: "execute-api:/*"


Condition:
StringEquals:
aws:sourceVpce: !Ref APIGW


paths:
/{proxy+}:
x-amazon-apigateway-any-method:
produces:
- application/json
parameters:
- name: proxy
in: path
required: true
type: string
x-amazon-apigateway-integration:
uri:
Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HandleSecurityRouter.Arn}/invocations
httpMethod: POST
type: aws_proxy

但是,如果我在使用 SAM 工具成功部署后查看控制台,则 API 网关未连接到任何 VPC 端点。

任何帮助让这个 VPC 端点连接到我的私有(private) API 网关与 SAM 将不胜感激!

最佳答案

在控制台中制作了我需要的版本并在“API”->Stages->“Stage”->Export 下使用 AWS“Export as Swagger”功能将其转回 YML 后,我发现了一个未记录或很难找到API Gateway swagger 的属性,需要添加该属性以通过 VPC 终端节点将私有(private)网关链接到 VPC。

需要的是你的招摇中的以下几行:

      DefinitionBody:
swagger: 2.0
...
x-amazon-apigateway-endpoint-configuration:
vpcEndpointIds:
- !Ref API-Gateway-ID

关于amazon-web-services - 在 SAM (AWS IAC) 中将私有(private) API 网关连接到 VPC 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60460480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com