Bla*_*ise 19 amazon-web-services aws-lambda aws-api-gateway serverless-framework
Serverless-1.0.0-rc.1支持部署可通过AWS API Gateway访问的API.
问题:我需要通过带有SSL证书的自定义域而不是随机分配的(URL https://qwertylgbtqert.execute-api....
)来公开部署的API 吗?
可以从内部serverless.yml
或无服务器框架完成吗?
这是我简单的服务serverless.yml
定义:
service: my-service
provider:
name: aws
runtime: nodejs4.3
functions:
generate:
handler: handler.generate
events:
- http:
method: get
path: url
cors: true
Run Code Online (Sandbox Code Playgroud)
有一个问题与此有关:答案在这里,但没有提供适用的答案.特别是如何从serverless.yml
自身内部分配自定义域.
它认为是否有可能创建AWS :: Route53资源并利用它,但我不知道如何在无服务器中执行此操作.
doo*_*uck 19
您需要先创建自定义域并上载证书.这不应该是此代码或您部署此软件的一部分.
拥有自定义域后,您需要考虑CloudFormation.
与无服务器框架中的所有其他内容一样; 您可以利用CloudFormation模板管理AWS中的资源.
因此,您的问题就变成了如何将您的API网关添加到CloudFormation中的自定义域(提示:如果您搜索CloudFormation而不是无服务器框架,那么Google上有更多帮助)?通过AWS::ApiGateway::BasePathMapping
在CloudFormation中创建一个答案.
这在您的serverless.yml
文件的资源中完成.像这样例如:
resources:
Resources:
pathmapping:
Type: AWS::ApiGateway::BasePathMapping
Properties:
BasePath: oauth2
DomainName: ${self:vars.domainName}
RestApiId:
Ref: ApiGatewayRestApi
Stage: ${self:vars.stage}
Run Code Online (Sandbox Code Playgroud)
这需要你有变量domainName
,并stageName
在使用阶段serverless.env.yml文件.
编辑:对于rc1之前的无服务器框架1版本,您必须添加DependsOn: IamPolicyLambda
到路径映射资源.这修复了:https://github.com/serverless/serverless/pull/1783
在rc1之前你应该使用RestApiApigEvent
而不是ApiGatewayRestApi
归档时间: |
|
查看次数: |
4711 次 |
最近记录: |