AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

构建 Launch Now URL

您可以构建自定义统一资源定位符 (URL),以便任何人都可以在 AWS 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 必须包含以下区分大小写的参数:

  • 区域 – 指定 AWS 区域。有关 Elastic Beanstalk 支持的区域的列表,请参阅 Amazon Web Services 一般参考 中的 AWS Elastic Beanstalk

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

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

    • 指定配置的 ARN 但不指定版本。Elastic Beanstalk 会选择配置的最新版本。例如:

      Python 3.6 running on 64bit Amazon Linux

    • 指定平台名称。Elastic Beanstalk 选择平台最新语言配置的最新版本。例如:

      Python

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

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

    以下示例查询所有 Python 配置,并将输出通过管道传送给一系列命令。这会生成各个 ARN 的平台配置名称,使用人类可读的格式而不是 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 会将默认示例应用程序用于指定的平台

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

    注意

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

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

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

  • instanceType – 指定特征 (包括内存大小和 CPU 处理能力) 最适合您的应用程序的服务器。若要查看您的 Elastic Beanstalk 区域中可用的实例类型,请参阅配置选项中的 InstanceType。若要查看每种 Amazon EC2实例类型的详细规范,请参阅实例类型

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

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

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

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

    • MySQL - 51024。默认为 5

    • Oracle - 101024。默认为 10

    • Microsoft SQL Server Express Edition30

    • Microsoft SQL Server Web Edition30

    • Microsoft SQL Server 标准版200

  • rdsDBInstanceClass - 指定数据库实例类型。默认值为 db.t2.micro (db.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 Create an Application 向导无需其他输入。

https://console.amazonaws.cn/elasticbeanstalk/?region=us-west-2#/newApplication?applicationName=YourCompanySampleApp&platform=PHP%207.1%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. 配置页面上,选择创建应用程序以创建应用程序。

本页内容: