{ "info": { "author": "Azavea, Inc.", "author_email": "systems@azavea.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Framework :: Django :: 2.2", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "django-ecsmanage\n================\n\n.. image:: https://travis-ci.org/azavea/django-ecsmanage.svg?branch=develop\n :target: https://travis-ci.org/azavea/django-ecsmanage\n\nA Django app that provides a management command allowing you to run any\nother management command on an AWS Elastic Container Service (ECS)\ncluster.\n\nWith ``django-ecsmanage``, you can easily run migrations and other\none-off tasks on a remote cluster from the command line:\n\n::\n\n $ django-admin ecsmanage migrate\n\nTable of Contents\n-----------------\n\n- `Installation`_\n- `Configuration`_\n\n - `Environments`_\n - `AWS Resources`_\n\n- `Developing`_\n\nInstallation\n------------\n\nInstall from PyPi using pip:\n\n.. code:: bash\n\n $ pip install django-ecsmanage\n\nUpdate ``INSTALLED_APPS`` in your Django settings to install the app:\n\n.. code:: python\n\n INSTALLED_APPS = (\n ...\n 'ecsmanage',\n )\n\nConfiguration\n-------------\n\nSettings for the management command are kept in a single configuration\ndictionary in your Django settings named ``ECSMANAGE_ENVIRONMENTS``.\nEach entry in ``ECSMANAGE_ENVIRONMENTS`` should be a key-value pair\ncorresponding to a named environment (like ``default`` or\n``production``) and a set of AWS resources associated with that\nenvironment. For example:\n\n.. code:: python\n\n ECSMANAGE_ENVIRONMENTS = {\n 'default': {\n 'TASK_DEFINITION_NAME': 'StagingAppCLI',\n 'CLUSTER_NAME': 'ecsStagingCluster',\n 'LAUNCH_TYPE': 'FARGATE',\n 'SECURITY_GROUP_TAGS': {\n 'Name': 'sgAppEcsService',\n 'Environment': 'Staging',\n 'Project': 'ProjectName'\n },\n 'SUBNET_TAGS': {\n 'Name': 'PrivateSubnet',\n 'Environment': 'Staging',\n 'Project': 'ProjectName'\n },\n 'AWS_REGION': 'us-east-1',\n },\n }\n\nThis configuration defines a single environment, named ``default``, with\nassociated AWS ECS resources.\n\nEnvironments\n~~~~~~~~~~~~\n\nThe key name for an environment can be any string. You can use this name\nwith the ``--env`` flag when running the command to run a command on a\ndifferent environment. Take this ``ECSMANAGE_ENVIRONMENTS``\nconfiguration as an example:\n\n.. code:: python\n\n ECSMANAGE_ENVIRONMENTS = {\n 'default': {\n 'TASK_DEFINITION_NAME': 'StagingAppCLI',\n 'CLUSTER_NAME': 'ecsStagingCluster',\n 'SECURITY_GROUP_TAGS': {\n 'Name': 'sgStagingAppEcsService',\n },\n 'SUBNET_TAGS': {\n 'Name': 'StagingPrivateSubnet',\n },\n },\n 'production': {\n 'TASK_DEFINITION_NAME': 'ProductionAppCLI',\n 'CLUSTER_NAME': 'ecsProductionCluster',\n 'SECURITY_GROUP_TAGS': {\n 'Name': 'sgProductionAppEcsService',\n },\n 'SUBNET_TAGS': {\n 'Name': 'ProductionPrivateSubnet',\n },\n },\n }\n\nThis configuration defines two environments, ``default`` and\n``production``. Using the above settings, you could run production\nmigrations with the following command:\n\n.. code:: bash\n\n $ django-admin ecsmanage --env production migrate\n\nIf the ``--env`` argument is not present, the command will default to\nthe environment named ``default``.\n\nAWS Resources\n~~~~~~~~~~~~~\n\nThe following environment configuration keys help the management command locate\nthe appropriate AWS resources for your cluster:\n\n+--------------------------+-----------------------------------------------------+---------------+\n| Key | Description | Default |\n| | | |\n| | | |\n| | | |\n+==========================+=====================================================+===============+\n| ``TASK_DEFINITION_NAME`` | The name of your ECS task definition. The command | |\n| | will automatically retrieve the latest definition. | |\n+--------------------------+-----------------------------------------------------+---------------+\n| ``CLUSTER_NAME`` | The name of your ECS cluster. | |\n+--------------------------+-----------------------------------------------------+---------------+\n| ``SECURITY_GROUP_TAGS`` | A dictionary of tags to use to identify a security | |\n| | group for your task. | |\n+--------------------------+-----------------------------------------------------+---------------+\n| ``SUBNET_TAGS`` | A dictionary of tags to use to identify a subnet | |\n| | for your task. | |\n+--------------------------+-----------------------------------------------------+---------------+\n| ``LAUNCH_TYPE`` | The ECS launch type for your task. | ``FARGATE`` |\n+--------------------------+-----------------------------------------------------+---------------+\n| ``AWS_REGION`` | The AWS region to run your task. | ``us-east-1`` |\n+--------------------------+-----------------------------------------------------+---------------+\n\nDeveloping\n----------\n\nLocal development is managed with Python virtual environments. Make sure\nthat you have Python 2.7+ and pip installed before starting.\n\nInstall the development package in a virtual environment:\n\n.. code:: bash\n\n $ ./scripts/update\n\nRun the tests:\n\n.. code:: bash\n\n $ ./scripts/test\n\n.. _Installation: #installation\n.. _Configuration: #configuration\n.. _Environments: #environments\n.. _AWS Resources: #aws-resources\n.. _Developing: #developing\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/azavea/django-ecsmanage/", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "django-ecsmanage", "package_url": "https://pypi.org/project/django-ecsmanage/", "platform": "", "project_url": "https://pypi.org/project/django-ecsmanage/", "project_urls": { "Homepage": "https://github.com/azavea/django-ecsmanage/" }, "release_url": "https://pypi.org/project/django-ecsmanage/1.1.0/", "requires_dist": [ "Django (<2.3,>=1.11)", "boto3 (>=1.9.0)", "future-fstrings (>=1.0.0)", "flake8 (>=3.7.7) ; extra == 'tests'", "black ; (python_version > \"3.6\") and extra == 'tests'" ], "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "summary": "Run any Django management command on an AWS Elastic Container Service(ECS) cluster.", "version": "1.1.0" }, "last_serial": 5535270, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "00bb39ae6b32b1f837102fb8ff6e5979", "sha256": "36d85dc7b022c479baef2efad9f82080ded1c8da86d133fff61e8f1d1daaacf9" }, "downloads": -1, "filename": "django-ecsmanage-0.0.0.tar.gz", "has_sig": false, "md5_digest": "00bb39ae6b32b1f837102fb8ff6e5979", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9612, "upload_time": "2019-02-28T19:46:34", "url": "https://files.pythonhosted.org/packages/85/d2/3765ae1c1712e4b14a792e7704ea08a3d5eab397a58fb115cbc1528ffdc2/django-ecsmanage-0.0.0.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "dff38a8ffe5bf122afbe6bf0568a8d5b", "sha256": "6ee57c97dd7678aa551a97aecb60e6426ef7716a8d5de3897e7224d98df18989" }, "downloads": -1, "filename": "django_ecsmanage-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "dff38a8ffe5bf122afbe6bf0568a8d5b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 11125, "upload_time": "2019-04-08T20:31:26", "url": "https://files.pythonhosted.org/packages/51/b7/9a44e16da349b2ab3ef86739520d25f54aa38e04188a1e34699684f2bbcf/django_ecsmanage-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78dbb9cb3ae0e2a14d62f3ed2c5b5e62", "sha256": "a52a5ce80ba84a7cc4d79e21bcc8d827f4917ee76586f735fde25ae5a0532836" }, "downloads": -1, "filename": "django-ecsmanage-0.1.0.tar.gz", "has_sig": false, "md5_digest": "78dbb9cb3ae0e2a14d62f3ed2c5b5e62", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 12914, "upload_time": "2019-04-08T20:31:28", "url": "https://files.pythonhosted.org/packages/be/45/ff682e9fc6a0ac1e7b3c45194af3797ca3929cdebb3195cabcdc1f91ee8c/django-ecsmanage-0.1.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "cf74a61d9fd076941578ab69c6d687c5", "sha256": "3e603804f06f3b5c137e2718e600b80e98c3f16dad7d576f937b97c3bcf01a75" }, "downloads": -1, "filename": "django_ecsmanage-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cf74a61d9fd076941578ab69c6d687c5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11194, "upload_time": "2019-05-01T15:07:38", "url": "https://files.pythonhosted.org/packages/b6/f2/0ff6fb5b4f249c7949a421aff0bb9dbe8e94e96d985972a3f21896981f8f/django_ecsmanage-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "40fefe31bde7b09737073c80e2e4b657", "sha256": "f500c8ff2d38101d55e9bba9640895e333f4cba98a6c77e9847c78558cfbeafe" }, "downloads": -1, "filename": "django-ecsmanage-1.0.0.tar.gz", "has_sig": false, "md5_digest": "40fefe31bde7b09737073c80e2e4b657", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13083, "upload_time": "2019-05-01T15:07:40", "url": "https://files.pythonhosted.org/packages/9d/2d/13bacb3365dfc95701863e417306912377366eb534fb4ce95dccb77d0995/django-ecsmanage-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "4d965a6625097bb9e56605767baf38f2", "sha256": "57010f459db4573e45f0de4159a9cd6b6b3f8ff9ac02f0f8f3a5f9a8d18a70f4" }, "downloads": -1, "filename": "django_ecsmanage-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4d965a6625097bb9e56605767baf38f2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 11350, "upload_time": "2019-05-21T20:54:36", "url": "https://files.pythonhosted.org/packages/b6/9e/a28bf6ef7780e740494345515abdd32b3e0d353e502833644359939c2cdd/django_ecsmanage-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "df2a964e210244deb127e9756e7cd347", "sha256": "2158a1a908a5caa45f16b9e30d3f13e932f9d7d37f2a5589d139ac28babb0c8d" }, "downloads": -1, "filename": "django-ecsmanage-1.0.1.tar.gz", "has_sig": false, "md5_digest": "df2a964e210244deb127e9756e7cd347", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 13808, "upload_time": "2019-05-21T20:54:37", "url": "https://files.pythonhosted.org/packages/7c/ca/cc370093bad474b5bed1647c35e7203d08402f7aaf7d36445cd59fc83ff8/django-ecsmanage-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "8b7e600121871e87ae2528daa0d21c1a", "sha256": "2db4381f95702d5aea97a8631ced3a066ace3374df4ea78c186d5d2e7bbf93c8" }, "downloads": -1, "filename": "django_ecsmanage-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8b7e600121871e87ae2528daa0d21c1a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 11361, "upload_time": "2019-07-15T14:32:28", "url": "https://files.pythonhosted.org/packages/53/76/d0154a25c2843e91d90d0c17490cb0a7eef2dfdd961072dbce799ae3b00e/django_ecsmanage-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "799b26a9393a0fc2eebf5390450d544c", "sha256": "951375846675e4b3f0d8005e4ac83cc0e04455719d95bbfee585f8a13d98aacd" }, "downloads": -1, "filename": "django-ecsmanage-1.1.0.tar.gz", "has_sig": false, "md5_digest": "799b26a9393a0fc2eebf5390450d544c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 13920, "upload_time": "2019-07-15T14:32:31", "url": "https://files.pythonhosted.org/packages/07/58/9e2e7d851f3b7b029f4990cff82381c432fee98b7ca4bf199df48769be28/django-ecsmanage-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8b7e600121871e87ae2528daa0d21c1a", "sha256": "2db4381f95702d5aea97a8631ced3a066ace3374df4ea78c186d5d2e7bbf93c8" }, "downloads": -1, "filename": "django_ecsmanage-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8b7e600121871e87ae2528daa0d21c1a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 11361, "upload_time": "2019-07-15T14:32:28", "url": "https://files.pythonhosted.org/packages/53/76/d0154a25c2843e91d90d0c17490cb0a7eef2dfdd961072dbce799ae3b00e/django_ecsmanage-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "799b26a9393a0fc2eebf5390450d544c", "sha256": "951375846675e4b3f0d8005e4ac83cc0e04455719d95bbfee585f8a13d98aacd" }, "downloads": -1, "filename": "django-ecsmanage-1.1.0.tar.gz", "has_sig": false, "md5_digest": "799b26a9393a0fc2eebf5390450d544c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 13920, "upload_time": "2019-07-15T14:32:31", "url": "https://files.pythonhosted.org/packages/07/58/9e2e7d851f3b7b029f4990cff82381c432fee98b7ca4bf199df48769be28/django-ecsmanage-1.1.0.tar.gz" } ] }