def run_task()

in ProxyStatsGathering/scripts/rundev.py [0:0]


def run_task(cluster_id, task_arn, container_name, subnet_list, sg_list, allow_external_ip, collection_name, mode):
    client = boto3.client('ecs', region_name=options.region)
    network_config = {
        "awsvpcConfiguration": {
            "subnets": subnet_list,
            "securityGroups": sg_list,
            "assignPublicIp": "ENABLED" if allow_external_ip else "DISABLED"
        }
    }

    overrides = {
        'containerOverrides': [
            {
                'name': container_name,
                'environment': [
                ]
            }
        ]
    }

    if collection_name:
        overrides['containerOverrides'][0]['environment'].append({
            'name': "FOR_COLLECTION",
            'value': collection_name
        })
    if mode:
        overrides['containerOverrides'][0]['environment'].append({
            'name': "MODE",
            'value': mode
        })

    result = client.run_task(cluster=cluster_id, taskDefinition=task_arn, networkConfiguration=network_config, overrides=overrides, launchType="FARGATE")

    if len(result["failures"])>0:
        for entry in result.failures:
            logger.error("\t{0}: {1}".format(entry["arn"], entry["reason"]))
        raise StandardError("Failed to start up container")

    logger.debug(result["tasks"][0])
    return {
        "task_arn": result["tasks"][0]["taskArn"],
        "cluster_arn": result["tasks"][0]["clusterArn"],
        "container_id": result["tasks"][0]["containers"][0]["containerArn"]
    }