在aws弹性容器服务(ecs)集群上运行任何django管理命令。
django-ecsmanage的Python项目详细描述
一个django应用程序,它提供一个管理命令,允许您运行任何 aws弹性容器服务(ecs)上的其他管理命令 集群。
使用django-ecsmanage,您可以轻松地运行迁移和其他 从命令行执行远程群集上的一次性任务:
$ django-admin ecsmanage migrate
安装
使用pip从pypi安装:
$ pip install django-ecsmanage
更新django设置中的INSTALLED_APPS以安装应用程序:
INSTALLED_APPS=(...'ecsmanage',)
配置
管理命令的设置保存在单个配置中 Django设置中名为^{TT3}$的字典。 ECSMANAGE_ENVIRONMENTS中的每个条目都应该是键值对 对应于命名环境(如default或 production)和一组与之相关的aws资源 环境。例如:
ECSMANAGE_ENVIRONMENTS={'default':{'TASK_DEFINITION_NAME':'StagingAppCLI','CLUSTER_NAME':'ecsStagingCluster','LAUNCH_TYPE':'FARGATE','SECURITY_GROUP_TAGS':{'Name':'sgAppEcsService','Environment':'Staging','Project':'ProjectName'},'SUBNET_TAGS':{'Name':'PrivateSubnet','Environment':'Staging','Project':'ProjectName'},'AWS_REGION':'us-east-1',},}
此配置定义了一个名为default的环境,其中 关联的AWS ECS资源。
环境
环境的密钥名可以是任何字符串。你可以用这个名字 使用--env标志运行命令以在 不同的环境。拿着这个ECSMANAGE_ENVIRONMENTS 配置示例:
ECSMANAGE_ENVIRONMENTS={'default':{'TASK_DEFINITION_NAME':'StagingAppCLI','CLUSTER_NAME':'ecsStagingCluster','SECURITY_GROUP_TAGS':{'Name':'sgStagingAppEcsService',},'SUBNET_TAGS':{'Name':'StagingPrivateSubnet',},},'production':{'TASK_DEFINITION_NAME':'ProductionAppCLI','CLUSTER_NAME':'ecsProductionCluster','SECURITY_GROUP_TAGS':{'Name':'sgProductionAppEcsService',},'SUBNET_TAGS':{'Name':'ProductionPrivateSubnet',},},}
此配置定义了两个环境,default和 production。使用上述设置,您可以运行生产 使用以下命令进行迁移:
$ django-admin ecsmanage --env production migrate
如果--env参数不存在,则该命令将默认为 名为default的环境。
aws资源
以下环境配置键帮助管理命令查找 适合您集群的aws资源:
Key | Description | Default |
---|---|---|
^{tt14}$ | The name of your ECS task definition. The command will automatically retrieve the latest definition. | |
^{tt15}$ | The name of your ECS cluster. | |
^{tt16}$ | A dictionary of tags to use to identify a security group for your task. | |
^{tt17}$ | A dictionary of tags to use to identify a subnet for your task. | |
^{tt18}$ | The ECS launch type for your task. | ^{tt19}$ |
^{tt20}$ | The AWS region to run your task. | ^{tt21}$ |
开发
本地开发由python虚拟环境管理。确保 在启动之前已经安装了Python2.7+和PIP。
在虚拟环境中安装开发包:
$ ./scripts/update
运行测试:
$ ./scripts/test