ecsProvisionBot: function()

in backend/src/bot/ecsProvisionBot.js [4:78]


  ecsProvisionBot: function (event, context, callback)  {

    console.log(event);
  
    var awsLogsGroup = "/ecs/" + process.env.SERVICE;
    var params = {
      containerDefinitions: [
      {
        name: event.thingName,
        essential: true,
        image: process.env.DOCKER_IMAGE,
        environment: [
          {name: 'REGION', value: process.env.AWS_REGION},
          {name: 'SERVICE', value: process.env.SERVICE},
          {name: 'STAGE', value: process.env.STAGE},
          {name: 'THING_NAME', value: event.thingName}
        ],
        logConfiguration: {
          "logDriver": "awslogs",
          "options": {
            "awslogs-group": awsLogsGroup,
            "awslogs-region": process.env.AWS_REGION,
             "awslogs-stream-prefix": event.thingName,
            "awslogs-create-group": "true"
          }
        }
      }],
      family: event.thingName,
      executionRoleArn: process.env.TASK_EXEC_ROLE_ARN,
      taskRoleArn: process.env.TASK_ROLE_ARN,
      networkMode: "awsvpc",
      requiresCompatibilities: [ "FARGATE" ],
      cpu: "256",
      memory: "512"
    };

    // Params to run latest task definition
    var runtask_params = {
      taskDefinition: event.thingName,
      cluster: process.env.CLUSTER,
      count: 1,
      group: process.env.SERVICE,
      launchType: 'FARGATE',
      networkConfiguration: {
        awsvpcConfiguration: {
          subnets: process.env.SUBNETS.split(','),
          assignPublicIp: 'DISABLED',
          securityGroups: process.env.TASK_SECGROUP.split(',')
        }
      },
    };

    var taskDef = registerTaskDefinition(ecs, params);
    taskDef.then(function(result) {
      console.log("Success - Registered Task Definition"); // successful response
      console.log(result);

      // Run Task
      var taskRun = runTask(ecs, runtask_params);
      taskRun.then(function(result) {
        console.log("Success - Initiated Task Run");           // successful response
        console.log(result);
      })
      .catch(function(err) {
        console.log("ERROR: Running Task Failed"); // an error occurred
        console.log(err);
      });

    })
    .catch(function(err) {
      console.log("ERROR: Task Definition Failed"); // an error occurred
      console.log(err);
    });

  }