App Runner 入门 - AWS App Runner

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

App Runner 入门

AWS App Runner 是一项 AWS 服务,它提供了一种快速、简单且经济实惠的方式,可将现有的容器镜像或源代码直接转换为中正在运行的 Web 服务 AWS Cloud。

本教程介绍如何使用 AWS App Runner 将应用程序部署到 App Runner 服务。它演示了配置源代码和部署、服务版本和服务运行时。它还展示了如何部署代码版本、更改配置和查看日志。最后,本教程展示了如何清理您在遵循本教程过程时创建的资源。

先决条件

在开始本教程之前,请务必执行以下操作:

  1. 完成中的设置步骤为 App Runner 进行设置

  2. 决定您是要使用 GitHub 存储库还是 Bitbucket 存储库。

    • 要使用 Bitbucket,请先创建一个 Bitbucket 账户(如果你还没有)。如果你不熟悉 Bitbucket,请参阅 Bitbucket Cl oud 文档中的 Bitbuck et 入门

    • 要使用 GitHub,请创建一个GitHub帐户(如果您还没有)。如果您不熟悉 GitHub,请参阅GitHub文档 GitHub中的入门

      注意

      您可以通过您的账户创建与多个存储库提供商的连接。因此,如果您想同时从 Bitbucket 存储库 GitHub和 Bitbucket 存储库进行部署,则可以重复此过程。下次通过创建新的 App Runner 服务并为其他存储库提供商创建新的账户连接。

  3. 在您的仓库提供商账户中创建仓库。本教程使用存储库名称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 网站。以下是创建服务的主要步骤:

  1. 配置您的源代码。

  2. 配置源部署。

  3. 配置应用程序构建。

  4. 配置您的服务。

  5. 查看并确认。

下图概述了创建 App Runner 服务的步骤:

