怎么抓python程序的包_如何在AWS上部署python应用程序
如何在AWS上部署python应用程序,学姐呕心沥血亲自总结,亲测有效,比网上看网上大把大把的文档要快得多!
作者:蕾学姐
亚马逊云计算服务(Amazon Web Services,缩写为AWS),由亚马逊公司所创建的云计算平台,提供许多远程Web服务。Amazon EC2与Amazon S3都架构在这个平台上。
相比于IBM的ibmcloud和微软的azure cloud,学姐我认为aws的部署会稍微复杂一些,但是没有关系,只要前期环境配的好,后期应用程序部署到云上完全不是问题。下面就讲讲怎么将你本地的应用程序部署到云上。
一、创建您的第一个 IAM 管理员用户和组
此过程将介绍如何使用 AWS 管理控制台 自行创建 IAM 用户,并将该用户添加到具有已附加托管策略中的管理权限的组。
自行创建管理员用户并将该用户添加到管理员组(控制台)
注意:强烈建议您遵守以下使用 Administrator IAM 用户的最佳实践,妥善保存根用户凭证。只在执行少数账户和服务管理任务时才作为根用户登录。
注意:您必须先激活 IAM 用户和角色对账单的访问权限,然后才能使用 AdministratorAccess 权限访问 AWS Billing and Cost Management 控制台。为此,请按照“向账单控制台委派访问权限”教程:第 1 步中的说明进行操作。
您可使用此相同的流程创建更多的组和用户,并允许您的用户访问 AWS 账户资源。
二、在Python中安装一个叫awsebcli的库:
1、按路径寻找“Pycharm-preferences-project interpreter”然后点击左下角 ‘+’ 添加你要的库:
2、搜索“awsebcli”,右下角点击安装,显示“安装成功”后,返回,点击“OK”退出
三、通过 Flask 设置 Python 虚拟环境
为应用程序创建项目目录和虚拟环境并安装 Flask(如果你已经有代码,可以跳过这一步)
1、设置项目环境
您将看到您的命令提示符前面带有 (virt),表明您在虚拟环境中。在本教程的其余部分中使用虚拟环境。
此命令列出虚拟环境中已安装的所有程序包。由于您在虚拟环境中,因此不会显示全局安装的程序包,例如 EB CLI。
在部署期间,此文件将指示 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 应用程序(重点!!)
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,可以随时为您的应用程序轻松创建新环境。
或者,使用 EB CLI:
~/eb-flask$ eb terminate flask-env总结
以上是生活随笔为你收集整理的怎么抓python程序的包_如何在AWS上部署python应用程序的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: python怎么退出调试模式_pytho
- 下一篇: python里面的import prov