lard-codepipeline-lambda-aliaser
Advanced tools
Comparing version
42
index.js
'use strict'; | ||
const Promise = require('bluebird'); | ||
const logger = require('lard-logger'); | ||
const codePipelineCustomAction = require('lard-codepipeline-custom-action'); | ||
const createJobValidator = codePipelineCustomAction.createJobValidator; | ||
const createAction = codePipelineCustomAction.createAction; | ||
const AWS = require('aws-sdk'); | ||
const _ = require('lodash'); | ||
const { createJobValidator, createAction } = require('lard-codepipeline-custom-action'); | ||
const AWS = require('aws-sdk'); | ||
AWS.config.setPromisesDependency(Promise); | ||
@@ -14,9 +12,9 @@ | ||
const jobValidator = createJobValidator(1, 0, job => { | ||
if (!job.data || !job.data.actionConfiguration || !job.data.actionConfiguration.configuration || !job.data.actionConfiguration.configuration.UserParameters) { | ||
const jobValidator = createJobValidator(1, 0, (job) => { | ||
job.aliasName = _.get(job, 'data.actionConfiguration.configuration.UserParameters'); | ||
if (!job.aliasName) { | ||
throw new Error('Alias name must be specified via CodePipeline custom action user parameters'); | ||
} | ||
job.aliasName = job.data.actionConfiguration.configuration.UserParameters; | ||
return job; | ||
@@ -26,5 +24,5 @@ }); | ||
const inputHandler = (job, input) => { | ||
logger.log('Received input:\n' + JSON.stringify(input, null, 2)); | ||
console.log(`Received input:\n${JSON.stringify(input, null, 2)}`); | ||
const updates = input.map(version => { | ||
const updates = input.map((version) => { | ||
const params = { | ||
@@ -36,25 +34,25 @@ FunctionName: version.FunctionName, | ||
logger.log('Updating alias:\n' + JSON.stringify(params, null, 2)); | ||
console.log(`Updating alias:\n${JSON.stringify(params, null, 2)}`); | ||
return lambda.updateAlias(params) | ||
.promise() | ||
.then(data => { | ||
logger.log(`Updated alias ${data.AliasArn}`); | ||
.then((data) => { | ||
console.log(`Updated alias ${data.AliasArn}`); | ||
}) | ||
.catch(error => { | ||
.catch((error) => { | ||
if (error.code !== 'ResourceNotFoundException') { | ||
logger.error(`Failed to update ${params.Name} alias for ${params.FunctionName}: ${error}`); | ||
console.error(`Failed to update ${params.Name} alias for ${params.FunctionName}: ${error}`); | ||
throw error; | ||
} | ||
logger.log(`The ${params.Name} alias for ${params.FunctionName} does not exist; creating`); | ||
console.log(`The ${params.Name} alias for ${params.FunctionName} does not exist; creating`); | ||
return lambda.createAlias(params) | ||
.promise() | ||
.then(data => { | ||
logger.log(`Created alias ${data.AliasArn}`); | ||
.then((data) => { | ||
console.log(`Created alias ${data.AliasArn}`); | ||
}) | ||
.catch(error => { | ||
logger.error(`Failed to create ${params.Name} alias for ${params.FunctionName}: ${error}`); | ||
throw error; | ||
.catch((secondError) => { | ||
console.error(`Failed to create ${params.Name} alias for ${params.FunctionName}: ${secondError}`); | ||
throw secondError; | ||
}); | ||
@@ -61,0 +59,0 @@ }); |
{ | ||
"name": "lard-codepipeline-lambda-aliaser", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "CodePipeline custom action to alias Lambda function versions", | ||
@@ -25,8 +25,7 @@ "main": "index.js", | ||
"dependencies": { | ||
"aws-sdk": "^2.134.0", | ||
"bluebird": "^3.5.1", | ||
"lard-codepipeline-custom-action": "^1.0.0" | ||
}, | ||
"devDependencies": { | ||
"aws-sdk": "^2.130.0" | ||
"lard-codepipeline-custom-action": "^1.0.0", | ||
"lodash": "^4.17.4" | ||
} | ||
} |
0
-100%3684
-5.68%4
100%52
-3.7%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added