cloudlift使在aws ecs中启动停靠服务更加容易。

cloudlift的Python项目详细描述


云梯

cloudlift是由siml开发人员构建的,以便更容易地启动停靠的 AWS ECS中的服务。

cloudlift是一个命令行工具,用于在aws中部署停靠服务。 埃斯。使用起来很简单。这是可能的,因为这是沉重的 固执己见。在幕后,它是aws云信息模板的包装器。论 创建/更新服务或集群创建/更新云信息 在美国焊接学会。

演示视频

安装Cloudlift

一。先决条件

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py | python get-pip.py

2.下载并安装cloudlift

git clone git@github.com:GetSimpl/cloudlift.git
cd cloudlift
./install-cloudlift.sh

2.配置aws

awsconfigure

输入aws访问密钥id,aws secret access key。你可以找到指示 此处介绍如何获取访问密钥ID和机密访问密钥 http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html

使用AWS配置文件

如果您使用的是AWS profiles,请在调用cloudlift之前在环境中设置所需的配置文件名。

AWS_DEFAULT_PROFILE=<profile name> cloudlift <command>

exportAWS_DEFAULT_PROFILE=<profile name>
cloudlift <command>
cloudlift <command>

用法

创建新环境

为要部署的服务创建一个新环境。cloudlift创建了一个新的 为给定的cidr建立vpc,并为 在ECS中运行的服务。

cloudlift create_environment -e <environment-name>

这会提示您输入创建环境所需的详细信息,该环境 包括-

  • AWS环境区域
  • VPC CIDR
  • NAT弹性IP分配ID
  • 2个公用子网CIDR
  • 2个专用子网CIDR
  • 群集的最小实例
  • 群集的最大实例
  • ssh密钥名
  • 通知的sns arn
  • 用于SSL证书的AWS ACM ARN

保存配置后,将在默认的VISUAL编辑器中打开。 如果需要,可以在这里更改配置。

更新环境

cloudlift update_environment -e <environment-name>

这将在VISUAL编辑器中打开环境配置。将此更新为 改变环境。

创建新服务

1.将配置上载到参数存储

在创建服务和部署期间cloudlift从aws中提取配置 参数存储以将其应用于任务定义。配置存储在 常规路径/<environment>/<service>/<key>

cloudlift edit_config -e <environment-name>

note:这不是每次部署都需要的not。只有在 需要更改配置。

2.创建服务

在应用程序的存储库中,运行-

  cloudlift create_service -e <environment-name>

这将打开VISUAL编辑器,默认配置类似于-

{"services":{"Test123":{"command":null,"http_interface":{"container_port":80,"internal":false,"restrict_access_to":["0.0.0.0/0"]},"memory_reservation":100}}}

定义-

services:当前应用配置的所有ecs服务的映射

command:dockerfile中的override命令

http_interface:http接口的配置如果需要,不包括 如果服务不需要http接口,则执行此操作

container_port:进程在容器中公开的端口

internal:负载均衡器方案。如果是内部的,则可以访问loadbalancer 仅在专有网络内

restrict_access_to:限制http接口的cidr列表。

memory_reservation:以mbs为单位为每个任务保留的内存大小。这是软的 限制,即至少有这么多的内存可用,以及 运行容器实例时内存可用。最小值:10 MB,最大值:8000 MB

3.部署服务

  cloudlift deploy_service -e <environment-name>

6.在容器实例上为服务启动shell

可以在运行给定任务的容器实例上启动shell 使用start_session命令的应用程序。一个先决条件是 正在为awscli安装会话管理器插件。安装会话管理器 插件遵循guide

  cloudlift start_session -e <environment-name>

mfa代码可以作为参数--mfa传递,或者提示您输入 MFA代码。

有助于提高云量

测试

已添加第一级测试断言生成的cloudformation模板 和预期的一样。

py.test test/deployment/

运行高级集成测试

pytest -s test/test_cloudlift.py

这些测试期望能够访问aws控制台。 由于没有广泛的测试覆盖,最好手动测试 每当发生代码更改时受影响的区域。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用php调用java web服务时无法获取输出   java Netbeans:安装IMlet时出错。。。。仿真器错误   初始化期间Eclipse Juno SR 2中的java堆栈溢出   java在3d中寻找两个任意立方体的交集   代码中显示java“org.openqa.selenium.WebDriverException”错误   java使用AtomicInteger作为可变整数的替代品是一种好的做法吗?   当以编程方式设置背景颜色时,java版面在更新后会自动复制   java将字符串拆分为一个带有数字数据的字符串和另一个带有非数字数据的字符串   带有SSL协议的java AsyncHttpClient   C++服务器HTTN到java NtoHS客户端转换   java内存分配是基于引用类还是实例类?   java使用ProjectLombok安全吗?   grails“java版本”在命令提示符下不工作   java无法使用axis2实例化类型ADBDataSource   在Play Framework 2中进行多文件上传的java示例   java如何将二进制补码字符串转换为负十进制数?   windows 7在Java中获取不正确的操作系统名称   java如何禁用p:commandButton的enter键?   java如何从main方法加载servlet   java如何从imageView获取二进制位图