构建 Launch Now URL - Amazon Elastic Beanstalk
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

构建 Launch Now URL

您可以构建自定义 URL,以便任何人都可以在 Amazon Elastic Beanstalk 中快速部署并运行预先确定的 Web 应用程序 此 URL 称为 Launch Now URL。例如,您可能需要一个 Launch Now URL 来演示构建为在 Elastic Beanstalk 上运行的 Web 应用程序。利用 Launch Now URL,您可以使用参数提前将所需信息添加到“创建应用程序”向导。您将该信息添加到向导后,任何人只需执行几个步骤,即可使用 URL 链接通过您的 Web 应用程序源启动 Elastic Beanstalk 环境。这意味着用户无需手动上载或指定应用程序源捆绑包的位置,也无需向该向导提供任何其他信息。

Launch Now URL 为 Elastic Beanstalk 提供创建应用程序所需的最少信息:应用程序名称、解决方案堆栈、实例类型和环境类型。Elastic Beanstalk 对未在自定义 Launch Now URL 中显式指定的其他配置详细信息使用默认值。

Launch Now URL 使用标准 URL 语法。有关更多信息,请参阅 RFC 3986 - 统一资源标识符 (URI):一般语法

URL 参数

URL 必须包含以下区分大小写的参数:

  • region – 指定 Amazon 区域。有关 Elastic Beanstalk 支持的区域列表,请参阅 Amazon Web Services 一般参考 中的 Amazon Elastic Beanstalk 端点和配额

  • applicationName – 指定应用程序的名称。Elastic Beanstalk 会在 Elastic Beanstalk 控制台中显示应用程序名称以便与其他应用程序进行区分。默认情况下,应用程序名称还会形成环境名称和环境 URL 的基础。

  • platform – 指定将用于环境的平台版本。使用以下方法之一,然后对您选择的项进行 URL 编码:

    • 指定不带版本的平台 ARN。Elastic Beanstalk 选择相应平台主要版本的最新平台版本。例如,要选择最新的 Python 3.6 平台版本,请指定 Python 3.6 running on 64bit Amazon Linux

    • 指定平台名称。Elastic Beanstalk 选择平台最新语言(例如,Python)运行时的最新版本。

    有关所有可用平台及其版本的描述,请参阅Elastic Beanstalk 支持的平台

    您可以使用 Amazon Command Line Interface(Amazon CLI)获取所有可用平台版本的列表及其相应的 ARN。list-platform-versions 命令列出有关所有可用平台版本的详细信息。使用 --filters 参数来缩小列表的范围。例如,您可以设置列表的范围来仅列出特定语言的平台版本。

    以下示例查询所有 Python 平台版本,并将输出通过管道传送给一系列命令。结果是平台版本 ARN 的列表(没有 /version 结尾),采用适合用户阅读的格式,没有 URL 编码。

    $ aws elasticbeanstalk list-platform-versions --filters 'Type="PlatformName",Operator="contains",Values="Python"' | grep PlatformArn | awk -F '"' '{print $4}' | awk -F '/' '{print $2}' Preconfigured Docker - Python 3.4 running on 64bit Debian Preconfigured Docker - Python 3.4 running on 64bit Debian Python 2.6 running on 32bit Amazon Linux Python 2.6 running on 32bit Amazon Linux 2014.03 ... Python 3.6 running on 64bit Amazon Linux

    以下示例将 Perl 命令添加到上一个示例,用于对输出进行 URL 编码。

    $ aws elasticbeanstalk list-platform-versions --filters 'Type="PlatformName",Operator="contains",Values="Python"' | grep PlatformArn | awk -F '"' '{print $4}' | awk -F '/' '{print $2}' | perl -MURI::Escape -ne 'chomp;print uri_escape($_),"\n"' Preconfigured%20Docker%20-%20Python%203.4%20running%20on%2064bit%20Debian Preconfigured%20Docker%20-%20Python%203.4%20running%20on%2064bit%20Debian Python%202.6%20running%20on%2032bit%20Amazon%20Linux Python%202.6%20running%20on%2032bit%20Amazon%20Linux%202014.03 ... Python%203.6%20running%20on%2064bit%20Amazon%20Linux

