amazon-web-services - 一次通过无服务器框架部署 Lambda + API-gateway + CloudFront
问题描述
我想通过Lambda
++API-gateway
部署。CloudFront
serverless framework
Lambda
并且API-gateway
可以通过定义function
inserverless.yml
和 for CloudFront
I define来部署resources
。
但是,对于CloudFront
,我必须定义DomainName
应该用API-gateway
尚未部署的端点填充的属性。
Resources:
ApiDistribution:
Type: AWS::CloudFront::Distribution
Properties:
DistributionConfig:
Origins:
- Id: ApiGateway
DomainName: "api-gateway endpoint"
结果,我必须按照步骤操作。
- 部署
Lambda
+API-gateway
。 - 检查
API-gateway
端点。 - 将
CloudFront
资源添加到指向端点serverless.yml
的属性中。DominName
API-gateway
- 部署
CloudFront
.
有没有办法一次部署所有(CloudFront
++ API-gateway
)Lambda
?(但我不想给API-gateway
DNS)
解决方案
您可以使用serverless-api-cloudfront
它自动创建正确配置的 AWS CloudFront 分配,将流量路由到 API Gateway。要使用它,很简单,您必须使用 安装它npm i --save-dev serverless-api-cloudfront
,然后您必须在serverless.yml
文件中添加:
plugins:
- serverless-api-cloudfront
custom:
apiCloudFront:
domain: my-custom-domain.com
certificate: arn:aws:acm:us-east-1:000000000000:certificate/00000000-1111-2222-3333-444444444444
waf: 00000000-0000-0000-0000-000000000000
compress: true
logging:
bucket: my-bucket.s3.amazonaws.com
prefix: my-prefix
cookies: none
headers:
- x-api-key
querystring:
- page
- per_page
如果你想了解它是如何工作的,以及其他可能的配置,你可以访问他们的Github页面。
推荐阅读
- javascript - JS:作为 SDK 一部分的可选记录器,可以打开/关闭
- python - 如何从单击另一个按钮中退出按钮事件
- postgresql - PostgreSQL:无法写入文件“pg_wal/xlogtemp 由于 autovacuum 没有剩余空间设备
- django - 如何在 cpanel 中集成 Django rest api?
- python - 为什么我在 Python 中不断收到 nt4stopc 错误?
- javascript - 如何正确存储 Firebase 实时数据库中的数据并在检索到数据后使用 React 进行渲染?
- string - 将一个字符串交错到另一个字符串所需的最小子序列数
- awk - 如何 grep/sed/awk/print 行中包含两个单词或最多单词
- angular - 如何通过服务中的 renderer2 将 eventlistener 应用到通过指令异步构建的 html
- java - 如何比较Java中的两种方法