写点什么

Amplify 控制台 — 托管全堆栈式无服务器 Web 应用程序

  • 2019-09-19
  • 本文字数:2160 字

    阅读完需:约 7 分钟

AWS Amplify 控制台是一种全堆栈式 Web 应用程序托管服务,让您可以从首选的源代码存储库实施持续部署。Amplify 控制台于 2018 年 11 月在 AWS re:Invent 大会上推出。从那时以来,我们团队持续倾听客户的反馈并快速迭代,发布了多项新功能,下面我们简要回顾一下。


实时缓存失效


Amplify 控制台允许通过内容分发网络 (CDN) 来托管采用无服务器后端的单页 Web 应用程序或静态网站。CDN 是一种分布式的服务器网络,它在位于世界各地的边缘站点缓存文件,从而能够以极低的延迟分发您的 Web 文件资产。


以前,更新 CDN 上的内容需要手动使缓存失效,然后等待 15-20 分钟才能使更改在全球生效。为了频繁进行更新,开发人员找到了多种变通手段,例如在资产标头上设置较低的生存时间 (TTL),这样可以提高更新速度,但对性能却有不利影响。现在,您不再需要在更快部署和更高性能之间左右为难。每次向您的存储库提交代码时,Amplify 控制台都会构建更改并部署到 CDN,并且您可以在浏览器中立即看到。


部署到 Amplify 控制台



在 GitHub 上发布您的项目源代码时,您可以在 Readme 文档中提供一个“部署到 Amplify 控制台”按钮,从而方便其他开发人员构建和部署您的应用程序。单击该按钮将打开 Amplify 控制台,并显示一个部署代码的三步流程。



您可以使用这些示例项目来测试此功能,当然也可以查看文档。向您自己的代码存储库添加按钮十分简单,只需将下面的行添加到 Readme 文档即可(请注意替换 GitHub URL 中的用户名和存储库名称):


