问题描述
我遵循了这个:
- https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-apis.html
- https://aws.amazon.com/blogs/compute/introducing-amazon-api-gateway-private-endpoints/ 教程
到发球台以在我的 REST API 端点之间创建私有链接。
基本上,我已经完成的步骤:
-
将(以前可用的)Edge API 转换为私有 API(通过 AWS API Gateway 控制台)
-
使用此模板创建了一个具有 2 个公有子网和 2 个私有子网的 VPC:https://s3.amazonaws.com/computeblog-us-east-1/apigateway-private-endpoints/BaseVPC.template
-
确认已在 VPC 上启用 DNS 命名和 DNS 解析。
-
创建了一个连接到上面创建的 VPC 的 VPC 终端节点。私有 DNS 已启用。
-
将此资源策略添加到 API,然后重新部署:
{
"Version": "2012-10-17","Statement": [
{
"Effect": "Deny","Principal": "*","Action": "execute-api:Invoke","Resource": "arn:aws:execute-api:us-west-2:{aws-account-id}:{rest-api-id}/*/*/*","Condition": {
"StringNotEquals": {
"aws:sourceVpce": "vpce-{endpoint}"
}
}
},{
"Effect": "Allow","Resource": "arn:aws:execute-api:us-west-2:{aws-account-id}:{rest-api-id}/*/*/*"
}
]
}
然后我使用由 AWS 开发工具包创建的 Java 客户端:https://aws.amazon.com/sdk-for-java/ 来调用 API,并遇到此错误:
com.amazonaws.SdkClientException: Unable to execute HTTP request: {rest-api-id}.execute-api.us-west-2.amazonaws.com
...
Caused by: java.net.UnknownHostException: {rest-api-id}.execute-api.us-west-2.amazonaws.com
当我使用 Postman 时也发生了同样的问题。
如 https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-private-api-test-invoke-url.html 和 API Gateway 控制台所示,如果我启用了私有 DNS,我应该能够使用 URL 调用 API。
我是不是误会了什么?能够成功调用 API 的正确方法是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)