{ "info": { "author": "Fabian Fuelling", "author_email": "pypi@fabfuel.de", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: MacOS", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "ECS Deploy\n----------\n\n.. image:: https://travis-ci.org/fabfuel/ecs-deploy.svg?branch=develop\n :target: https://travis-ci.org/fabfuel/ecs-deploy\n\n.. image:: https://scrutinizer-ci.com/g/fabfuel/ecs-deploy/badges/coverage.png?b=develop\n :target: https://scrutinizer-ci.com/g/fabfuel/ecs-deploy\n\n.. image:: https://scrutinizer-ci.com/g/fabfuel/ecs-deploy/badges/quality-score.png?b=develop\n :target: https://scrutinizer-ci.com/g/fabfuel/ecs-deploy\n\n`ecs-deploy` simplifies deployments on Amazon ECS by providing a convinience CLI tool for complex actions, which are executed pretty often.\n\nKey Features\n------------\n- support for complex task definitions (e.g. multiple containers & task role)\n- easily redeploy the current task definition (including `docker pull` of eventually updated images)\n- deploy new versions/tags or all containers or just a single container in your task definition\n- scale up or down by adjusting the desired count of running tasks\n- add or adjust containers environment variables\n- run one-off tasks from the CLI\n- automatically monitor deployments in New Relic\n\nTL;DR\n-----\nDeploy a new version of your service::\n\n $ ecs deploy my-cluster my-service --tag 1.2.3\n\nRedeploy the current version of a service::\n\n $ ecs deploy my-cluster my-service\n\nScale up or down a service::\n\n $ ecs scale my-cluster my-service 4\n\nUpdating a cron job::\n\n $ ecs cron my-cluster my-task my-rule\n\nUpdate a task definition (without running or deploying)::\n\n $ ecs update my-cluster my-task\n\n\nInstallation\n------------\n\nThe project is availably on PyPI. Simply run::\n\n $ pip install ecs-deploy\n\n\nRun via Docker\n--------------\nInstead of installing **ecs-deploy** locally, which requires a Python environment, you can run **ecs-deploy** via Docker. All versions starting from 1.7.1 are available on Docker Hub: https://cloud.docker.com/repository/docker/fabfuel/ecs-deploy\n\nRunning **ecs-deploy** via Docker is easy as::\n\n docker run fabfuel/ecs-deploy:1.7.1\n \nIn this example, the stable version 1.7.1 is executed. Alternatively you can use Docker tags ``master`` or ``latest`` for the latest stable version or Docker tag ``develop`` for the newest development version of **ecs-deploy**.\n\nPlease be aware, that when running **ecs-deploy** via Docker, the configuration - as described below - does not apply. You have to provide credentials and the AWS region via the command as attributes or environment variables::\n\n docker run fabfuel/ecs-deploy:1.7.1 ecs deploy my-cluster my-service --region eu-central-1 --access-key-id ABC --secret-access-key ABC\n\n\nConfiguration\n-------------\nAs **ecs-deploy** is based on boto3 (the official AWS Python library), there are several ways to configure and store the\nauthentication credentials. Please read the boto3 documentation for more details\n(http://boto3.readthedocs.org/en/latest/guide/configuration.html#configuration). The simplest way is by running::\n\n $ aws configure\n\nAlternatively you can pass the AWS credentials (via `--access-key-id` and `--secret-access-key`) or the AWS\nconfiguration profile (via `--profile`) as options when you run `ecs`.\n\nActions\n-------\nCurrently the following actions are supported:\n\ndeploy\n======\nRedeploy a service either without any modifications or with a new image, environment variable and/or command definition.\n\nscale\n=====\nScale a service up or down and change the number of running tasks.\n\nrun\n===\nRun a one-off task based on an existing task-definition and optionally override command and/or environment variables.\n\nupdate\n======\nUpdate a task definition by creating a new revision to set a new image,\nenvironment variable and/or command definition, etc.\n\ncron (scheduled task)\n=====================\nUpdate a task definition and update a events rule (scheduled task) to use the\nnew task definition.\n\n\nUsage\n-----\n\nFor detailed information about the available actions, arguments and options, run::\n\n $ ecs deploy --help\n $ ecs scale --help\n $ ecs run --help\n\nExamples\n--------\nAll examples assume, that authentication has already been configured.\n\nDeployment\n----------\n\nSimple Redeploy\n===============\nTo redeploy a service without any modifications, but pulling the most recent image versions, run the follwing command.\nThis will duplicate the current task definition and cause the service to redeploy all running tasks.::\n\n $ ecs deploy my-cluster my-service\n\n\nDeploy a new tag\n================\nTo change the tag for **all** images in **all** containers in the task definition, run the following command::\n\n $ ecs deploy my-cluster my-service -t 1.2.3\n\n\nDeploy a new image\n==================\nTo change the image of a specific container, run the following command::\n\n $ ecs deploy my-cluster my-service --image webserver nginx:1.11.8\n\nThis will modify the **webserver** container only and change its image to \"nginx:1.11.8\".\n\n\nDeploy several new images\n=========================\nThe `-i` or `--image` option can also be passed several times::\n\n $ ecs deploy my-cluster my-service -i webserver nginx:1.9 -i application my-app:1.2.3\n\nThis will change the **webserver**'s container image to \"nginx:1.9\" and the **application**'s image to \"my-app:1.2.3\".\n\nDeploy a custom task definition\n===============================\nTo deploy any task definition (independent of which is currently used in the service), you can use the ``--task`` parameter. The value can be:\n\nA fully qualified task ARN::\n\n $ ecs deploy my-cluster my-service --task arn:aws:ecs:eu-central-1:123456789012:task-definition/my-task:20\n\nA task family name with revision::\n\n $ ecs deploy my-cluster my-service --task my-task:20\n\nOr just a task family name. It this case, the most recent revision is used::\n\n $ ecs deploy my-cluster my-service --task my-task\n\n.. important::\n ``ecs`` will still create a new task definition, which then is used in the service.\n This is done, to retain consistent behaviour and to ensure the ECS agent e.g. pulls all images.\n But the newly created task definition will be based on the given task, not the currently used task.\n\n\nSet an environment variable\n===========================\nTo add a new or adjust an existing environment variable of a specific container, run the following command::\n\n $ ecs deploy my-cluster my-service -e webserver SOME_VARIABLE SOME_VALUE\n\nThis will modify the **webserver** container definition and add or overwrite the environment variable `SOME_VARIABLE` with the value \"SOME_VALUE\". This way you can add new or adjust already existing environment variables.\n\n\nAdjust multiple environment variables\n=====================================\nYou can add or change multiple environment variables at once, by adding the `-e` (or `--env`) options several times::\n\n $ ecs deploy my-cluster my-service -e webserver SOME_VARIABLE SOME_VALUE -e webserver OTHER_VARIABLE OTHER_VALUE -e app APP_VARIABLE APP_VALUE\n\nThis will modify the definition **of two containers**.\nThe **webserver**'s environment variable `SOME_VARIABLE` will be set to \"SOME_VALUE\" and the variable `OTHER_VARIABLE` to \"OTHER_VALUE\".\nThe **app**'s environment variable `APP_VARIABLE` will be set to \"APP_VALUE\".\n\n\nSet environment variables exclusively, remove all other pre-existing environment variables\n==========================================================================================\nTo reset all existing environment variables of a task definition, use the flag ``--exclusive-env`` ::\n\n $ ecs deploy my-cluster my-service -e webserver SOME_VARIABLE SOME_VALUE --exclusive-env\n\nThis will remove **all other** existing environment variables of **all containers** of the task definition, except for the variable `SOME_VARIABLE` with the value \"SOME_VALUE\" in the webserver container.\n\n\nSet a secret environment variable from the AWS Parameter Store\n==============================================================\n\n.. important::\n This option was introduced by AWS in ECS Agent v1.22.0. Make sure your ECS agent version is >= 1.22.0 or else your task will not deploy.\n\nTo add a new or adjust an existing secret of a specific container, run the following command::\n\n $ ecs deploy my-cluster my-service -s webserver SOME_SECRET KEY_OF_SECRET_IN_PARAMETER_STORE\n\nYou can also specify the full arn of the parameter::\n\n $ ecs deploy my-cluster my-service -s webserver SOME_SECRET arn:aws:ssm:::parameter/KEY_OF_SECRET_IN_PARAMETER_STORE\n\nThis will modify the **webserver** container definition and add or overwrite the environment variable `SOME_SECRET` with the value of the `KEY_OF_SECRET_IN_PARAMETER_STORE` in the AWS Parameter Store of the AWS Systems Manager.\n\n\nSet secrets exclusively, remove all other pre-existing secret environment variables\n===================================================================================\nTo reset all existing secrets (secret environment variables) of a task definition, use the flag ``--exclusive-secrets`` ::\n\n $ ecs deploy my-cluster my-service -s webserver NEW_SECRET KEY_OF_SECRET_IN_PARAMETER_STORE --exclusive-secret\n\nThis will remove **all other** existing secret environment variables of **all containers** of the task definition, except for the new secret variable `NEW_SECRET` with the value coming from the AWS Parameter Store with the name \"KEY_OF_SECRET_IN_PARAMETER_STORE\" in the webserver container.\n\nModify a command\n================\nTo change the command of a specific container, run the following command::\n\n $ ecs deploy my-cluster my-service --command webserver \"nginx\"\n\nThis will modify the **webserver** container and change its command to \"nginx\". If you have \na command that requries arugments as well, then you can simply specify it like this as you would normally do:\n\n $ ecs deploy my-cluster my-service --command webserver \"ngnix -c /etc/ngnix/ngnix.conf\"\n\nThis works fine as long as any of the arguments do not contain any spaces. In case arguments to the\ncommand itself contain spaces, then you can use the JSON format:\n\n$ ecs deploy my-cluster my-service --command webserver '[\"sh\", \"-c\", \"while true; do echo Time files like an arrow $(date); sleep 1; done;\"]'\n\nMore about this can be looked up in documentation.\nhttps://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definitions\n\n\n\n\nSet a task role\n===============\nTo change or set the role, the service's task should run as, use the following command::\n\n $ ecs deploy my-cluster my-service -r arn:aws:iam::123456789012:role/MySpecialEcsTaskRole\n\nThis will set the task role to \"MySpecialEcsTaskRole\".\n\nIgnore capacity issues\n======================\nIf your cluster is undersized or the service's deployment options are not optimally set, the cluster\nmight be incapable to run blue-green-deployments. In this case, you might see errors like these:\n\n ERROR: (service my-service) was unable to place a task because no container instance met all of\n its requirements. The closest matching (container-instance 123456-1234-1234-1234-1234567890) is\n already using a port required by your task. For more information, see the Troubleshooting\n section of the Amazon ECS Developer Guide.\n\nThere might also be warnings about insufficient memory or CPU.\n\nTo ignore these warnings, you can run the deployment with the flag ``--ignore-warnings``::\n\n $ ecs deploy my-cluster my-service --ignore-warnings\n\nIn that case, the warning is printed, but the script continues and waits for a successful\ndeployment until it times out.\n\nDeployment timeout\n==================\nThe deploy and scale actions allow defining a timeout (in seconds) via the ``--timeout`` parameter.\nThis instructs ecs-deploy to wait for ECS to finish the deployment for the given number of seconds.\n\nTo run a deployment without waiting for the successful or failed result at all, set ``--timeout`` to the value of ``-1``.\n\nScaling\n-------\n\nScale a service\n===============\nTo change the number of running tasks and scale a service up and down, run this command::\n\n $ ecs scale my-cluster my-service 4\n\n\nRunning a Task\n--------------\n\nRun a one-off task\n==================\nTo run a one-off task, based on an existing task-definition, run this command::\n\n $ ecs run my-cluster my-task\n\nYou can define just the task family (e.g. ``my-task``) or you can run a specific revision of the task-definition (e.g.\n``my-task:123``). And optionally you can add or adjust environment variables like this::\n\n $ ecs run my-cluster my-task:123 -e my-container MY_VARIABLE \"my value\"\n\n\nRun a task with a custom command\n================================\n\nYou can override the command definition via option ``-c`` or ``--command`` followed by the container name and the\ncommand in a natural syntax, e.g. no conversion to comma-separation required::\n\n $ ecs run my-cluster my-task -c my-container \"python some-script.py param1 param2\"\n\nThe JSON syntax explained above regarding modifying a command is also applicable here.\n\n\nRun a task in a Fargate Cluster\n===============================\n\nIf you want to run a one-off task in a Fargate cluster, additional configuration is required, to instruct AWS e.g. which\nsubnets or security groups to use. The required parameters for this are:\n\n- launchtype\n- securitygroup\n- subnet\n- public-ip\n\nExample::\n\n $ ecs run my-fargate-cluster my-task --launchtype=FARGATE --securitygroup sg-01234567890123456 --subnet subnet-01234567890123456 --public-ip\n\nYou can pass multiple ``subnet`` as well as multiple ``securitygroup`` values. the ``public-ip`` flag determines, if the task receives a public IP address or not.\nPlease see ``ecs run --help`` for more details.\n\n\nMonitoring\n----------\nWith ECS deploy you can track your deployments automatically. Currently only New Relic is supported:\n\nNew Relic\n=========\nTo record a deployment in New Relic, you can provide the the API Key (**Attention**: this is a specific REST API Key, not the license key) and the application id in two ways:\n\nVia cli options::\n\n $ ecs deploy my-cluster my-service --newrelic-apikey ABCDEFGHIJKLMN --newrelic-appid 1234567890\n\nOr implicitly via environment variables ``NEW_RELIC_API_KEY`` and ``NEW_RELIC_APP_ID`` ::\n\n $ export NEW_RELIC_API_KEY=ABCDEFGHIJKLMN\n $ export NEW_RELIC_APP_ID=1234567890\n $ ecs deploy my-cluster my-service\n\nOptionally you can provide an additional comment to the deployment via ``--comment \"New feature X\"`` and the name of the user who deployed with ``--user john.doe``\n\n\nTroubleshooting\n---------------\nIf the service configuration in ECS is not optimally set, you might be seeing\ntimeout or other errors during the deployment.\n\nTimeout\n=======\nThe timeout error means, that AWS ECS takes longer for the full deployment cycle then ecs-deploy is told to wait. The deployment itself still might finish successfully, if there are no other problems with the deployed containers.\n\nYou can increase the time (in seconds) to wait for finishing the deployment via the ``--timeout`` parameter. This time includes the full cycle of stopping all old containers and (re)starting all new containers. Different stacks require different timeout values, the default is 300 seconds.\n\nThe overall deployment time depends on different things:\n\n- the type of the application. For example node.js containers tend to take a long time to get stopped. But nginx containers tend to stop immediately, etc.\n- are old and new containers able to run in parallel (e.g. using dynamic ports)?\n- the deployment options and strategy (Maximum percent > 100)?\n- the desired count of running tasks, compared to\n- the number of ECS instances in the cluster\n\n\nAlternative Implementation\n--------------------------\nThere are some other libraries/tools available on GitHub, which also handle the deployment of containers in AWS ECS. If you prefer another language over Python, have a look at these projects:\n\nShell\n ecs-deploy - https://github.com/silinternational/ecs-deploy\n\nRuby\n broadside - https://github.com/lumoslabs/broadside", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/fabfuel/ecs-deploy/archive/1.10.0.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/fabfuel/ecs-deploy", "keywords": "", "license": "BSD-3-Clause", "maintainer": "", "maintainer_email": "", "name": "ecs-deploy", "package_url": "https://pypi.org/project/ecs-deploy/", "platform": "any", "project_url": "https://pypi.org/project/ecs-deploy/", "project_urls": { "Download": "https://github.com/fabfuel/ecs-deploy/archive/1.10.0.tar.gz", "Homepage": "https://github.com/fabfuel/ecs-deploy" }, "release_url": "https://pypi.org/project/ecs-deploy/1.10.0/", "requires_dist": null, "requires_python": "", "summary": "Powerful CLI tool to simplify Amazon ECS deployments, rollbacks & scaling", "version": "1.10.0" }, "last_serial": 5902236, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "684a61f72052c4158332ee3e7a030b2d", "sha256": "48998da8ed2a7af59fad54977bec17a62b2cbec8bdf594cc41a570faccef51a2" }, "downloads": -1, "filename": "ecs-deploy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "684a61f72052c4158332ee3e7a030b2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4313, "upload_time": "2016-03-13T12:03:31", "url": "https://files.pythonhosted.org/packages/48/ef/6ca256a8ac11299e8735d5976dc54881e0b8fea4584fe163461dc70738c0/ecs-deploy-0.1.0.tar.gz" } ], "0.2.0": [], "0.3.0": [ { "comment_text": "", "digests": { "md5": "e9795990cae63a6fec3747099b7da34c", "sha256": "48e06f0a434da754d27affe19093b5d8965eeda71ada3c9df09454158bffd266" }, "downloads": -1, "filename": "ecs-deploy-0.3.0.tar.gz", "has_sig": false, "md5_digest": "e9795990cae63a6fec3747099b7da34c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13214, "upload_time": "2016-07-31T06:53:09", "url": "https://files.pythonhosted.org/packages/a5/d6/2581a03e4bf88be1593f347132f7229a8260f275038fec5fd6f502011a27/ecs-deploy-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "e6ded8fb4a1046b4bc9b16b694ab7f60", "sha256": "1afcca491209d895ea6cb016664ecfdb5bb692cd041c571312b34024efd9d6e9" }, "downloads": -1, "filename": "ecs-deploy-0.3.1.tar.gz", "has_sig": false, "md5_digest": "e6ded8fb4a1046b4bc9b16b694ab7f60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13234, "upload_time": "2016-08-02T19:35:28", "url": "https://files.pythonhosted.org/packages/a3/39/1f2c150aff92677c2761bc6a2466572a54f01a35afaff246da7c685dc7a6/ecs-deploy-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "29fa51d40e1b562a0df2135c78c263b2", "sha256": "3851a715e7a32f4af8903f122aac4808b8ff971479aba6bd37fc845afa3a2c21" }, "downloads": -1, "filename": "ecs-deploy-0.3.2.tar.gz", "has_sig": false, "md5_digest": "29fa51d40e1b562a0df2135c78c263b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13253, "upload_time": "2016-08-12T14:39:54", "url": "https://files.pythonhosted.org/packages/87/db/27c2d784e8492238979a250d79557eddc0c54c942477318222bc6ac18f35/ecs-deploy-0.3.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "9b12a504f2f832f657bb219ef87673b8", "sha256": "6754cdad8205b75b276cbb3435eaba3a8274d317c189e11e03bb14f413684aff" }, "downloads": -1, "filename": "ecs-deploy-1.0.0.tar.gz", "has_sig": false, "md5_digest": "9b12a504f2f832f657bb219ef87673b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15201, "upload_time": "2016-10-07T13:33:53", "url": "https://files.pythonhosted.org/packages/33/27/769b19bcca989420ff86cb12784b3131bfe38c7c5079b5d149e3b2db4550/ecs-deploy-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "16c32a38462897eb0c2b694ea9862810", "sha256": "b125c07f13c73d154b3ad116db06f1571ef8750e482dfb21147288606103aff8" }, "downloads": -1, "filename": "ecs_deploy-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "16c32a38462897eb0c2b694ea9862810", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8693, "upload_time": "2016-11-15T13:10:41", "url": "https://files.pythonhosted.org/packages/ba/07/ed9d4078f85c97539dfb6b96037e9b8f512b8a6f5745aaee73ecf8c3398c/ecs_deploy-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "93cc70db3fa40e802bc34315835a1446", "sha256": "80e82dcb92b6c4dbffb23a5fb8b1c49cb45c45e6d6f0be254908acd36a942c46" }, "downloads": -1, "filename": "ecs-deploy-1.1.0.tar.gz", "has_sig": false, "md5_digest": "93cc70db3fa40e802bc34315835a1446", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8817, "upload_time": "2016-11-15T13:10:44", "url": "https://files.pythonhosted.org/packages/f1/b8/622e671a1d5e4d4618848c0331a421812b1b413acf9edb4a308683b37e6b/ecs-deploy-1.1.0.tar.gz" } ], "1.10.0": [ { "comment_text": "", "digests": { "md5": "f9d0f7999461e24ab4c34ce7ecbf9d5d", "sha256": "ca687d0374f20aff7b2a3a9789ef4482dca93817d379f58f153de18246f6a18c" }, "downloads": -1, "filename": "ecs-deploy-1.10.0.tar.gz", "has_sig": false, "md5_digest": "f9d0f7999461e24ab4c34ce7ecbf9d5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23285, "upload_time": "2019-09-29T09:43:12", "url": "https://files.pythonhosted.org/packages/99/61/11debfae8bd6f085ee67b32d58b9e41100d32693cca8a04574d2fc9bb3da/ecs-deploy-1.10.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "d5c003f8a20f503d9b4a52e773cca97d", "sha256": "b4646be006966853777685e79426cb314aff5510f1a662e5a3e24c1b9746ddf8" }, "downloads": -1, "filename": "ecs-deploy-1.2.0.tar.gz", "has_sig": false, "md5_digest": "d5c003f8a20f503d9b4a52e773cca97d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10427, "upload_time": "2017-06-28T05:22:29", "url": "https://files.pythonhosted.org/packages/bc/8a/22cb3e31f07f6b65aff1df8f0868ddd8bc2817672fba713a36637af473c0/ecs-deploy-1.2.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "7f81c22f8e4016ba8b07228b57d1bceb", "sha256": "e4637befcaba26019f7885a2e81ed2ca30b3ac342e5a890e15ad1b71bd0291a4" }, "downloads": -1, "filename": "ecs-deploy-1.3.1.tar.gz", "has_sig": false, "md5_digest": "7f81c22f8e4016ba8b07228b57d1bceb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10821, "upload_time": "2017-09-20T17:33:58", "url": "https://files.pythonhosted.org/packages/53/b7/9815b8a911c8432eaec74597058b710859bdafe89236968823e9ad338843/ecs-deploy-1.3.1.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "2dcef61d15673baba3a505e042993964", "sha256": "4989c4e0796aa55ad909cc847ce83e637a6e705d3828eaa8deb6c3c46b214629" }, "downloads": -1, "filename": "ecs-deploy-1.4.1.tar.gz", "has_sig": false, "md5_digest": "2dcef61d15673baba3a505e042993964", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11813, "upload_time": "2017-10-22T13:01:42", "url": "https://files.pythonhosted.org/packages/6c/be/667be75596410cb7f017c8ce1632765a59beb1c8759eebfb832487ecb714/ecs-deploy-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "be68f934af5dc8eda9389ea2e8b9a462", "sha256": "e31e956ae9bc94867d37a863c6919b921f4efc03b95bf44546d45631c1a49ab2" }, "downloads": -1, "filename": "ecs-deploy-1.4.2.tar.gz", "has_sig": false, "md5_digest": "be68f934af5dc8eda9389ea2e8b9a462", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11833, "upload_time": "2017-10-23T05:34:14", "url": "https://files.pythonhosted.org/packages/62/bd/3add43644afcb27340be746204f24e700b840ea9c53ca82be76bf871c0f8/ecs-deploy-1.4.2.tar.gz" } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "7b71b379f1977dc86e126ae93cc3ee13", "sha256": "002fca732df45c6ad0c1c71e810440276df344f352fae17cb7b50647b6774c69" }, "downloads": -1, "filename": "ecs-deploy-1.4.3.tar.gz", "has_sig": false, "md5_digest": "7b71b379f1977dc86e126ae93cc3ee13", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11811, "upload_time": "2017-11-30T09:35:56", "url": "https://files.pythonhosted.org/packages/47/37/121f61318dd30e8f553df4b1374580b04283b766069ecb35fe29fc6256e5/ecs-deploy-1.4.3.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "abdb5ef6e2bb65f71868448437b795ec", "sha256": "af320eac39d5240d3050ded163355bd564c450f796a02669f6e1b844edf782f9" }, "downloads": -1, "filename": "ecs-deploy-1.5.0.tar.gz", "has_sig": false, "md5_digest": "abdb5ef6e2bb65f71868448437b795ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12936, "upload_time": "2018-11-11T06:04:24", "url": "https://files.pythonhosted.org/packages/c0/66/9be301d4d24a774b3d0023bca73759d53ad1f1160b8bf4d2b1056cd5bf63/ecs-deploy-1.5.0.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "c28c136d95255a467066d32e72ee5c97", "sha256": "ece729cf0ef8e1c5186b254a90ff6e84a8ab5948e9ffbb25a2b6482d687496bb" }, "downloads": -1, "filename": "ecs-deploy-1.6.0.tar.gz", "has_sig": false, "md5_digest": "c28c136d95255a467066d32e72ee5c97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13547, "upload_time": "2018-12-06T06:57:30", "url": "https://files.pythonhosted.org/packages/20/9a/0df2a4d90964b6940c97404e46cf1052fdccd3fe8265b6eb6a1ab22dcdc1/ecs-deploy-1.6.0.tar.gz" } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "7ec89e614ddeff3e0d8a3858e1e383e2", "sha256": "f15854f039d244a23aebb2528e596fec123399f8126df5985b18d5f9db829f83" }, "downloads": -1, "filename": "ecs-deploy-1.7.0.tar.gz", "has_sig": false, "md5_digest": "7ec89e614ddeff3e0d8a3858e1e383e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14330, "upload_time": "2019-02-09T15:01:51", "url": "https://files.pythonhosted.org/packages/a6/34/fb271c051d2cd1cc5ec05132219b62b6bec221b6b537e77fe91c853d4253/ecs-deploy-1.7.0.tar.gz" } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "a02cf581b4b2eca96302ad207663837f", "sha256": "c2431d0842ae95b4b6a3617e6ec87ae8c8e78ff540c9d4fb30e6b0675bb99302" }, "downloads": -1, "filename": "ecs-deploy-1.8.0.tar.gz", "has_sig": false, "md5_digest": "a02cf581b4b2eca96302ad207663837f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19689, "upload_time": "2019-06-30T05:41:50", "url": "https://files.pythonhosted.org/packages/c3/13/1bba3fae1d8e8d639efa2b35ed53c5d39f9738c4d45b4be6e0a3b0e1619e/ecs-deploy-1.8.0.tar.gz" } ], "1.9.0": [ { "comment_text": "", "digests": { "md5": "ca504e6bc652b92331e54260f012fb98", "sha256": "104a7e1f4422ab8fb13114b7170befe2784a692f2e8e2b20ecd57ce77a2ae7ef" }, "downloads": -1, "filename": "ecs-deploy-1.9.0.tar.gz", "has_sig": false, "md5_digest": "ca504e6bc652b92331e54260f012fb98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20504, "upload_time": "2019-07-16T20:06:55", "url": "https://files.pythonhosted.org/packages/5e/d5/4342020e54e76d17d6f2066bc9eba03e53195730d101fa42ed65592611a4/ecs-deploy-1.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f9d0f7999461e24ab4c34ce7ecbf9d5d", "sha256": "ca687d0374f20aff7b2a3a9789ef4482dca93817d379f58f153de18246f6a18c" }, "downloads": -1, "filename": "ecs-deploy-1.10.0.tar.gz", "has_sig": false, "md5_digest": "f9d0f7999461e24ab4c34ce7ecbf9d5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23285, "upload_time": "2019-09-29T09:43:12", "url": "https://files.pythonhosted.org/packages/99/61/11debfae8bd6f085ee67b32d58b9e41100d32693cca8a04574d2fc9bb3da/ecs-deploy-1.10.0.tar.gz" } ] }