本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
App Runner 入门
AWS App Runner 是一项 AWS 服务,它提供了一种快速、简单且经济实惠的方式,可将现有的容器镜像或源代码直接转换为中正在运行的 Web 服务 AWS Cloud。
本教程介绍如何使用 AWS App Runner 将应用程序部署到 App Runner 服务。它演示了配置源代码和部署、服务版本和服务运行时。它还展示了如何部署代码版本、更改配置和查看日志。最后,本教程展示了如何清理您在遵循本教程过程时创建的资源。
先决条件
在开始本教程之前,请务必执行以下操作:
-
完成中的设置步骤为 App Runner 进行设置。
-
决定您是要使用 GitHub 存储库还是 Bitbucket 存储库。
-
要使用 Bitbucket,请先创建一个 Bitbucket
账户(如果你还没有)。如果你不熟悉 Bitbucket,请参阅 Bitbucket Cl oud 文档中的 Bitbuck et 入门 。 -
要使用 GitHub,请创建一个GitHub
帐户(如果您还没有)。如果您不熟悉 GitHub,请参阅GitHub文档 GitHub中的入门 。 注意
您可以通过您的账户创建与多个存储库提供商的连接。因此,如果您想同时从 Bitbucket 存储库 GitHub和 Bitbucket 存储库进行部署,则可以重复此过程。下次通过创建新的 App Runner 服务并为其他存储库提供商创建新的账户连接。
-
-
在您的仓库提供商账户中创建仓库。本教程使用存储库名称
python-hello
。使用以下示例中指定的名称和内容在存储库的根目录中创建文件。
例 requirements.txt
pyramid==2.0
例 server.py
from wsgiref.simple_server import make_server from pyramid.config import Configurator from pyramid.response import Response import os def hello_world(request): name = os.environ.get('NAME') if name == None or len(name) == 0: name = "world" message = "Hello, " + name + "!\n" return Response(message) if __name__ == '__main__': port = int(os.environ.get("PORT")) with Configurator() as config: config.add_route('hello', '/') config.add_view(hello_world, route_name='hello') app = config.make_wsgi_app() server = make_server('0.0.0.0', port, app) server.serve_forever()
步骤 1:创建 App Runner 服务
在此步骤中,您将基于您在 GitHub 或 Bitbucket 上创建的示例源代码存储库创建 App Runner 服务。先决条件该示例包含一个简单的 Python 网站。以下是创建服务的主要步骤:
-
配置您的源代码。
-
配置源部署。
-
配置应用程序构建。
-
配置您的服务。
-
查看并确认。
下图概述了创建 App Runner 服务的步骤:
基于源代码存储库创建 App Runner 服务
-
配置您的源代码。
-
打开 App Runner 控制台
,然后在 “区域” 列表中,选择您的 AWS 区域。 -
如果还 AWS 账户 没有任何 App Runner 服务,则会显示主机主页。选择创建 App Runner 服务。
如果 AWS 账户 已有服务,则会显示包含您的服务列表的 “服务” 页面。选择 Create service。
-
在源代码和部署页面的源代码部分中,对于存储库类型,选择源代码存储库。
-
选择提供商类型。选择其中一个GitHub或 Bitbucket。
-
接下来选择新增。如果出现提示,请提供您的 GitHub 或 Bitbucket 凭证。
-
根据您之前选择的提供者类型选择下一组步骤。
注意
以下为 GitHub 账户安装 AWS 连接器的 GitHub 步骤是一次性步骤。您可以重复使用该连接,根据此账户中的存储库创建多个 App Runner 服务。当您已有连接时,请选择该连接并跳至存储库选择。
这同样适用于您的 Bitbucket 账户的 AWS 连接器。如果您同时使用两者 GitHub 和 Bitbucket 作为 App Runner 服务的源代码存储库,则需要为每个提供商安装一个 AWS 连接器。然后,您可以重复使用每个连接器来创建更多 App Runner 服务。
-
对于 GitHub,请按照以下步骤操作。
-
在下一个屏幕上,输入连接名称。
-
如果这是您第一次在 App Runner 中使用 GitHub ,请选择安装另一个。
-
在 “AWS 连接器 GitHub” 对话框中,如果出现提示,请选择您的 GitHub 帐户名。
-
如果系统提示授权 AWS 连接器 GitHub,请选择授权 AWS 连接。
-
在 “安装 AWS 连接器 GitHub” 对话框中,选择 “安装”。
您的账户名称显示为选定的GitHub 账户/组织。现在,您可以在账户中选择存储库。
-
在 “存储库” 中,选择您创建的示例存储库
python-hello
。对于 Bran ch,选择仓库的默认分支名称(例如,main)。 -
将源目录保留为默认值。该目录默认为存储库根目录。在前面的 “先决条件” 步骤中,您已将源代码存储在存储库根目录中。
-
-
对于 Bitbucket,请按照以下步骤操作。
-
在下一个屏幕上,输入连接名称。
-
如果这是您第一次在 App Runner 中使用 Bitbucket,请选择安装另一个。
-
在AWS CodeStar 请求访问权限对话框中,您可以选择您的工作空间并授予对 Bitbucket 集成的访问权限。 AWS CodeStar 选择您的工作空间,然后选择 “授予访问权限”。
-
接下来,您将被重定向到 AWS 控制台。确认 Bitbucket 应用程序已设置为正确的 Bitbucket 工作空间,然后选择 “下一步”。
-
在 “存储库” 中,选择您创建的示例存储库
python-hello
。对于 Bran ch,选择仓库的默认分支名称(例如,main)。 -
将源目录保留为默认值。该目录默认为存储库根目录。在前面的 “先决条件” 步骤中,您已将源代码存储在存储库根目录中。
-
-
-
-
配置您的部署:在 “部署设置” 部分中,选择 “自动”,然后选择 “下一步”。
注意
通过自动部署,每次向存储库源目录提交的新内容都会自动部署服务的新版本。
-
配置应用程序构建。
-
在 “配置构建” 页面上,对于 “配置文件”,选择 “在此处配置所有设置”。
-
提供以下编译设置:
-
运行时 — 选择 Python 3.
-
生成命令-输入
pip install -r requirements.txt
。 -
启动命令-输入
python server.py
。 -
端口-输入
8080
。
-
-
选择下一步。
注意
Python 3 运行时使用基本的 Python 3 镜像和你的示例 Python 代码构建 Docker 镜像。然后,它会启动一项运行该镜像的容器实例的服务。
-
-
配置您的服务。
-
在配置服务页面的服务设置部分,输入服务名称。
-
在 “环境变量” 下,选择 “添加环境变量”。为环境变量提供以下值。
-
来源-选择纯文本
-
环境变量名称 —
NAME
-
环境变量值-任意名称(例如,您的名字)。
注意
示例应用程序读取您在此环境变量中设置的名称,并在其网页上显示该名称。
-
-
选择下一步。
-
-
在 “查看并创建” 页面上,验证您输入的所有详细信息,然后选择 “创建并部署”。
如果成功创建了服务,控制台将显示服务控制面板,其中包含新服务的服务概述。
-
验证您的服务是否正在运行。
-
在服务仪表板页面上,等到服务状态变为 “正在运行”。
-
选择默认域名值,即您的服务网站的网址。
注意
为了增强 App Runner 应用程序的安全性,*.awsapprunner.com 域已在公共后缀列表 (PSL) 中注册。
为了进一步提高安全性,如果您需要在 App Runner 应用程序的默认域名中设置敏感 Cookie,我们建议您使用带 __Host-
前缀的 Cookie。这将有助于保护您的域,防范跨站点请求伪造 (CSRF) 攻击。要了解更多信息,请参阅 Mozilla 开发者网络中的 Set-Cookie页面。 屏幕上会显示一个网页:你好,
你的名字
!
-
第 2 步:更改您的服务代码
在此步骤中,您将对存储库源目录中的代码进行更改。App Runner CI/CD 功能会自动生成变更并将其部署到您的服务。
更改您的服务代码
-
导航到您的示例存储库。
-
编辑名为的文件
server.py
。 -
在分配给变量的表达式中
message
,将文本更改Hello
为Good morning
。 -
保存您的更改并将其提交到存储库。
-
以下步骤说明了更改 GitHub 存储库中的服务代码。
-
导航到您的示例 GitHub 存储库。
-
选择文件名
server.py
以导航到该文件。 -
选择 “编辑此文件”(铅笔图标)。
-
在分配给变量的表达式中
message
,将文本更改Hello
为Good morning
。 -
选择提交更改。
-
-
开始为你的 App Runner 服务部署新的提交。在服务控制面板页面上,服务状态更改为操作进行中。
等待部署结束。在服务仪表板页面上,服务状态应更改回正在运行。
-
验证部署是否成功:刷新显示服务网页的浏览器选项卡。
页面现在显示修改后的消息:早上好,
你的名字
!
步骤 3:更改配置
在此步骤中,您将对NAME
环境变量值进行更改,以演示服务配置的更改。
更改环境变量值
-
打开 App Runner 控制台
,然后在 “区域” 列表中,选择您的 AWS 区域。 -
在导航窗格中,选择服务,然后选择您的 App Runner 服务。
控制台显示带有服务概述的服务仪表板。
-
在服务仪表板页面上,选择配置选项卡。
控制台分几个部分显示您的服务配置设置。
-
在 “配置服务” 部分中,选择编辑。
-
对于带有密钥的环境变量
NAME
,请将该值更改为其他名称。 -
选择 Apply changes。
App Runner 启动更新过程。在服务控制面板页面上,服务状态更改为操作进行中。
-
等待更新结束。在服务仪表板页面上,服务状态应更改回正在运行。
-
验证更新是否成功:刷新显示服务网页的浏览器选项卡。
页面现在显示修改后的名称:早上好,
新名字
!
步骤 4:查看服务日志
在此步骤中,您将使用 App Runner 控制台来查看 App Runner 服务的日志。App Runner 将日志流式传输到 Amazon CloudWatch CloudWatch 日志(日志),并将其显示在服务的控制面板上。有关 App Runner 日志的信息,请参阅查看流向日志的 App Runner CloudWatch 日志。
查看服务日志
-
打开 App Runner 控制台
,然后在 “区域” 列表中,选择您的 AWS 区域。 -
在导航窗格中,选择服务,然后选择您的 App Runner 服务。
控制台显示带有服务概述的服务仪表板。
-
在服务仪表板页面上,选择日志选项卡。
控制台分几个部分显示几种类型的日志:
-
事件日志-App Runner 服务生命周期中的活动。控制台显示最新事件。
-
部署日志-源存储库部署到您的 App Runner 服务。控制台显示每个部署的单独日志流。
-
应用程序日志-部署到您的 App Runner 服务的 Web 应用程序的输出。控制台将所有正在运行的实例的输出合并到一个日志流中。
-
-
要查找特定的部署,请输入搜索词,缩小部署日志列表的范围。您可以搜索表格中显示的任何值。
-
要查看日志内容,请选择查看完整日志(事件日志)或日志流名称(部署和应用程序日志)。
-
选择 “下载” 以下载日志。对于部署日志流,请先选择一个日志流。
-
选择查看 CloudWatch以打开 CloudWatch 控制台,并使用其全部功能浏览您的 App Runner 服务日志。对于部署日志流,请先选择一个日志流。
注意
如果您想查看特定实例的应用程序日志,而不是合并的应用程序日志,则 CloudWatch 控制台特别有用。
第 5 步:清理
现在,您已经学习了如何创建 App Runner 服务、查看日志和进行一些更改。在此步骤中,您将删除该服务以删除不再需要的资源。
删除您的服务
-
在服务仪表板页面上,选择操作,然后选择删除服务。
-
在确认对话框中,输入所需的文本,然后选择删除。
结果:控制台导航到 “服务” 页面。您刚刚删除的服务显示的状态为 “删除”。不久之后,它从列表中消失了。
还可以考虑删除您在本教程中创建的 GitHub 和 Bitbucket 连接。有关更多信息,请参阅 管理 App Runner 连接。
接下来做什么
现在,您已经部署了第一个 App Runner 服务,请在以下主题中了解更多信息:
-
App Runner 架构和概念— 与 App Runner 相关的架构、主要概念和 AWS 资源。
-
为 App Runner 开发应用程序代码— 开发或迁移要部署到 App Runner 的应用程序代码时应了解的事项。
-
使用 App Runner 控制台— 使用 App Runner 控制台管理和监控您的服务。
-
管理你的 App Runner 服务— 管理 App Runner 服务的生命周期。
-
App Runner 服务的可观察性— 通过监控指标、读取日志、处理事件、跟踪服务操作调用以及跟踪 HTTP 调用等应用程序事件,了解您的 App Runner 服务操作。
-
App Runner 配置文件— 一种基于配置的方法,用于为 App Runner 服务的构建和运行时行为指定选项。
-
App Runner API— 使用 App Runner 应用程序编程接口 (API) 创建、读取、更新和删除 App Runner 资源。
-
应用程序运行器中的安全性— 在使用 App Runner 和其他服务时,您可以通过不同的方式来确保云安全。 AWS