HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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:051189
用户头像

发布了 1848 篇内容, 共 113.9 次阅读, 收获喜欢 78 次。

关注

评论

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

seq命令

linux大本营

Shell 脚本

手语识别:解锁语言交流的新时代

来自四九城儿

为开发者搭建创新舞台 OpenHarmony创新赛正式启动

最新动态

浅析低代码开发的典型应用构建场景

力软低代码开发平台

编程中最难的就是命名?这几招教你快速上手

阿里巴巴云原生

阿里云 编程 云原生

【源码分析】【seata】at模式分布式事务-tm实现逻辑

如果晴天

源码分析 分布式事务 seata Seata框架

发送GET请求时,浏览器请求的参数是指什么

linux大本营

HTTP url GET

常用工具

流火

Go 语言快速入门指南:GET 和 POST 方法

宇宙之一粟

Go HTTP post GET 三周年连更

DevOps 与研发效能资深技术专家张乐:研发效能的升维思考与降维执行

万事ONES

使用Plist编辑器——简单入门指南

【FAQ】统一扫码服务常见问题及解答

HarmonyOS SDK

HMS Core

没有主机跑开源软件?速来牧云助手免费领一台!

百川云开发者

云计算 开源 云主机 教程 免费

logrotate怎么使用

linux大本营

Linux 日志管理

Apple 的 plist 编辑器入门指南:基础操作与高级功能详解

雪奈椰子

C语言system函数判断返回错误

linux大本营

C语言

qemu怎么用

linux大本营

qemu

终于有人把动态规划、冒泡排序、二叉树、链表、栈全部讲清楚了

收到请回复

程序员 java

从零学习SDK(9)SDK的局限

MobTech袤博科技

如何通过C#/VB.NET代码将PowerPoint转换为HTML

在下毛毛雨

html PowerPoint 文档转换

世优科技AI数字人产品“世优BOTA”发布!全面提升AI虚拟员工能力

联营汇聚

FBEC大会 | 瑞云科技 CTO 赵志杰:元宇宙时代的基础设施——实时云渲染

3DCAT实时渲染

实时渲染 实时云渲染 实时渲染云

九层天塔DApp合约系统开发搭建

薇電13242772558

NFT

有道CEO周枫:当我们谈论大模型时,应该关注哪些新能力?

有道技术团队

Rust、Go 和 Swift 在性能和并发性方面有何差异?

非凸科技

Go swift 性能 编程语言 高并发

Logrotate正则匹配文件名

linux大本营

正则表达式 Linux

2023云数据库技术沙龙MySQL x ClickHouse专场成功举办

NineData

MySQL 腾讯云 阿里云 云数据库 技术沙龙

Apache Flink ML 2.2.0 发布公告

Apache Flink

大数据 flink 实时计算

文本搜索工具ack与grep

坚果

Linux 三周年连更

构建数据中台——数据只有被使用起来,才能创造价值

引迈信息

数据库 数据中台 低代码 JNPF 数字化、操作系统、中台

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