跳转到主要内容

Amazon ECS部署工具

项目描述

Amazon ECS部署工具。

安装

pip install ecs-deplojo

用法

Usage: ecs-deplojo [OPTIONS]

Options:
  --config FILENAME   [required]
  --var VAR
  --dry-run
  --output-path PATH
  --role-arn <optional arn>
  --help              Show this message and exit.

示例配置

---
cluster_name: example

environment:
    DATABASE_URL: postgresql://

task_definitions:
  web:
    template: task_definitions/web.json
    overrides:
      uwsgi:
        memory: 512
        portMappings:
          - hostPort: 0
            containerPort: 8080
            protocol: tcp
  manage:
    template: task_definitions/manage.json

services:
  web:
    task_definition: web

before_deploy:
  - task_definition: manage
    container: uwsgi
    command: manage.py migrate --noinput

after_deploy:
  - task_definition: manage
    container: uwsgi
    command: manage.py clearsessions

使用SSM密钥

当您想在配置中使用AWS SSM密钥时,可以使用secrets部分,但需要在AWS中进行一些额外的配置。

首先,您需要一个AWS IAM角色作为ECS执行角色使用,此角色需要访问Secrets Manager或参数存储中的密钥,并且仅在Docker容器启动时使用。

示例配置

--
cluster_name: example

environment:
  NORMAL_ENV_VAR: value_of_variable

secrets:
  DATABASE_URL: /path/to/secret/DATABASE_URL

task_definitions:
  web:
    execution_role_arn: arn:aws:iam::<account_id>:role/execution_role_name
    template: task_definitions/web.json

services:
  web:
    task_definition: web

当容器启动时,密钥作为环境变量可用,并在AWS ECS控制台中隐藏。

AWS默认VPC

当在AWS默认VPC中运行服务器时,您需要在任务定义JSON文件中使用networkMode="awsvpc",这将确保容器不会设置主机名,因为AWS不支持此操作。

AWS Fargate

与基于EC2的集群不同,AWS Fargate需要< span class="docutils literal">执行角色arn才能工作,这可以在YAML文件中的服务定义中设置。

示例日志输出

Starting deploy on cluster example (1 services)
Registered new task definition web:10
Starting one-off task 'manage.py migrate --noinput' via manage:10 (uwsgi)
Updating service web with task defintion web:10
Waiting for deployments
Waiting for services: web (0/2)
Waiting for services: web (1/2)
Waiting for services: web (2/2)
Deployment finished: web (2/2)
Starting one-off task 'manage.py clearsessions' via manage:10 (uwsgi)

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分发

ecs-deplojo-0.9.2.tar.gz (10.9 kB 查看散列)

上传时间

构建分发

ecs_deplojo-0.9.2-py2.py3-none-any.whl (12.2 kB 查看散列)

上传时间 Python 2 Python 3

由...