繁体   English   中英

如何将 Visual Studio Flask 应用程序部署到 Elastic Beanstalk

[英]How to deploy Visual Studio Flask app to Elastic Beanstalk

我正在使用 Visual Studio 2019 Flask Web 项目模板。 它在我本地的 Python 环境中运行,是一个好的开始(非常类似于标准的 Asp.net)模板。 我创建了一个 Python Elastic Beanstalk 应用程序来托管它。 我正在尝试在 AWS Elastic Beanstalk 上部署它。 我在以下位置创建了一个存储库: https://github.com/jlongo62/Flask-Web-Project

  • 我认为这些文件之一(或丢失的文件)需要命名为 application.py(它可能还需要一些特殊内容)。 我包括了一个目录列表。

  • 看来我需要 zip 这个并通过门户/cli上传。 我不确定 zip 应该是什么样子,但我怀疑 requirements.txt 需要位于根目录。)。 如果 AWS Toolkit Extension 无法处理此作业,它应该很容易编写脚本。

  • GitHub中是否有更好的模板或示例项目?

  • 修复简单吗?

    \FlaskWebProject1\FlaskWebProject1
    \FlaskWebProject1\FlaskWebProject1.pyproj
    \FlaskWebProject1\FlaskWebProject1.pyproj.user
    \FlaskWebProject1\requirements.txt
    \FlaskWebProject1\runserver.py
    \FlaskWebProject1\FlaskWebProject1\static
    \FlaskWebProject1\FlaskWebProject1\templates
    \FlaskWebProject1\FlaskWebProject1\views.py
    \FlaskWebProject1\FlaskWebProject1\__init__.py
    \FlaskWebProject1\FlaskWebProject1\__pycache__
    \FlaskWebProject1\FlaskWebProject1\static\content
    \FlaskWebProject1\FlaskWebProject1\static\fonts
    \FlaskWebProject1\FlaskWebProject1\static\scripts
    \FlaskWebProject1\FlaskWebProject1\static\content\bootstrap.css
    \FlaskWebProject1\FlaskWebProject1\static\content\bootstrap.min.css
    \FlaskWebProject1\FlaskWebProject1\static\content\site.css
    \FlaskWebProject1\FlaskWebProject1\static\fonts\glyphicons-halflings-regular.eot
    \FlaskWebProject1\FlaskWebProject1\static\fonts\glyphicons-halflings-regular.svg
    \FlaskWebProject1\FlaskWebProject1\static\fonts\glyphicons-halflings-regular.ttf
    \FlaskWebProject1\FlaskWebProject1\static\fonts\glyphicons-halflings-regular.woff
    \FlaskWebProject1\FlaskWebProject1\static\scripts\bootstrap.js
    \FlaskWebProject1\FlaskWebProject1\static\scripts\bootstrap.min.js
    \FlaskWebProject1\FlaskWebProject1\static\scripts\jquery-1.10.2.intellisense.js
    \FlaskWebProject1\FlaskWebProject1\static\scripts\jquery-1.10.2.js
    \FlaskWebProject1\FlaskWebProject1\static\scripts\jquery-1.10.2.min.js
    \FlaskWebProject1\FlaskWebProject1\static\scripts\jquery-1.10.2.min.map
    \FlaskWebProject1\FlaskWebProject1\static\scripts\jquery.validate-vsdoc.js
    \FlaskWebProject1\FlaskWebProject1\static\scripts\jquery.validate.js
    \FlaskWebProject1\FlaskWebProject1\static\scripts\jquery.validate.min.js
    \FlaskWebProject1\FlaskWebProject1\static\scripts\jquery.validate.unobtrusive.js
    \FlaskWebProject1\FlaskWebProject1\static\scripts\jquery.validate.unobtrusive.min.js
    \FlaskWebProject1\FlaskWebProject1\static\scripts\modernizr-2.6.2.js
    \FlaskWebProject1\FlaskWebProject1\static\scripts\respond.js
    \FlaskWebProject1\FlaskWebProject1\static\scripts\respond.min.js
    \FlaskWebProject1\FlaskWebProject1\static\scripts\_references.js
    \FlaskWebProject1\FlaskWebProject1\templates\about.html
    \FlaskWebProject1\FlaskWebProject1\templates\contact.html
    \FlaskWebProject1\FlaskWebProject1\templates\index.html
    \FlaskWebProject1\FlaskWebProject1\templates\layout.html
    \FlaskWebProject1\FlaskWebProject1\__pycache__\views.cpython-37.pyc
    \FlaskWebProject1\FlaskWebProject1\__pycache__\__init__.cpython-37.pyc

您的应用程序适用Python 3.7 running on 64bit Amazon Linux 2/3.0.3

只需将runserver.py更改为application.py 您也可以稍微修改(端口和名称)其内容,除非您想自定义 EB 环境以匹配您的应用程序的设置。

应用程序.py

"""
This script runs the FlaskWebProject1 application using a development server.
"""

from os import environ
from FlaskWebProject1 import app as application

if __name__ == '__main__':
    HOST = environ.get('SERVER_HOST', 'localhost')
    try:
        PORT = int(environ.get('SERVER_PORT', '8000'))
    except ValueError:
        PORT = 8000
    application.run(HOST, PORT)

Zip 进入app.zip (示例名称),内容为:

application.py
FlaskWebProject1
requirements.txt

部署app.zip

感谢马尔辛。 AWS Toolkit for Visual Studio 不支持部署或环境创建。 它仅适用于 .Net 环境。

我已更新https://github.com/jlongo62/Flask-Web-Project以反映这些注释

  1. 创建 AWS Elastic Beanstalk 环境。 使用门户或 CLI。 环境 > 创建环境(Web 服务器环境) > Select

设置:

  • 平台:Python
  • 平台分支:Python 3.7
  • 平台版本:3.0.3
  1. 添加带有内容的application.py (端口 8000 似乎是关键成分):

"""
This script runs the FlaskWebProject1 application using a development server.
"""

from os import environ
from FlaskWebProject1 import app as application

if __name__ == '__main__':
    HOST = environ.get('SERVER_HOST', 'localhost')
    try:
        PORT = int(environ.get('SERVER_PORT', '8000'))
    except ValueError:
        PORT = 8000
    application.run(HOST, PORT)
  1. 使用以下根目录创建 zip。 Zip 文件名无所谓:

application.py
FlaskWebProject1
requirements.txt
  1. 使用门户(或 cli)部署 zip
  • Elastic Beanstalk > 环境 > Flaskwebproject1-env
  • 点击上传并部署

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM