作者:蕾学姐
亚马逊云计算服务(Amazon Web Services,缩写为AWS),由亚马逊公司所创建的云计算平台,提供许多远程Web服务。Amazon EC2与Amazon S3都架构在这个平台上。
相比于IBM的ibmcloud和微软的azure cloud,本人认为aws的部署会稍微复杂一些,但是没有关系,只要前期环境配的好,后期应用程序部署到云上完全不是问题。下面就讲讲怎么将你本地的应用程序部署到云上。
一、创建您的第一个 IAM 管理员用户和组
此过程将介绍如何使用 AWS 管理控制台 自行创建 IAM 用户,并将该用户添加到具有已附加托管策略中的管理权限的组。
自行创建管理员用户并将该用户添加到管理员组(控制台)
1. 使用 AWS 账户电子邮件地址和密码,以AWS 账户根用户身份登录到 IAM 控制台 (https://console.aws.amazon.com/iam/)。
注意:强烈建议您遵守以下使用AdministratorIAM 用户的最佳实践,妥善保存根用户凭证。只在执行少数账户和服务管理任务时才作为根用户登录。
2. 在导航窗格中,选择Users (用户),然后选择Add user (添加用户)。
3. 对于User name,键入Administrator。
4. 选中AWS 管理控制台 access (AWS 管理控制台访问)旁边的复选框,选择Custom password (自定义密码),然后在文本框中键入新密码。默认情况下,AWS 将强制新用户在首次登录时创建新密码。您可以选择清除User must create a new password at next sign-in (用户必须在下次登录时创建新密码)旁边的复选框,以允许新用户在登录后重置其密码。
5. 选择Next: Permissions (下一步: 权限)。
6. 在设置权限页面上,选择将用户添加到组。
7. 选择Create group。
8. 在Create group (创建组)对话框中,对于Group name (组名称),键入Administrators。
9. 选择Policy Type (策略类型),然后选择Job function (作业功能)以筛选表内容。
10. 在策略列表中,选中AdministratorAccess的复选框。然后选择Create group。
注意:您必须先激活 IAM 用户和角色对账单的访问权限,然后才能使用AdministratorAccess权限访问 AWS Billing and Cost Management 控制台。为此,请按照“向账单控制台委派访问权限”教程:第 1 步中的说明进行操作。
11. 返回到组列表中,选中您的新组所对应的复选框。如有必要,选择Refresh以在列表中查看该组。
12. 选择Next: Tagging (下一步: 标记)。
13. (可选)通过以键值对的形式附加标签来向用户添加元数据。有关在 IAM 中使用标签的更多信息,请参阅标记 IAM 实体。
14. 选择Next: Review以查看要添加到新用户的组成员资格的列表。如果您已准备好继续,请选择Create user。
15. 选择新建的用户,点击下载 .CSV文件,里面有你的用户id和秘钥,后面会用到。
您可使用此相同的流程创建更多的组和用户,并允许您的用户访问 AWS 账户资源。
二、在Python中安装一个叫awsebcli的库:
1、按路径寻找“Pycharm-preferences-project interpreter”然后点击左下角 ‘+’ 添加你要的库:
2、搜索“awsebcli”,右下角点击安装,显示“安装成功”后,返回,点击“OK”退出
三、通过 Flask 设置 Python 虚拟环境
为应用程序创建项目目录和虚拟环境并安装 Flask(如果你已经有代码,可以跳过这一步)
1、设置项目环境
1. 创建项目目录。
~$mkdir eb-flask
~$cd eb-flask
2. 创建和激活名为virt的虚拟环境:
~/eb-flask$ virtualenv virt
~$ source virt/bin/activate
(virt) ~/eb-flask$
您将看到您的命令提示符前面带有(virt),表明您在虚拟环境中。在本教程的其余部分中使用虚拟环境。
3. 使用pip install安装 Flask:
(virt)~/eb-flask$pip install flask==1.0.2
4. 使用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。
5. 将来自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 '
Hello %s!
\n' % username# some bits of text for the page.
header_text = '''
\n EB Flask Test \n'''
instructions = '''
Hint: This is a RESTful web service! Append a username
to the URL (for example: /Thelonious) to say hello to
someone specific.\n'''
home_link = '
\n'footer_text = '