阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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

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

关注

评论

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

Apifox 2月版本更新:常用参数优化,自动化测试持续优化

Apifox

开发工具 Apifox 测试工具

我是如何参与 Apache Calcite 社区并成为 Committer 的

LakeShen

大数据 开源 Apache Calcite apache 社区 Calcite

苹果上架App被拒绝的原因

第40期 | GPTSecurity周报

云起无垠

Databend 开源周报第 133 期

Databend

多租户篇 | MatrixOne与MySQL全面对比

MatrixOrigin

数据库 分布式 云原生

教不会你算我输系列 | 手把手教你HarmonyOS应用开发

百度Geek说

HarmonyOS 鸿蒙开发 ArkTS

如何确保团队协作中,项目Node版本的一致性?

秃头小帅oi

node.js 团队协作 低代码

Stable Diffusion解析:探寻AI绘画背后的科技神秘

极限实验室

GAN model AI绘画 Diffusion Stable Diffusion

等保测评与合规性检查定义以及区别简单了解

行云管家

等级保护 等保测评 合规性检查

深圳企业要知道的:堡垒机就选行云管家!

行云管家

网络安全 堡垒机

低代码平台运营效果评估模型:AICE

鲸品堂

低代码 企业号 2 月 PK 榜

软件测试学习笔记丨Docker容器镜像制作

测试人

软件测试 测试开发

终于有篇文章把后管权限系统设计讲清楚了

越长大越悲伤

Java spring 权限 权限控制 后台管理

推荐10款C#开源好用的Windows软件

EquatorCoco

C# 开源 软件开发 windows

干货 | 如何通过度量研发效能,多角度洞察百人敏捷团队的价值交付?

思码逸研发效能

怎样建立健康的绩效管理体系?聊聊专家看到的误区与疑问

思码逸研发效能

如何评价OpenAi发布的视频生成模型Sora?

算法的秘密

分享搭建鸿蒙应用的几种方式

Geek_2305a8

深入解析 Java 面向对象编程与类属性应用

伤感汤姆布利柏

Java js java

获奖!科技进步奖一等奖!成果贡献奖金奖!

天翼云开发者社区

云计算 云服务 云平台

小程序框架(概念、工作原理、发展及应用)

天津汇柏科技有限公司

小程序开发 定制软件开发 软件开发定制

NFT支持的ICO开发:开创众筹的未来

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

产品更新 | 如何利用思码逸DevInsight 度量代码评审效率、质量与瓶颈?

思码逸研发效能

AI与人类联手,智能排序人类决策:RLHF标注工具打造协同标注新纪元,重塑AI训练体验

汀丶人工智能

大模型 智能标注 RLHF

Spring Security权限控制框架使用指南

越长大越悲伤

Java Spring Boot spring security

助力春节精准营销,火山引擎ByteHouse加速数据分析效率

字节跳动数据平台

数据库 大数据 云原生 数仓 企业号 2 月 PK 榜

站在大模型加速带,重新审视办公提效

飞桨PaddlePaddle

百度 百度飞桨 AI应用 文心大模型 飞桨星河社区

大数据时代来了

小齐写代码

CertiK CSO Dr. Kang Li 确认出席Hack .Summit() 香港区块链盛会

TechubNews

智能护航:人工智能引领软件测试新革命

测试人

人工智能 软件测试

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