p.magalhaes
p.magalhaes

Reputation: 8354

Using AWS ECS with Boto3

I would like to lunch a Task on ECS cluster and wait for the task termination.

import boto3

client = boto3.client('ecs')
response = client.run_task(
    cluster='default',
    taskDefinition='RGB',
    overrides={
         'containerOverrides': [
             {
                 'name': 'RGB',
                 'command': [
                     'python', 
                     '-u', 
                     'rgb.py'
                 ]
             }
         ]
     }                   
    )

arn = response["tasks"][0]['taskArn']
waiter = client.get_waiter('tasks_running')
waiter.wait(cluster='default', tasks=[arn])

Is it the correct way?

I am getting: botocore.exceptions.WaiterError: Waiter TasksRunning failed: Waiter encountered a terminal failure state

Upvotes: 12

Views: 7567

Answers (1)

p.magalhaes
p.magalhaes

Reputation: 8354

Just change:

waiter = client.get_waiter('tasks_running')

for

waiter = client.get_waiter('tasks_stopped')

Upvotes: 15

Related Questions