欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

怎么抓python程序的包_如何在AWS上部署python应用程序

发布时间:2024/8/23 python 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 怎么抓python程序的包_如何在AWS上部署python应用程序 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

如何在AWS上部署python应用程序,学姐呕心沥血亲自总结,亲测有效,比网上看网上大把大把的文档要快得多!

作者:蕾学姐

亚马逊云计算服务(Amazon Web Services,缩写为AWS),由亚马逊公司所创建的云计算平台,提供许多远程Web服务。Amazon EC2与Amazon S3都架构在这个平台上。

相比于IBM的ibmcloud和微软的azure cloud,学姐我认为aws的部署会稍微复杂一些,但是没有关系,只要前期环境配的好,后期应用程序部署到云上完全不是问题。下面就讲讲怎么将你本地的应用程序部署到云上。

一、创建您的第一个 IAM 管理员用户和组

此过程将介绍如何使用 AWS 管理控制台 自行创建 IAM 用户,并将该用户添加到具有已附加托管策略中的管理权限的组。

自行创建管理员用户并将该用户添加到管理员组(控制台)

  • 使用 AWS 账户电子邮件地址和密码,以 AWS 账户根用户 身份登录到 IAM 控制台 (https://console.aws.amazon.com/iam/)。
  • 注意:强烈建议您遵守以下使用 Administrator IAM 用户的最佳实践,妥善保存根用户凭证。只在执行少数账户和服务管理任务时才作为根用户登录。

  • 在导航窗格中,选择 Users (用户),然后选择Add user (添加用户)。
  • 对于 User name,键入 Administrator。
  • 选中 AWS 管理控制台 access (AWS 管理控制台访问) 旁边的复选框,选择 Custom password (自定义密码),然后在文本框中键入新密码。默认情况下,AWS 将强制新用户在首次登录时创建新密码。您可以选择清除 User must create a new password at next sign-in (用户必须在下次登录时创建新密码) 旁边的复选框,以允许新用户在登录后重置其密码。
  • 选择 Next: Permissions (下一步: 权限)。
  • 在设置权限页面上,选择将用户添加到组。
  • 选择 Create group。
  • 在 Create group (创建组) 对话框中,对于 Group name (组名称),键入 Administrators。
  • 选择 Policy Type (策略类型),然后选择 Job function (作业功能) 以筛选表内容。
  • 在策略列表中,选中 AdministratorAccess 的复选框。然后选择 Create group。
  • 注意:您必须先激活 IAM 用户和角色对账单的访问权限,然后才能使用 AdministratorAccess 权限访问 AWS Billing and Cost Management 控制台。为此,请按照“向账单控制台委派访问权限”教程:第 1 步中的说明进行操作。

  • 返回到组列表中,选中您的新组所对应的复选框。如有必要,选择 Refresh 以在列表中查看该组。
  • 选择 Next: Tagging (下一步: 标记)。
  • (可选)通过以键值对的形式附加标签来向用户添加元数据。有关在 IAM 中使用标签的更多信息,请参阅 标记 IAM 实体。
  • 选择 Next: Review 以查看要添加到新用户的组成员资格的列表。如果您已准备好继续,请选择 Create user。
  • 选择新建的用户,点击下载 .CSV文件,里面有你的用户id和秘钥,后面会用到。
  • 您可使用此相同的流程创建更多的组和用户,并允许您的用户访问 AWS 账户资源。

    二、在Python中安装一个叫awsebcli的库:

    1、按路径寻找“Pycharm-preferences-project interpreter”然后点击左下角 ‘+’ 添加你要的库:

    2、搜索“awsebcli”,右下角点击安装,显示“安装成功”后,返回,点击“OK”退出

    三、通过 Flask 设置 Python 虚拟环境

    为应用程序创建项目目录和虚拟环境并安装 Flask(如果你已经有代码,可以跳过这一步)

    1、设置项目环境

  • 创建项目目录。
  • ~$ mkdir eb-flask ~$ cd eb-flask
  • 创建和激活名为 virt 的虚拟环境:
  • ~/eb-flask$ virtualenv virt ~$ source virt/bin/activate (virt) ~/eb-flask$

    您将看到您的命令提示符前面带有 (virt),表明您在虚拟环境中。在本教程的其余部分中使用虚拟环境。

  • 使用 pip install 安装 Flask:
  • (virt)~/eb-flask$ pip install flask==1.0.2
  • 使用 pip freeze 查看已安装的库:
  • (virt)~/eb-flask$ pip freeze click==6.7 Flask==1.0.2 itsdangerous==0.24 Jinja2==2.10 MarkupSafe==1.0 Werkzeug==0.14.1

    此命令列出虚拟环境中已安装的所有程序包。由于您在虚拟环境中,因此不会显示全局安装的程序包,例如 EB CLI。

  • 将来自 pip freeze 的输出保存到名为 requirements.txt 的文件中。
  • (virt)~/eb-flask$ pip freeze > requirements.txt

    在部署期间,此文件将指示 Elastic Beanstalk 安装库。有关更多信息,请参阅 要求文件。

    创建 Flask 应用程序

    接下来,创建您将使用 Elastic Beanstalk 部署的应用程序。我们会创建一个“Hello World”RESTful Web 服务。

    在此目录中创建名为 application.py 的新文本文件,包含以下内容:

    例 ~/eb-flask/application.py,里面的代码如下:

    from flask import Flask # print a nice greeting. def say_hello(username = "World"):return '<p>Hello %s!</p>n' % username # some bits of text for the page. header_text = '''<html>n<head> <title>EB Flask Test</title> </head>n<body>''' instructions = '''<p><em>Hint</em>: This is a RESTful web service! Append a usernameto the URL (for example: <code>/Thelonious</code>) to say hello tosomeone specific.</p>n''' home_link = '<p><a href="/">Back</a></p>n' footer_text = '</body>n</html>'# EB looks for an 'application' callable by default. application = Flask(__name__)# add a rule for the index page. application.add_url_rule('/', 'index', (lambda: header_text +say_hello() + instructions + footer_text))# add a rule when the page is accessed with a name appended to the site # URL. application.add_url_rule('/<username>', 'hello', (lambda username:header_text + say_hello(username) + home_link + footer_text))# run the app. if __name__ == "__main__":# Setting debug to True enables debug output. This line should be# removed before deploying a production app.application.debug = Trueapplication.run()

    本示例输出根据访问服务所使用的路径而变化的自定义问候语。

    四、创建环境和部署 Flask 应用程序(重点!!)

  • 使用 eb init 命令,初始化 EB CLI 存储库:
  • ~/eb-flask$ eb init -p python-3.6 flask-tutorial --region us-east-2

    Application flask-tutorial has been created.

    此命令创建名为 flask-tutorial 的新应用程序,并配置本地存储库,以最新的 Python 3.6 平台版本创建环境。

    2、此时会出现让你输入用户名id和密码,把之前那个csv文件里面的id密码输入就可以。

    3、使用 eb create 创建环境并将应用程序部署到此环境中:

    ~/eb-flask$ eb create flask-env

    环境创建大约需要 5 分钟,将创建以下资源:

    • EC2 实例 – 配置来在您选择的平台上运行 Web 应用程序的 Amazon Elastic Compute Cloud (Amazon EC2) 虚拟机。

    各平台运行一组特定软件、配置文件和脚本以支持特定的语言版本、框架、Web 容器或其组合。大多数平台使用 Apache 或 nginx 作为 Web 应用程序前的反向代理,向其转发请求、提供静态资产以及生成访问和错误日志。

    • 实例安全组 – 配置来允许通过端口 80 访问的 Amazon EC2 安全组。通过此资源,HTTP 流量可以从负载均衡器到达运行您的 Web 应用程序的 EC2 实例。默认情况下,其他端口不允许流量进入。
    • 负载均衡器 – 配置来向运行您的应用程序的实例分配请求的 Elastic Load Balancing 负载均衡器。负载均衡器还使您无需将实例直接公开在 Internet 上。
    • 安全组 – 配置来允许通过端口 80 访问的 Amazon EC2 安全组。利用此资源,HTTP 流量可从 Internet 到达负载均衡器。默认情况下,其他端口不允许流量进入。
    • Auto Scaling 组 – 配置来在实例终止或不可用时替换实例的 Auto Scaling 组。
    • Amazon S3 存储桶 – 使用 Elastic Beanstalk 时创建的源代码、日志和其他项目的存储位置。
    • Amazon CloudWatch 警报 – 用于监控环境实例负载的两个 CloudWatch 警报,在负载过高或过低时触发。警报触发后,您的 Auto Scaling 组会扩展或收缩进行响应。
    • AWS CloudFormation 堆栈 – Elastic Beanstalk 使用 AWS CloudFormation 启动您的环境中的资源并传播配置更改。这些资源在您可通过 AWS CloudFormation 控制台查看的模板中定义。
    • 域名 – 一个域名,它以下面的形式路由到您的 Web 应用程序:subdomain.region.http://elasticbeanstalk.com。

    所有这些资源均由 Elastic Beanstalk 管理。当您终止环境时,Elastic Beanstalk 会终止其包含的所有资源。

    注意:Elastic Beanstalk 创建的 Amazon S3 存储桶将在多个环境之间共享并且在环境终止期间不会被删除。有关更多信息,请参阅 将 Elastic Beanstalk 用于 Amazon S3。

    当环境创建过程完成时,请使用 eb open 打开网站:

    ~/eb-flask$ eb open

    这将使用为应用程序创建的域名打开一个浏览器窗口。您应该看到在本地创建和测试的相同 Flask 网站。

    如果您没有看到应用程序运行,或者出现错误消息,请查看排查部署问题以获取有关如何确定错误原因的帮助。

    如果您确实 看到应用程序在运行,那么恭喜,您已使用 Elastic Beanstalk 部署了第一个 Flask 应用程序!

    清除

    Elastic Beanstalk 使用完毕时,您可以终止您的环境。Elastic Beanstalk 会终止与环境关联的所有 AWS 资源,例如 Amazon EC2 实例、数据库实例、负载均衡器、安全组和警报。

    终止 Elastic Beanstalk 环境

  • 打开 Elastic Beanstalk 控制台。
  • 导航到您的环境的管理页。
  • 选择操作,然后选择终止环境。
  • 在 Confirm Termination (确认终止) 对话框中,键入环境名称,然后选择 Terminate (终止)。
  • 利用 Elastic Beanstalk,可以随时为您的应用程序轻松创建新环境。

    或者,使用 EB CLI:

    ~/eb-flask$ eb terminate flask-env

    总结

    以上是生活随笔为你收集整理的怎么抓python程序的包_如何在AWS上部署python应用程序的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。