在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 Square类   java Android RecyclerView内部视图寻呼机   java类变量:公共访问只读,但私有访问r/w   java不兼容ClassChangeError java8   安卓java on on参数,如参数iNIT.C++C++   java如何在下面的代码中根据我的喜好设置JTextArea和JTextField的大小?   java使用CustomAdapter更改ListView的显示方式   jakarta ee什么是Java Servlet?   传递给Javasocket程序的参数   java为什么我的计划任务在这两者之间有很长的延迟   Java“迭代器”关键字   java获取数据库SQLite Android中插入行的行ID   网络如何在Java应用程序中设置H2嵌入式数据库,以便在小型网络中使用?   数组Java:写出所有包含K1的Nbit序列   java返回随机字符串键的整数值   在java中解析到日期的字符串时保留时区   java如何修复“运行配置错误:[在SDK中找不到Rails]”?   Java包装器OutofMemory