添加应用程序 - AWS OpsWorks

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

添加应用程序

重要

AWS OpsWorks Stacks 不再接受新客户。在 2024 年 5 月 26 日之前,现有客户将能够照常使用 OpsWorks 控制台、API、CLI 和 CloudFormation 资源,届时这些工具或资源将停用。为准备此过渡,我们建议您尽快将堆栈过渡到AWS Systems Manager。有关更多信息,请参阅 AWS OpsWorks Stacks 生命周期终止常见问题解答将 AWS OpsWorks Stacks 应用程序迁移到 AWS Systems Manager Application Manager

向您的应用程序服务器部署应用程序的第一步是将应用程序添加到堆栈。应用表示应用程序,包含各种元数据,例如应用程序的名称和类型以及向服务器实例部署应用程序所需的信息,如存储库 URL。您必须拥有管理权限才能将应用程序添加到堆栈。有关更多信息,请参阅管理用户权限

注意

本部分中的过程适用于 Chef 12 和更新的堆栈。有关如何向 Chef 11 堆栈的层中添加应用程序的信息,请参阅步骤 2.4:创建和部署应用程序 - Chef 11

将应用程序添加到堆栈
  1. 将代码置于您的首选存储库中:Amazon S3 存档、Git 存储库、Subversion 存储库或 HTTP 存档。有关更多信息,请参阅应用程序源

  2. 在导航窗格中,单击 Apps。在 Apps 页面上,单击 Add an app 以添加您的第一个应用程序。对于后续应用程序,单击 +App

  3. 使用 App New 页面来配置应用程序,如以下部分中所述。

配置应用程序

Add App 页面包含以下部分:SettingsApplication sourceData SourcesEnvironment VariablesAdd DomainsSSL Settings

设置

名称

应用程序名称,用于表示 UI 中的应用程序。AWS OpsWorksStacks 还使用此名称来生成应用程序的短名称,该名称可在内部使用并在堆栈配置和部署属性中标识应用程序。在将应用程序添加到堆栈后,您就可以查看短名称了,方法是在导航窗格中单击 Apps,然后单击该应用程序的名称以打开详细信息页面。

Document root

AWS OpsWorks Stacks 将 Document root 设置分配给应用程序的 属性中的 [:document_root]deploy 属性。默认值为 null。您的部署配方可以使用标准 Chef 节点语法从 deploy 属性中获取该值,并将指定代码部署到服务器上的合适位置。有关如何部署应用程序的更多信息,请参阅 Deploy 配方

应用程序源

您可以从以下类型的存储库部署应用程序:Git、Amazon S3 包、HTTP 包及其他。所有存储库类型都要求您指定存储库类型和存储库 URL。各个存储库类型有自己的要求,说明如下。

注意

AWS OpsWorks Stacks 自动将应用程序从标准存储库部署到内置服务器层。如果您使用“Other (其他)”存储库类型(这是适用于 Windows 堆栈的唯一选项),AWS OpsWorks Stacks 会将存储库信息放置在应用程序的 deploy 属性中,但您必须实施自定义配方来处理部署任务。

HTTP 存档

要将可公开访问的 HTTP 服务器用作存储库,请执行以下步骤:

  1. 创建包含应用程序代码和任何关联文件的文件夹的压缩存档:zip、gzip、bzip2、Java WAR 或 tarball。

    注意

    AWS OpsWorks Stacks 不支持未压缩的 tarball。

  2. 将该存档文件上传到服务器。

  3. 要在控制台中指定存储库,请选择 HTTP 存档作为存储库类型,然后输入 URL。

    如果存档受密码保护,请在应用程序源下指定登录凭证。

Amazon S3 归档

要使用 Amazon Simple Storage Service 存储桶作为存储库:

  1. 创建公有或私有 Amazon S3 存储桶。有关更多信息,请参阅 Amazon S3 文档

  2. 为了使 AWS OpsWorks Stacks 能够访问私有存储桶,您必须是至少具有 Amazon S3 存储桶只读权限的用户,并且您需要访问密钥 ID 和秘密访问密钥。有关更多信息,请参阅 AWS Identity and Access Management 文档

  3. 将代码和任何关联的文件置于一个文件夹中,并将该文件夹保存在压缩存档中 - zip、gzip、bzip2、Java WAR 或 tarball。

    注意

    AWS OpsWorks Stacks 不支持未压缩的 tarball。

  4. 将该存档文件上传到 Amazon S3 存储桶并记录 URL。

  5. 要在 AWS OpsWorks Stacks 控制台中指定存储库,请将 Repository type (存储库类型) 设置为 S3 Archive (S3 存档) 并输入存档的 URL。对于私有存档,您还必须提供其策略可授予访问该存储桶权限的 AWS 访问密钥 ID 和秘密访问密钥。对于公有存档,这些设置保留为空。

Git 存储库

Git 存储库可提供源代码控制和版本控制。AWS OpsWorksStacks 支持公开托管的存储库站点(如 GitHubBitbucket)以及私下托管的 Git 服务器。对于应用程序和 Git 子模块而言,您在 Application Source 中用于指定存储库 URL 的格式取决于存储库是公有的还是私有的:

