function executeTask()

in pipeline/statemachines/deploy/create_stack.js [20:53]


function executeTask(event, context) {

    var params = event;
    var artifactExtractPath = '/tmp/sandbox/';
    var artifactZipPath = '/tmp/application_code.zip';
    var stackName = params.environmentName + "-" + params.stackName;
    var cfnManager = new CloudFormationManager();
    var s3Details = {
        Bucket: params.revisionS3Bucket,
        Key: params.revisionS3Key
    };

    // zip file in S3 that will be downloaded into tmp/
    return Util.getS3Object(s3Details, artifactZipPath)
        .then(function () {
            return Util.rmdir(artifactExtractPath);
        })
        .then(function () {
            return Util.extractZip(artifactZipPath, artifactExtractPath);
        })
        .then(function () {
            var fs = require("fs");
            var templateBody = fs.readFileSync(artifactExtractPath + params.templatePath, {
                encoding: 'utf8'
            });
            var cnfParams = [
                {
                    ParameterKey: "environmentName",
                    ParameterValue: params.environmentName,
                }
            ];
            return cfnManager.createStack(stackName, templateBody, cnfParams);
        });
}