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

开始使用预配置 Docker 容器

本部分演示如何在本地开发示例应用程序,然后使用预配置 Docker 容器将您的应用程序部署到 Elastic Beanstalk。

设置本地开发环境

在本演练中,我们将使用 Python Flask“Hello World”应用程序。

设置开发环境

  1. 为示例应用程序创建新文件夹。

    ~$ mkdir eb-flask-sample ~$ cd eb-flask-sample
  2. 在应用程序的根目录文件夹中,创建 application.py 文件。在该文件中包含以下内容:

    例 ~/eb-flask-sample/application.py

    from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
  3. 在应用程序的根目录文件夹中,创建 requirements.txt 文件。在该文件中包含以下内容:

    例 ~/eb-flask-sample/requirements.txt

    flask

在本地开发和测试

开发示例 Python Flask 应用程序

  1. Dockerfile 添加到应用程序的根目录文件夹。在文件中,通过包含以下内容指定要用于运行您的本地预配置 Docker 容器并且供 Elastic Beanstalk 对其运行任何后续 Dockerfile 指令的 AWS Elastic Beanstalk Docker 基本映像:

    例 ~/eb-flask-sample/Dockerfile

    # For Python 3.4 FROM amazon/aws-eb-python:3.4.2-onbuild-3.5.1

    AWS Elastic Beanstalk 还支持 Glassfish 4.1 Java 8 和 Glassfish 4.0 Java 7 的 Docker 映像。有关它们的 Docker 映像的名称,请参阅Elastic Beanstalk 支持的平台。有关使用 Dockerfile 的更多信息,请参阅单容器 Docker 配置

  2. 构建 Docker 映像。

    ~/eb-flask-sample$ docker build -t my-app-image .
  3. 从该映像运行 Docker 容器。

    注意

    必须包含 -p 标记才能将容器中的端口 8080 映射到 localhost 端口 3000。Elastic Beanstalk Docker 容器始终在该容器中的端口 8080 上公开应用程序。-it 标志将映像作为交互式进程运行。当容器存在时,-rm 标志将清理容器文件系统。您可以选择包含 -d 标志以将映像作为守护程序运行。

    $ docker run -it --rm -p 3000:8080 my-app-image
  4. 要查看示例应用程序,请将以下 URL 键入您的 Web 浏览器。

    http://localhost:3000

部署到 Elastic Beanstalk

在测试应用程序后,可随时将其部署到 Elastic Beanstalk。

将应用程序部署到 Elastic Beanstalk

  1. 在应用程序的根文件夹中,将 Dockerfile 重命名为 Dockerfile.local。若要让 Elastic Beanstalk 使用 Dockerfile,此步骤是必需的。Dockerfile 包含供 Elastic Beanstalk 在 Elastic Beanstalk 环境中的每个 Amazon EC2 实例上构建自定义 Docker 映像的正确指令。

  2. 创建应用程序源包。有关更多信息,请参阅 创建应用程序源包

  3. 要创建可将您的应用程序部署到的新 Elastic Beanstalk 应用程序,请参阅管理和配置 AWS Elastic Beanstalk 应用程序。在适当的步骤中,在 Environment Type (环境类型) 页上的 Predefined configuration (预定义配置) 列表中的 Preconfigured - Docker (预配置 - Docker) 下,单击 Python