怎么抓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
- 下一篇: 计算机网络构成ppt,计算机网络体系结构