公有存储库:使用 HTTPS 或 Git 只读协议。例如,Chef 11 Linux 堆栈入门 使用公有 GitHub 存储库,可通过以下任一 URL 格式进行访问:

  • Git 只读:git://github.com/amazonwebservices/opsworks-demo-php-simple-app.git

  • HTTPS:https://github.com/amazonwebservices/opsworks-demo-php-simple-app.git

私有存储库:使用以下示例中所示的 SSH 读/写格式:

  • Github 存储库:git@github.com:project/repository

  • Git 服务器上的存储库:user@server:project/repository

选择 Source Control 下的 Git 会显示两个额外的可选设置:

存储库 SSH 密钥

您必须指定一个部署 SSH 密钥来访问私有 Git 存储库。此字段需要私有密钥;公有密钥已分配到您的 Git 存储库。对于 Git 子模块,指定的密钥必须有权访问这些子模块。有关更多信息,请参阅使用 Git 存储库 SSH 密钥

重要

部署 SSH 密钥不能要求提供密码;AWS OpsWorks Stacks 无法传递它。

分支/修订

如果存储库具有多个分支,默认情况下 AWS OpsWorks Stacks 会下载主分支。要指定特定分支,请输入分支名称、SHA1 哈希或标签名称。要指定特定提交,请输入完整的 40 位十六进制提交标识符。

其他存储库

如果标准存储库不符合您的要求,您也可以使用其他存储库,例如 Bazaar。但是,AWS OpsWorks Stacks 不会自动从这些存储库部署应用程序。您必须实施自定义配方来处理部署流程并将其分配到合适层的部署事件。有关如何实现“部署”配方的示例,请参阅 Deploy 配方

数据源

本部分将数据库附加到应用程序。您有以下选项:

如果您选择 RDS,则必须指定以下内容。

数据库实例

该列表包括每个 Amazon RDS 服务层。您还可以选择以下任一项:

(必填项) 指定要将哪个数据库服务器附加到应用程序。列表的内容取决于数据源。

  • RDS:堆栈的 Amazon RDS 服务层列表。

数据库名称

(可选) 指定数据库名称。

  • Amazon RDS 层:输入您为 Amazon RDS 实例指定的数据库名称。

    您可以从 Amazon RDS 控制台获取数据库名称。

当您部署附加了数据库的应用程序时,AWS OpsWorks Stacks 会将数据库实例的连接添加到应用程序的 deploy 属性

您可以编写自定义配方,以检索 deploy 属性中的信息并将其保存在该应用程序可访问的文件中。这是向“Other”应用程序类型提供数据库连接信息的唯一选项。

有关如何处理数据库连接的更多信息,请参阅 连接到数据库

要将数据库服务器与应用程序分离,编辑应用程序的配置以指定一个不同数据库服务器或无服务器。

环境变量

您可以为每个应用程序指定一组环境变量,这些变量是特定于应用程序的。例如,如果您有两个应用程序,那么您为第一个应用程序定义的环境变量不适用于第二个应用程序,反之亦然。您也可以为多个应用程序定义相同的环境变量,并为每个应用程序分配一个不同值。

注意

环境变量没有特定的数量限制。但是,关联的数据结构(其中包括这些变量名称、值和受保护标记值)的大小不能超过 20 KB。此限制应适用于大部分使用案例(如果不是所有使用案例的话)。超过此大小将导致服务错误 (控制台) 或异常 (API),并显示消息“环境:过大 (最大值为 20 KB)。”

AWS OpsWorks Stacks 将变量作为属性存储在应用程序的 deploy 属性中。您可以通过使用标准 Chef 节点语法让自定义配方检索这些值。有关如何访问应用程序的环境变量的示例,请参阅 使用环境变量

变量名称。可以包含最多 64 个大小写字母、数字和下划线 (_),但必须以字母或下划线开始。

Value

变量的值。最多可包含 256 个字符,并且必须都是可打印字符。

受保护的值

该值是否受保护。此设置可让您隐藏密码等敏感信息。如果您为变量设置 Protected value,在您创建应用程序后:

  • 该应用程序的详细信息页面将仅显示变量名称,而不显示值。

  • 如果您有权编辑应用程序,则可以单击 Update value 来指定一个新值,但不能查看或编辑旧值。

注意

Chef 部署日志有时包含环境变量。这意味着受保护变量可能显示在控制台中。为了防止受保护的变量显示在控制台中,我们建议您使用 Amazon S3 存储桶来存储不希望显示在控制台中的受保护变量。本指南中的使用 Amazon S3 存储桶提供了有关如何使用 S3 存储桶以达到此目的的示例。

域和 SSL 设置

对于其他应用程序类型,AWS OpsWorks Stacks 会将该设置添加到该应用程序的 deploy 属性。您的配方可以从这些属性中检索数据并根据需要配置服务器。

域设置

本部分有一个用于指定域的可选 Add Domains 字段。有关更多信息,请参阅使用自定义域

SSL 设置

本部分有一个 SSL Support 开关,您可以用它来启用或禁用 SSL。如果您单击 Yes,将需要提供 SSL 证书信息。有关更多信息,请参阅使用 SSL