ask-serverless-plugin-canary-deployments
Version:
A Serverless plugin to implement canary deployment of Lambda functions
18 lines (14 loc) • 674 B
JavaScript
const _ = require('lodash/fp')
function replaceS3BucketFunctionWithAlias (bucket, functionAlias, functionName) {
const lambdaConfigurations = _.get('Properties.NotificationConfiguration.LambdaConfigurations', bucket)
const findTargetFunction = (configuration) => {
const thisFunctionName = _.get('Function.Fn::GetAtt[0]', configuration)
return thisFunctionName === functionName
}
const index = _.findIndex(findTargetFunction, lambdaConfigurations)
return _.set(['Properties', 'NotificationConfiguration', 'LambdaConfigurations', index, 'Function'], { Ref: functionAlias }, bucket)
}
const S3 = {
replaceS3BucketFunctionWithAlias
}
module.exports = S3