Launch Now URL 可以选择包含以下参数。如果您不在 Launch Now URL 中包含可选参数,Elastic Beanstalk 将使用默认值来创建和运行应用程序。如果不包含 sourceBundleUrl 参数,Elastic Beanstalk 会将默认示例应用程序用于指定的 platform

  • sourceBundleUrl – 以 URL 格式指定 Web 应用程序源包的位置。例如,如果您将源包上传到了 Amazon S3 存储桶,则可以将 sourceBundleUrl 参数的值指定为 https://mybucket.s3.amazonaws.com/myobject

    注意

    您可以将 sourceBundleUrl 参数的值指定为 HTTP URL,但是用户的 Web 浏览器会根据需要通过应用 HTML URL 编码来转换字符。

  • environmentType – 指定环境是负载均衡的可扩展实例,还是仅为单个实例。有关更多信息,请参阅环境类型。您可以指定 LoadBalancingSingleInstance 作为参数值。

  • tierName – 指定环境是否支持处理 Web 请求的 Web 应用程序或运行后台作业的 Web 应用程序。有关更多信息,请参阅Elastic Beanstalk 工作线程环境。您可指定 WebServerWorker

  • InstanceType – 指定具有最适合应用程序的特征(包括内存大小和 CPU 处理能力)的服务器。有关 Amazon EC2 实例系列和类型的更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的实例类型或者《适用于 Windows 实例的 Amazon EC2 用户指南》中的实例类型。有关跨区域可用实例类型的更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的可用实例类型或《适用于 Windows 实例的 Amazon EC2 用户指南》中的可用实例类型

  • withVpc – 指定是否在 Amazon VPC 中创建环境。您可指定 truefalse。有关配合使用 Elastic Beanstalk 和 Amazon VPC 的更多信息,请参阅将 Elastic Beanstalk 和 Amazon VPC 结合使用

  • withRds – 指定是否使用此环境创建 Amazon RDS 数据库实例。有关更多信息,请参阅将 Elastic Beanstalk 和 Amazon RDS 结合使用。您可指定 truefalse

  • rdsDBEngine – 指定要在此环境中用于 Amazon EC2 实例的数据库引擎。您可指定 mysqloracle-selsqlserver-exsqlserver-websqlserver-se。默认值为 mysql

  • rdsDBAllocatedStorage – 指定分配的数据库存储大小(以 GB 为单位)。可以指定以下值:

    • MySQL51024。默认为 5

    • Oracle101024。默认为 10

    • Microsoft SQL Server Express Edition30

    • Microsoft SQL Server Web Edition30

    • Microsoft SQL Server Standard Edition200

  • rdsDBInstanceClass – 指定数据库实例类型。默认值为 db.t2.microdb.m1.large 适用于未在 Amazon VPC 中运行的环境)。有关 Amazon RDS 支持的数据库实例类的列表,请参阅《Amazon Relational Database Service 用户指南》中的数据库实例类

  • rdsMultiAZDatabase – 指定 Elastic Beanstalk 是否需要跨多个可用区创建数据库实例。您可指定 truefalse。有关使用 Amazon RDS 进行多个可用区部署的更多信息,请参阅《Amazon Relational Database Service 用户指南》中的区域和可用区

  • rdsDBDeletionPolicy – 指定在环境终止时是删除数据库实例还是为数据库实例创建快照。您可指定 DeleteSnapshot

示例

下面是一个示例 Launch Now URL。构建您自己的 URL 之后,您可以将它提供给您的用户。例如,您可以将该 URL 嵌入在网页或培训材料中。当用户使用 Launch Now URL 创建应用程序时,Elastic Beanstalk 的“创建应用程序”向导不需要其他输入。

https://console.aws.amazon.com/elasticbeanstalk/home?region=us-west-2#/newApplication?applicationName=YourCompanySampleApp&platform=PHP%207.3%20running%20on%2064bit%20Amazon%20Linux&sourceBundleUrl=http://s3.amazonaws.com/mybucket/myobject&environmentType=SingleInstance&tierName=WebServer&instanceType=m1.small&withVpc=true&withRds=true&rdsDBEngine=postgres&rdsDBAllocatedStorage=6&rdsDBInstanceClass=db.m1.small&rdsMultiAZDatabase=true&rdsDBDeletionPolicy=Snapshot

当用户选择 Launch Now URL 时,Elastic Beanstalk 会显示如下页面。


        Launch Now URL 的 Elastic Beanstalk 管理控制台页面
使用 Launch Now URL
  1. 选择 Launch Now URL。

  2. 当 Elastic Beanstalk 控制台打开后,在 Create a web app(创建 Web 应用程序)页面上,选择 Review and launch(审核和启动)以查看 Elastic Beanstalk 用于创建应用程序和启动应用程序运行环境的设置。

  3. 配置页面上,选择创建应用程序以创建应用程序。