“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

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

发布了 1825 篇内容, 共 89.6 次阅读, 收获喜欢 73 次。

关注

评论

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

MyBatis详解(二)(1),轻松拿到了阿里Java高级开发工程师的offer

Java 程序员 后端

MyCat:第四章:Mycat中的概念,linux内核编译教程

Java 程序员 后端

MySQL 5,java架构师成长直通车

Java 程序员 后端

MongoDB :第六章:Java程序操作MongoDB,mysql复合索引面试题

Java 程序员 后端

Myabtis源码分析六-代理对象Mapper的创建流程分析,死锁全详解,一文带你搞定

Java 程序员 后端

MySQL 数据库开发入门(四),java高薪训练营百度网盘

Java 程序员 后端

mybatis常用注解(绝对经典),java程序设计教程张延军课后答案

Java 程序员 后端

MySQL 事务隔离级别,java面试常问的设计模式

Java 程序员 后端

markdown编辑器的使用教程,Java成长路线图

Java 程序员 后端

Maven相关知识点整理,java基础语法的格式

Java 程序员 后端

MySQL入门篇,java三层架构登录功能实现

Java 程序员 后端

Linux系统:第十章:服务器环境搭建,附Java面经

Java 程序员 后端

Mybatis学习笔记--Mybatis实现CRUD,springboot注解面试题

Java 程序员 后端

MyBatis详解(一),实战java高并发程序设计

Java 程序员 后端

MyBatis详解(二),java开发岗高频面试题全解析祖国的花朵

Java 程序员 后端

MyCat教程【分库分表】,java教程pdf百度网盘

Java 程序员 后端

Maven的核心概念,java面试高频知识点

Java 程序员 后端

Mybatis一二级缓存实现原理与使用指南,java后端技术梳理

Java 程序员 后端

MyBatis的jdbcType和javaType详解,spring框架入门教程

Java 程序员 后端

linux安装oracle XE,详解Java架构进阶面试题

Java 程序员 后端

MyBatis(四):参数处理器,linux运维架构师

Java 程序员 后端

mybatis-plus使用教程,java面试题基础篇

Java 程序员 后端

MySQL 千万数据量深分页优化,mybatis从入门到精通pdf

Java 程序员 后端

MySQL数据库--几种数据迁移的方法详解都在这了!看完必懂

Java 程序员 后端

Mybatis 传参的各种姿势,看这一篇就足够,java使用教程下载

Java 程序员 后端

mybatis-plus代码生成器,一键生成代码,springcloud教程百度云

Java 程序员 后端

Mybatis Generator最完整配置详解,Java面试

Java 程序员 后端

mybatis开发要点-insert主键ID获取和多参数传递,mybatis原理详解

Java 程序员 后端

MyBatis详解:spring和mybatis整合,linux视频格式转换

Java 程序员 后端

Linux系统:第十一章:常用命令,华为java面试面经

Java 程序员 后端

Log4j使用指南,java入门视频教程

Java 程序员 后端

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