使用AWS CDK的apigatewayv2模块创建API网关时,可能会遇到找不到MethodResponse的问题。这是由于apigatewayv2模块没有默认包含MethodResponse的原因。
要解决此问题,需要使用apigatewayv2模块的addIntegrationResponse方法手动添加MethodResponse。以下是示例代码:
from aws_cdk import (
aws_apigatewayv2 as apigw,
aws_apigatewayv2_integrations as apigw_integrations,
core,
)
class MyStack(core.Stack):
def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
# 创建API网关
api = apigw.HttpApi(
self,
"MyApi",
default_integration=apigw_integrations.LambdaProxyIntegration(
handler=my_lambda_function
),
)
# 添加MethodResponse
api.add_integration_response(
"2XX",
apigw.IntegrationResponse(
status_code="200",
response_parameters={
"method.response.header.Access-Control-Allow-Origin": "'*'"
},
),
)
在这个示例代码中,我们手动添加了一个MethodResponse,使得API网关可以成功创建。