在aws弹性容器服务(ecs)集群上运行任何django管理命令。

django-ecsmanage的Python项目详细描述


https://travis-ci.org/azavea/django-ecsmanage.svg?branch=develop

一个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中的每个条目都应该是键值对 对应于命名环境(如defaultproduction)和一组与之相关的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',},},}

此配置定义了两个环境,defaultproduction。使用上述设置,您可以运行生产 使用以下命令进行迁移:

$ django-admin ecsmanage --env production migrate

如果--env参数不存在,则该命令将默认为 名为default的环境。

aws资源

以下环境配置键帮助管理命令查找 适合您集群的aws资源:

KeyDescriptionDefault
^{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

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

推荐PyPI第三方库


热门话题
java使用(BluetoothGattCharacteristic)特性中的数据创建、写入和保存csv文件。getValue()   java如何使用groupBy创建一个值为BigDecimal字段平均值的映射?   日期时间Java将iso_即时格式的字符串转换为日期   java如何检索和显示Android firebase的配置文件?   scala AWSJAVASDK:解压缩大小必须小于262144000字节   要应用于列表的java JSTL if条件   java在3个点之间画一个正方形   Kotlin java抽象类IllegaAccessError   java原语双值相等取决于大小?   java有没有一种方法可以对数据集使用compareTo()方法,而不必遍历数据集的每个元素?   java为什么我发送的每个UDP消息都会改变端口源?   重新选择文件时swing Java JTree冻结   java不知道我的游戏是怎么回事   Motif L&F中自定义组合框渲染器中的Java Swing消失文本   java Trade Me API访问前的OAuth