问题描述: 在使用Amazon HTTP API网关时,通过VPC链路访问API时出现问题。
解决方法:
import boto3
def create_route(vpc_id, api_gateway_id, destination_cidr_block):
ec2 = boto3.client('ec2')
response = ec2.create_route(
DestinationCidrBlock=destination_cidr_block,
GatewayId=api_gateway_id,
RouteTableId=vpc_route_table_id,
)
print(response)
vpc_id = 'vpc-12345678' # 替换为你的VPC ID
api_gateway_id = 'api-gateway-id' # 替换为你的API网关ID
destination_cidr_block = '0.0.0.0/0' # 替换为你的目标CIDR块
create_route(vpc_id, api_gateway_id, destination_cidr_block)
import boto3
def update_access_policy(api_gateway_id, vpc_id):
apigateway = boto3.client('apigateway')
response = apigateway.update_gateway_response(
restApiId=api_gateway_id,
patchOperations=[
{
'op': 'replace',
'path': '/policy',
'value': '{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": "*","Action": "execute-api:Invoke","Resource": "execute-api:/*","Condition": {"IpAddress": {"aws:SourceIp": ["' + vpc_id + '/16"]}}}]}' # 替换为你的VPC CIDR块
}
]
)
print(response)
api_gateway_id = 'api-gateway-id' # 替换为你的API网关ID
vpc_id = 'vpc-12345678' # 替换为你的VPC ID
update_access_policy(api_gateway_id, vpc_id)
通过以上步骤,你可以确保API网关通过VPC链路正常工作。如果问题仍然存在,建议查阅Amazon API网关和VPC的官方文档,以获取更多帮助和支持。
上一篇:Amazon Glue - 创建单个Parquet文件
下一篇:Amazon Inspector、Trusted Advisor、CloudWatch、Personal Health Dashboard和AWS CloudTrail之间有什么区别?