我使用serverless框架来部署angular-universal应用程序(aws lambda + API网关)。每次我从不同的PC运行部署或定义一个新阶段时,serverless都会自动在aws中创建一个新的API网关项目。
# serverless.yml
# generated by @ng-toolkit/serverless
service: web-app
plugins:
- serverless-apigw-binary
provider:
name: aws
runtime: nodejs8.10
memorySize: 512
timeout: 20
apiName: ssr-web-app
package:
exclude:
- src/**
- node_modules/**
- firebug-lite/**
- e2e/**
- coverage/**
- '!node_modules/aws-serverless-express/**'
- '!node_modules/binary-case/**'
- '!node_modules/type-is/**'
- '!node_modules/media-typer/**'
- '!node_modules/mime-types/**'
- '!node_modules/mime-db/**'
custom:
apigwBinary:
types:
- '*/*'
functions:
api:
handler: lambda.universal
events:
- http: ANY {proxy+}
- http: ANY /我希望每次运行部署时,serverless都会使用相同的特定gateway API项目,在相同定义的项目下创建新的阶段。如何定义对现有gateway API项目的引用(id?)在我的serverless.yml
-编辑-我尝试将以下内容添加到provider部分:
apiGateway:
restApiId: xxxxxxxxxx
restApiRootResourceId: yyyyyyyyyy 并收到错误“发生错误: ApiGatewayResourceProxyVar -具有相同父资源的另一个资源已具有此名称:{proxy+}”
发布于 2019-11-11 09:34:27
问得好!
为了共享现有的API Gateway,您需要在serverless.yml文件中声明相关的restApiId,以及restApiRootResourceId。
您可以在docs, here中阅读更多内容。您也可以遵循此excellent blog post
https://stackoverflow.com/questions/58790372
复制相似问题