跳转到主要内容

Buddy,您的Cloudformation/ECS代驾

项目描述

管理您的AWS基础设施的实用工具。

管理您的cloudformation堆栈

云formation堆栈由堆栈文件描述

  • YAML格式

  • 指定要使用的Cloudformation 模板

  • 指定创建/更新堆栈时使用的参数

示例

$ bstack list
...

$ cat .aws/production.yaml
name: helloworld
template: service.yaml

$ cat service.yaml
AWSTemplateFormatVersion: 2010-09-09
Description: Handle Service
Resources:
...

$ bstack create .aws/production.yaml
$ bstack events helloworld  # or bstack events .aws/production.yaml
$ bstack resources helloworld
$ bstack update .aws/production.yaml
$ bstack delete helloworld

管理您的ECS上的服务和任务

Alpha:处于开发中。目前仅实现了ECS上的持续部署的部署操作。

$ cat .aws/cluster.yaml
targets:
  production:
    cluster: production
    service: service-Service-1234567890JVM
    task: helloworld
    environment: production
tasks:
  helloworld:
    containers:
      - http
      - app
      - celery
environments:
  production:
    SECRET_KEY: s3cr3t
    DATABASE_URL: postgis://user:pass@host/name
    REDIS_URL: redis://host:6379
containers:
  http:
    properties:
      memory: 100
      cpu: 100
      portMappings:
        - containerPort: 80
          hostPort: 0  # 0 = dynamic port
      links: ['app']
      command: ['nginx', '-g', 'daemon off;']
  app:
    properties:
      memory: 200
      cpu: 200
    environment:
      [SECRET_KEY, DATABASE_URL, REDIS_URL]
  celery:
    properties:
      memory: 150
      cpu: 100
      command: ['celery', '-A', 'helloworld', 'worker', '-B', '-l', 'info']
    environment:
      [DATABASE_URL, REDIS_URL]

$ bcluster deploy .aws/cluster.yaml production registry/myapp:latest a1b2c3d4
Definition:
[{'command': ['nginx', '-g', 'daemon off;'],
  'cpu': 100,
  ...
]

Register task
Registered task: arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:123
Deploying...
Wait: deployment in progress
arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:123 - PRIMARY - running: 0
arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:122 - ACTIVE - running: 2

Wait: deployment in progress
arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:123 - PRIMARY - running: 0
arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:122 - ACTIVE - running: 2

Wait: deployment in progress
arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:123 - PRIMARY - running: 2
arn:aws:ecs:us-east-1:000000000000:task-definition/helloworld:122 - ACTIVE - running: 0

Final state:
...

Success

开发

运行测试

$ git clone git@github.com:pior/buddy.git
...
$ mkvirtualenv buddy -p python3
...
$ pip install -U -r requirements-test.txt
...
$ pip install -e .
...
$ pytest

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分布

buddy-0.0.3.tar.gz (7.4 kB 查看哈希值)

上传于 来源

构建的发行版

buddy-0.0.3-py3-none-any.whl (10.7 kB 查看哈希值)

上传于 Python 3

由...