[](https://oneclick.amplifyapp.com/button.svg)](https://console.aws.amazon.com/amplify/home#/deploy?repo=https://github.com/username/repository)
复制代码


手动部署


全面实施版本控制是一个不错的想法,包括只有您一个开发者的简单网站。但如果您不想将源代码存储库作为部署的源,也可以通过 Amplify 控制台部署 zip 压缩文件、笔记本电脑上的本地文件夹、Amazon S3 存储桶或任何 HTTPS URL(例如 Dropbox 上的共享存储库)。


在创建新的 Amplify 控制台项目时,选择不使用 Git 提供者部署选项。



然后选择您的源文件(您的笔记本电脑、Amazon S3 或 HTTPS URI)



AWS CloudFormation 集成


开发人员喜爱自动化。代码或基础设施的部署没有不同:您必须确保基础设施的部署自动化、可重复。AWS CloudFormation 允许您通过 YAML 或 JSON 描述在云中自动化创建基础设施。Amplify 控制台为 AWS CloudFormation 增加了三种新的资源类型:


  • AWS::Amplify::App

  • AWS::Amplify::Branch

  • AWS::Amplify::Domain


利用这些资源类型,您可以分别创建新的 Amplify 控制台应用程序,定义 Git 分支以及要使用的 DNS 域名。


AWS CloudFormation 会连接到您的源代码存储库以向其添加 Webhook。您需要提供您的 Github 个人访问令牌以允许执行此操作。本博文提供了所有详细信息。请注意不要将凭证(或 OAuth 令牌)硬编码到 Cloudformation 模板,而应使用参数。


部署多个 Git 分支


我们认为您的 CI/CD 工具必须要适应团队的工作流,而不是相反。Amplify 控制台支持分支模式的部署,让您可以自动部署与特定模式匹配的分支,无需任何额外的配置。模式匹配基于正则表达式。


当您要测试新功能时,一般会在 Git 中创建一个新的分支。Amplify 控制台和 Amplify CLI 现在会检测分支,并且将预置一个独立的后端并为您的无服务器应用程序托管基础设施。


要启用分支检测功能,请单击通用 > 编辑,然后打开自动检测分支:



自定义 HTTP 标头


您可以通过自定义 Amplify 控制台来发送自定义的 HTTP 应答标头。应答标头可以用于调试、安全或信息参考目的。要添加自定义标头,您需要选择应用程序设置 > 编译设置,然后编辑 buildspec。例如,要强制执行 TLS 传输并预防 XSS 攻击,您可以添加如下标头:


customHeaders:        - pattern: '**/*'          headers:                - key: 'Strict-Transport-Security'                        value: 'max-age=31536000; includeSubDomains'                - key: 'X-Frame-Options'                        value: 'X-Frame-Options: SAMEORIGIN'                - key: 'X-XSS-Protection'                        value: 'X-XSS-Protection: 1; mode=block'                - key: 'X-Content-Type-Options'                        value: 'X-Content-Type-Options: nosniff'                - key: 'Content-Security-Policy'                        value: "default-src 'self'"
复制代码


更多详细信息请参阅文档。


自定义编译容器


最后(但绝对最不重要),我们对编译环境也进行了一些更改。Amplify 控制台在后台使用了 AWS CodeBuild。默认的编译容器镜像现在基于 Amazon Linux 2 并且预装了无服务器应用程序模型 (SAM) CLI。如果您因任何原因需要使用自己的编译容器,可以相应配置 Amplify 控制台。选择应用程序设置 > 编译设置:



然后编辑编译镜像设置



容器镜像有几个要求:它必须有 cURL、git、OpenSSH 和(如果您要构建 NodeJS 项目) node 以及 npm。与往常一样,详细信息请参阅文档。


每个新功能都来源于大家的反馈,因此请继续通过提交来告诉我们您关心的方面,下半年及以后预计会有更多的变化。


本文转载自 AWS 博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/amplify-console-hosting-for-fullstack-serverless-web-apps/


2019-09-19 14:051234
用户头像

发布了 1855 篇内容, 共 124.0 次阅读, 收获喜欢 81 次。

关注

评论

发布
暂无评论
发现更多内容

从技术到商业:2021 DEMO CHINA创新中国峰会正式开启

创业邦

如何高效掌控K8s资源变化?K8s Informer实现机制浅析

腾源会

云原生 k8s

阿里独家!GitHub上点击量超百万的「操作系统和计算机网络」PDF震撼开源

Java 程序员 面试 计算机 Alibaba

数字化的田亩里,华为正写一首陶渊明的诗

脑极体

Vite + Vue3 + OpenLayers 同步两个地图基础操作

德育处主任

大前端 Web 地图 vite openlayers

首个RISC-V计算机芯片现身欧洲处理器计划

BeeWorks

redis--数据库实现

en

我的9年开源之路:395 Patch、20+Feature,背后只有努力与热爱

腾源会

腾讯云 开源 虚拟化 Linux内核 kvm

自建开源Cassandra与GaussDB(for Cassandra)性能对比测试报告

华为云数据库小助手

性能分析 GaussDB 华为云数据库 GaussDB(for Cassandra) 开源Cassandra

云信小课堂 | 聊天室内容审核很头疼?3步解决!

网易云信

人工智能 AI 视频

Nebula Graph 源码解读系列 | Vol.01 Nebula Graph Overview

NebulaGraph

中小企业自媒体为何难做:定位不准期望值过高

石头IT视角

如何用时序数据库 CTSDB 与 TARS 结合,解决海量监控数据难题

腾源会

数据库 大数据 开源 TARS CTSDB

【重磅】Apache InLong(incubating) 发布 0.10.0 版本

腾源会

Apache 开源 InLong

残疾人大学生就业难?「低代码」应用,让就业更简单!

优秀

低代码

这本Alibaba“绝密”SpringBoot精髓到底厉害在哪里

Java 程序员 面试 springboot 计算机

2021下半年全新京东商城亿级并发架构设计,不学习你就OUT了!!

Java 程序员 面试 计算机 京东

DPDK分析学习之全网唯一的DPDK教学课程丨虚拟化高性能专家之路

Linux服务器开发

网络协议 虚拟化 Linux服务器开发 DPDK 高性能网络

工业互联网的两种极端想法和两点反思

iNeuOS工业互联网操作系统

大数据 物联网 智能制造 iNeuOS工业互联网

一朵云、一张网、一体化 ——GRTN 打造最佳流媒体场景实践

阿里云CloudImagine

云计算 阿里云 边缘计算 视频云 流媒体传输

被 Docker 日志坑惨了

AlwaysBeta

Docker 容器 运维

丧心病狂!阿里内部Spring Cloud高薪笔记流失,GitHub夜获星百万

Java 程序员 面试 计算机 阿里巴巴‘

直播报名 | 超低延时直播架构解析

百度开发者中心

最佳实践 方法论 活动 直播

如何做竞品分析?

石云升

产品经理 产品思维 9月日更 产品分析

与顶级互联网公司技术大佬面对面聊聊RocketMQ吧!

阿里巴巴中间件

阿里云 开源 RocketMQ 云原生 中间件

Micro Focus 发布年度安全运营报告,洞察后疫情时代企业安全运营新趋势

支持 10 亿日流量的基础设施:当 Apahce APISIX 遇上腾讯

腾源会

腾讯云 开源 APISIX OTeam

Webrtc ICE 框架

webrtc developer

WebRTC p2p ICE

大众汽车迟到的软件优先思维

SOA开发者

T-BOX专业分享

SOA开发者

Alibaba竟流出全套的Java核心技术手册,看过的人都说好!

Java 程序员 架构 面试 计算机

Amplify 控制台 — 托管全堆栈式无服务器 Web 应用程序_大前端_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章