App Runner 服务创建工作流程图
基于源代码存储库创建 App Runner 服务
  1. 配置您的源代码。

    1. 打开 App Runner 控制台,然后在 “区域” 列表中,选择您的 AWS 区域。

    2. 如果还 AWS 账户 没有任何 App Runner 服务,则会显示主机主页。选择创建 App Runner 服务

      显示 “创建服务” 按钮的 App Runner 控制台主页

      如果 AWS 账户 已有服务,则会显示包含您的服务列表的 “服务” 页面。选择 Create service

      App Runner 控制台服务页面
    3. 源代码和部署页面的代码部分中,对于存储库类型,选择源代码存储库

    4. 选择提供商类型。选择其中一个GitHubBitbucket

    5. 接下来选择新增。如果出现提示,请提供您的 GitHub 或 Bitbucket 凭证。

    6. 根据您之前选择的提供者类型选择下一组步骤。

      注意

      以下为 GitHub 账户安装 AWS 连接器的 GitHub 步骤是一次性步骤。您可以重复使用该连接,根据此账户中的存储库创建多个 App Runner 服务。当您已有连接时,请选择该连接并跳至存储库选择。

      这同样适用于您的 Bitbucket 账户的 AWS 连接器。如果您同时使用两者 GitHub 和 Bitbucket 作为 App Runner 服务的源代码存储库,则需要为每个提供商安装一个 AWS 连接器。然后,您可以重复使用每个连接器来创建更多 App Runner 服务。

      • 对于 GitHub,请按照以下步骤操作。

        1. 在下一个屏幕上,输入连接名称

        2. 如果这是您第一次在 App Runner 中使用 GitHub ,请选择安装另一个

        3. 在 “AWS 连接器 GitHub” 对话框中,如果出现提示,请选择您的 GitHub 帐户名。

        4. 如果系统提示授权 AWS 连接器 GitHub,请选择授权 AWS 连接

        5. 在 “安装 AWS 连接器 GitHub” 对话框中,选择 “安装”。

          您的账户名称显示为选定的GitHub 账户/组织。现在,您可以在账户中选择存储库。

        6. 在 “存储库” 中,选择您创建的示例存储库python-hello。对于 Bran ch,选择仓库的默认分支名称(例如,main)。

        7. 源目录保留为默认值。该目录默认为存储库根目录。在前面的 “先决条件” 步骤中,您已将源代码存储在存储库根目录中。

      • 对于 Bitbucket,请按照以下步骤操作。

        1. 在下一个屏幕上,输入连接名称

        2. 如果这是您第一次在 App Runner 中使用 Bitbucket,请选择安装另一个

        3. AWS CodeStar 请求访问权限对话框中,您可以选择您的工作空间并授予对 Bitbucket 集成的访问权限。 AWS CodeStar 选择您的工作空间,然后选择 “授予访问权限”。

        4. 接下来,您将被重定向到 AWS 控制台。确认 Bitbucket 应用程序已设置为正确的 Bitbucket 工作空间,然后选择 “下一步”。

        5. 在 “存储库” 中,选择您创建的示例存储库python-hello。对于 Bran ch,选择仓库的默认分支名称(例如,main)。

        6. 源目录保留为默认值。该目录默认为存储库根目录。在前面的 “先决条件” 步骤中,您已将源代码存储在存储库根目录中。

  2. 配置您的部署:在 “部署设置” 部分中,选择 “自动”,然后选择 “下一步”。

    注意

    通过自动部署,每次向存储库源目录提交的新内容都会自动部署服务的新版本。

    创建 App Runner 服务时的源和部署设置
  3. 配置应用程序构建。

    1. 在 “配置构建” 页面上,对于 “配置文件”,选择 “在此处配置所有设置”

    2. 提供以下编译设置:

      • 运行时 — 选择 Python 3.

      • 生成命令-输入pip install -r requirements.txt

      • 启动命令-输入python server.py

      • 端口-输入8080

    3. 选择下一步

    注意

    Python 3 运行时使用基本的 Python 3 镜像和你的示例 Python 代码构建 Docker 镜像。然后,它会启动一项运行该镜像的容器实例的服务。

    在创建 App Runner 服务时构建设置
  4. 配置您的服务。

    1. 配置服务页面的服务设置部分,输入服务名称。

    2. 在 “环境变量” 下,选择 “添加环境变量”。为环境变量提供以下值。

      • 来源-选择纯文本

      • 环境变量名称NAME

      • 环境变量值-任意名称(例如,您的名字)。

      注意

      示例应用程序读取您在此环境变量中设置的名称,并在其网页上显示该名称。

    3. 选择下一步

    创建 App Runner 服务时的服务设置
  5. 在 “查看并创建” 页面上,验证您输入的所有详细信息,然后选择 “创建并部署”。

    如果成功创建了服务,控制台将显示服务控制面板,其中包含新服务的服务概述

    App Runner 服务控制面板页面
  6. 验证您的服务是否正在运行。

    1. 在服务仪表板页面上,等到服务状态变为 “正在运行”。

    2. 选择默认域名值,即您的服务网站的网址。

      注意

      为了增强 App Runner 应用程序的安全性,*.awsapprunner.com 域已在公共后缀列表 (PSL) 中注册。为了进一步提高安全性,如果您需要在 App Runner 应用程序的默认域名中设置敏感 Cookie,我们建议您使用带__Host-前缀的 Cookie。这将有助于保护您的域,防范跨站点请求伪造 (CSRF) 攻击。要了解更多信息,请参阅 Mozilla 开发者网络中的 Set-Cookie 页面。

      屏幕上会显示一个网页:你好,你的名字

    App Runner 服务的应用程序网页

第 2 步:更改您的服务代码

在此步骤中,您将对存储库源目录中的代码进行更改。App Runner CI/CD 功能会自动生成变更并将其部署到您的服务。

更改您的服务代码
  1. 导航到您的示例存储库。

  2. 编辑名为的文件server.py

  3. 在分配给变量的表达式中message,将文本更改HelloGood morning

  4. 保存您的更改并将其提交到存储库。

  5. 以下步骤说明了更改 GitHub 存储库中的服务代码。

    1. 导航到您的示例 GitHub 存储库。

    2. 选择文件名server.py以导航到该文件。

    3. 选择 “编辑此文件”(铅笔图标)。

    4. 在分配给变量的表达式中message,将文本更改HelloGood morning

      GitHub 带有编辑图标和突出显示消息的文件页面
    5. 选择提交更改

  6. 开始为你的 App Runner 服务部署新的提交。在服务控制面板页面上,服务状态更改为操作进行中

    等待部署结束。在服务仪表板页面上,服务状态应更改回正在运行

  7. 验证部署是否成功:刷新显示服务网页的浏览器选项卡。

    页面现在显示修改后的消息:早上好,你的名字

