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"]
}