当使用AWS CDK创建API Gateway时,可能会遇到 “BasePathMapping already exists” 错误。 这通常表示在尝试创建BasePathMapping时已经存在同名的映射。为了解决此问题,您需要进行以下步骤:
const myApi =newapigateway.RestApi(this, 'my-api', {
restApiName: 'My API',
});
const basePathMapping = myApi.root.addResource("my-resource").addResource("v1").addResource("pets").addResource("{petId}");
const deployment = newapigateway.Deployment(this, "my-api-deployment", {
api: myApi,
});
const stage = newapigateway.Stage(this, "prod", {
deployment,
stageName: "prod",
});
newapigateway.BasePathMapping(this, 'my-base-path-mapping', {
domainName: props.domainName,
restApi: myApi,
basePath: props.basePath,
stage,
});
$cdk destroy my-stack
$cdk deploy my-stack
这个过程中,您重新创建了API和BasePathMappings,并将现有的BasePathMapping删除了。现在,您应该再次尝试部署AWS CDK stack并且不再会出现 'BasePathMapping already exists' 错误。