步骤 3:更改配置

在此步骤中,您将对NAME环境变量值进行更改,以演示服务配置的更改。

更改环境变量值
  1. 打开 App Runner 控制台,然后在 “区域” 列表中,选择您的 AWS 区域。

  2. 在导航窗格中,选择服务,然后选择您的 App Runner 服务。

    控制台显示带有服务概述的服务仪表板。

    显示活动列表的 App Runner 服务仪表板页面
  3. 在服务仪表板页面上,选择配置选项卡。

    控制台分几个部分显示您的服务配置设置。

  4. 在 “配置服务” 部分中,选择编辑

    App Runner 服务控制面板页面上 “配置” 选项卡的 “服务配置” 部分
  5. 对于带有密钥的环境变量NAME,请将该值更改为其他名称。

  6. 选择 Apply changes

    App Runner 启动更新过程。在服务控制面板页面上,服务状态更改为操作进行中

  7. 等待更新结束。在服务仪表板页面上,服务状态应更改回正在运行

  8. 验证更新是否成功:刷新显示服务网页的浏览器选项卡。

    页面现在显示修改后的名称:早上好,新名字

步骤 4:查看服务日志

在此步骤中,您将使用 App Runner 控制台来查看 App Runner 服务的日志。App Runner 将日志流式传输到 Amazon CloudWatch CloudWatch 日志(日志),并将其显示在服务的控制面板上。有关 App Runner 日志的信息,请参阅查看流向日志的 App Runner CloudWatch 日志

查看服务日志
  1. 打开 App Runner 控制台,然后在 “区域” 列表中,选择您的 AWS 区域。

  2. 在导航窗格中,选择服务,然后选择您的 App Runner 服务。

    控制台显示带有服务概述的服务仪表板。

    显示活动列表的 App Runner 服务仪表板页面
  3. 在服务仪表板页面上,选择日志选项卡。

    控制台分几个部分显示几种类型的日志:

    • 事件日志-App Runner 服务生命周期中的活动。控制台显示最新事件。

    • 部署日志-源存储库部署到您的 App Runner 服务。控制台显示每个部署的单独日志流。

    • 应用程序日志-部署到您的 App Runner 服务的 Web 应用程序的输出。控制台将所有正在运行的实例的输出合并到一个日志流中。

    App Runner 服务控制面板页面上的 “日志” 选项卡
  4. 要查找特定的部署,请输入搜索词,缩小部署日志列表的范围。您可以搜索表格中显示的任何值。

  5. 要查看日志内容,请选择查看完整日志(事件日志)或日志流名称(部署和应用程序日志)。

  6. 选择 “下载” 以下载日志。对于部署日志流,请先选择一个日志流。

  7. 选择查看 CloudWatch以打开 CloudWatch 控制台,并使用其全部功能浏览您的 App Runner 服务日志。对于部署日志流,请先选择一个日志流。

    注意

    如果您想查看特定实例的应用程序日志,而不是合并的应用程序日志,则 CloudWatch 控制台特别有用。

第 5 步:清理

现在,您已经学习了如何创建 App Runner 服务、查看日志和进行一些更改。在此步骤中,您将删除该服务以删除不再需要的资源。

删除您的服务
  1. 在服务仪表板页面上,选择操作,然后选择删除服务

  2. 在确认对话框中,输入所需的文本,然后选择删除

    结果:控制台导航到 “服务” 页面。您刚刚删除的服务显示的状态为 “删除”。不久之后,它从列表中消失了。

还可以考虑删除您在本教程中创建的 GitHub 和 Bitbucket 连接。有关更多信息,请参阅 管理 App Runner 连接

接下来做什么

现在,您已经部署了第一个 App Runner 服务,请在以下主题中了解更多信息: