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 查看散列)