diff --git a/src/commands/add-cognito-user-pool-trigger.js b/src/commands/add-cognito-user-pool-trigger.js index 6ed3adf..2b1489b 100644 --- a/src/commands/add-cognito-user-pool-trigger.js +++ b/src/commands/add-cognito-user-pool-trigger.js @@ -1,15 +1,23 @@ const loadConfig = require('../util/loadconfig'), iamNameSanitize = require('../util/iam-name-sanitize'), - aws = require('aws-sdk'), getOwnerInfo = require('../tasks/get-owner-info'); + +const { + CognitoIdentityProvider +} = require("@aws-sdk/client-cognito-identity-provider"); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); + module.exports = function addCognitoUserPoolTrigger(options, optionalLogger) { 'use strict'; let lambdaConfig, lambda, cognito; const initServices = function () { - lambda = new aws.Lambda({region: lambdaConfig.region}); - cognito = new aws.CognitoIdentityServiceProvider({region: lambdaConfig.region}); + lambda = new Lambda({region: lambdaConfig.region}); + cognito = new CognitoIdentityProvider({region: lambdaConfig.region}); }, readConfig = function () { return loadConfig(options, {lambda: {name: true, region: true}}) diff --git a/src/commands/add-iot-topic-rule.js b/src/commands/add-iot-topic-rule.js index b64b8d2..8b8b4a3 100644 --- a/src/commands/add-iot-topic-rule.js +++ b/src/commands/add-iot-topic-rule.js @@ -1,6 +1,13 @@ const loadConfig = require('../util/loadconfig'), - iamNameSanitize = require('../util/iam-name-sanitize'), - aws = require('aws-sdk'); + iamNameSanitize = require('../util/iam-name-sanitize'); + +const { + IoT +} = require("@aws-sdk/client-iot"); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); module.exports = function addIOTTopicRuleEventSource(options) { 'use strict'; @@ -9,8 +16,8 @@ module.exports = function addIOTTopicRuleEventSource(options) { ruleName, iot; const initServices = function () { - lambda = new aws.Lambda({region: lambdaConfig.region}); - iot = new aws.Iot({region: lambdaConfig.region}); + lambda = new Lambda({region: lambdaConfig.region}); + iot = new IoT({region: lambdaConfig.region}); }, readConfig = function () { return loadConfig(options, {lambda: {name: true, region: true}}) diff --git a/src/commands/add-kinesis-event-source.js b/src/commands/add-kinesis-event-source.js index 8bba972..c4af4f3 100644 --- a/src/commands/add-kinesis-event-source.js +++ b/src/commands/add-kinesis-event-source.js @@ -1,8 +1,19 @@ const loadConfig = require('../util/loadconfig'), isRoleArn = require('../util/is-role-arn'), isKinesisArn = require('../util/is-kinesis-arn'), - retry = require('oh-no-i-insist'), - aws = require('aws-sdk'); + retry = require('oh-no-i-insist'); + +const { + IAM +} = require("@aws-sdk/client-iam"); + +const { + Kinesis +} = require("@aws-sdk/client-kinesis"); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); module.exports = function addKinesisEventSource(options, logger) { 'use strict'; @@ -13,9 +24,9 @@ module.exports = function addKinesisEventSource(options, logger) { const awsDelay = Number(options['aws-delay']) || 5000, awsRetries = Number(options['aws-retries']) || 15, initServices = function () { - lambda = new aws.Lambda({region: lambdaConfig.region}); - iam = new aws.IAM({region: lambdaConfig.region}); - kinesis = new aws.Kinesis({region: lambdaConfig.region}); + lambda = new Lambda({region: lambdaConfig.region}); + iam = new IAM({region: lambdaConfig.region}); + kinesis = new Kinesis({region: lambdaConfig.region}); }, getLambda = () => lambda.getFunctionConfiguration({FunctionName: lambdaConfig.name, Qualifier: options.version}).promise(), readConfig = function () { diff --git a/src/commands/add-s3-event-source.js b/src/commands/add-s3-event-source.js index eb7df47..fda41d6 100644 --- a/src/commands/add-s3-event-source.js +++ b/src/commands/add-s3-event-source.js @@ -1,6 +1,18 @@ const loadConfig = require('../util/loadconfig'), - iamNameSanitize = require('../util/iam-name-sanitize'), - aws = require('aws-sdk'); + iamNameSanitize = require('../util/iam-name-sanitize'); + +const { + IAM +} = require("@aws-sdk/client-iam"); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); + +const { + S3 +} = require("@aws-sdk/client-s3"); + module.exports = function addS3EventSource(options) { 'use strict'; let lambdaConfig, @@ -8,7 +20,7 @@ module.exports = function addS3EventSource(options) { lambda; const ts = Date.now(), getLambda = function (config) { - lambda = new aws.Lambda({region: config.lambda.region}); + lambda = new Lambda({region: config.lambda.region}); lambdaConfig = config.lambda; return lambda.getFunctionConfiguration({FunctionName: lambdaConfig.name, Qualifier: options.version}).promise(); }, @@ -26,7 +38,7 @@ module.exports = function addS3EventSource(options) { }); }, addS3AccessPolicy = function () { - const iam = new aws.IAM({region: lambdaConfig.region}); + const iam = new IAM({region: lambdaConfig.region}); return iam.putRolePolicy({ RoleName: lambdaConfig.role, PolicyName: iamNameSanitize(`s3-${options.bucket}-access-${ts}`), @@ -44,7 +56,7 @@ module.exports = function addS3EventSource(options) { } ] }) - }).promise(); + }); }, addInvokePermission = function () { return lambda.addPermission({ @@ -58,7 +70,7 @@ module.exports = function addS3EventSource(options) { }, addBucketNotificationConfig = function () { const events = options.events ? options.events.split(',') : ['s3:ObjectCreated:*'], - s3 = new aws.S3({region: lambdaConfig.region, signatureVersion: 'v4'}), + s3 = new S3({region: lambdaConfig.region}), eventConfig = { LambdaFunctionArn: lambdaConfig.arn, Events: events @@ -85,7 +97,7 @@ module.exports = function addS3EventSource(options) { } return s3.getBucketNotificationConfiguration({ Bucket: options.bucket - }).promise() + }) .then(currentConfig => { const merged = currentConfig || {}; if (!merged.LambdaFunctionConfigurations) { @@ -95,7 +107,7 @@ module.exports = function addS3EventSource(options) { return s3.putBucketNotificationConfiguration({ Bucket: options.bucket, NotificationConfiguration: merged - }).promise(); + }); }); }; diff --git a/src/commands/add-scheduled-event.js b/src/commands/add-scheduled-event.js index c74c9e5..3438f38 100644 --- a/src/commands/add-scheduled-event.js +++ b/src/commands/add-scheduled-event.js @@ -1,6 +1,13 @@ const loadConfig = require('../util/loadconfig'), - fsPromise = require('../util/fs-promise'), - aws = require('aws-sdk'); + fsPromise = require('../util/fs-promise'); + +const { + CloudWatchEvents +} = require("@aws-sdk/client-cloudwatch-events"); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); module.exports = function addScheduledEvent(options) { 'use strict'; @@ -10,8 +17,10 @@ module.exports = function addScheduledEvent(options) { eventData, ruleArn; const initServices = function () { - lambda = new aws.Lambda({region: lambdaConfig.region}); - events = new aws.CloudWatchEvents({region: lambdaConfig.region}); + lambda = new Lambda({region: lambdaConfig.region}); + events = new CloudWatchEvents({ + region: lambdaConfig.region + }); }, getLambda = () => lambda.getFunctionConfiguration({FunctionName: lambdaConfig.name, Qualifier: options.version}).promise(), readConfig = function () { diff --git a/src/commands/add-sns-event-source.js b/src/commands/add-sns-event-source.js index 43547a2..9089076 100644 --- a/src/commands/add-sns-event-source.js +++ b/src/commands/add-sns-event-source.js @@ -1,6 +1,13 @@ const loadConfig = require('../util/loadconfig'), - fsPromise = require('../util/fs-promise'), - aws = require('aws-sdk'); + fsPromise = require('../util/fs-promise'); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); + +const { + SNS +} = require("@aws-sdk/client-sns"); module.exports = function addSNSEventSource(options) { 'use strict'; @@ -8,8 +15,10 @@ module.exports = function addSNSEventSource(options) { lambda, sns; const initServices = function () { - lambda = new aws.Lambda({region: lambdaConfig.region}); - sns = new aws.SNS({region: lambdaConfig.region}); + lambda = new Lambda({region: lambdaConfig.region}); + sns = new SNS({ + region: lambdaConfig.region + }); }, getLambda = () => lambda.getFunctionConfiguration({FunctionName: lambdaConfig.name, Qualifier: options.version}).promise(), readConfig = function () { diff --git a/src/commands/add-sqs-event-source.js b/src/commands/add-sqs-event-source.js index 39c49c5..2a2ca43 100644 --- a/src/commands/add-sqs-event-source.js +++ b/src/commands/add-sqs-event-source.js @@ -1,8 +1,19 @@ const loadConfig = require('../util/loadconfig'), isSQSArn = require('../util/is-sqs-arn'), iamNameSanitize = require('../util/iam-name-sanitize'), - retry = require('oh-no-i-insist'), - aws = require('aws-sdk'); + retry = require('oh-no-i-insist'); + +const { + IAM +} = require("@aws-sdk/client-iam"); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); + +const { + SQS +} = require("@aws-sdk/client-sqs"); module.exports = function addSQSEventSource(options, logger) { 'use strict'; @@ -13,9 +24,11 @@ module.exports = function addSQSEventSource(options, logger) { const awsDelay = Number(options['aws-delay']) || 5000, awsRetries = Number(options['aws-retries']) || 15, initServices = function () { - lambda = new aws.Lambda({region: lambdaConfig.region}); - iam = new aws.IAM({region: lambdaConfig.region}); - sqs = new aws.SQS({region: lambdaConfig.region}); + lambda = new Lambda({region: lambdaConfig.region}); + iam = new IAM({region: lambdaConfig.region}); + sqs = new SQS({ + region: lambdaConfig.region + }); }, getLambda = () => lambda.getFunctionConfiguration({FunctionName: lambdaConfig.name, Qualifier: options.version}).promise(), readConfig = function () { diff --git a/src/commands/allow-alexa-skill-trigger.js b/src/commands/allow-alexa-skill-trigger.js index 30271f1..ab2ea5e 100644 --- a/src/commands/allow-alexa-skill-trigger.js +++ b/src/commands/allow-alexa-skill-trigger.js @@ -1,12 +1,15 @@ -const loadConfig = require('../util/loadconfig'), - aws = require('aws-sdk'); +const loadConfig = require('../util/loadconfig'); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); module.exports = function allowAlexaSkillTrigger(options) { 'use strict'; let lambdaConfig, lambda; const initServices = function () { - lambda = new aws.Lambda({region: lambdaConfig.region}); + lambda = new Lambda({region: lambdaConfig.region}); }, getLambda = () => lambda.getFunctionConfiguration({FunctionName: lambdaConfig.name, Qualifier: options.version}).promise(), readConfig = function () { diff --git a/src/commands/create.js b/src/commands/create.js index 100a822..be170e7 100644 --- a/src/commands/create.js +++ b/src/commands/create.js @@ -31,6 +31,23 @@ const path = require('path'), lambdaInvocationPolicy = require('../policies/lambda-invocation-policy'), waitUntilNotPending = require('../tasks/wait-until-not-pending'), NullLogger = require('../util/null-logger'); + +const { + APIGateway +} = require("@aws-sdk/client-api-gateway"); + +const { + IAM +} = require("@aws-sdk/client-iam"); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); + +const { + S3 +} = require("@aws-sdk/client-s3"); + module.exports = function create(options, optionalLogger) { 'use strict'; let roleMetadata, @@ -48,9 +65,9 @@ module.exports = function create(options, optionalLogger) { awsRetries = options && options['aws-retries'] && parseInt(options['aws-retries'], 10) || 15, source = (options && options.source) || process.cwd(), configFile = (options && options.config) || path.join(source, 'claudia.json'), - iam = loggingWrap(new aws.IAM({region: options.region}), {log: logger.logApiCall, logName: 'iam'}), - lambda = loggingWrap(new aws.Lambda({region: options.region}), {log: logger.logApiCall, logName: 'lambda'}), - s3 = loggingWrap(new aws.S3({region: options.region, signatureVersion: 'v4'}), {log: logger.logApiCall, logName: 's3'}), + iam = loggingWrap(new IAM({region: options.region}), {log: logger.logApiCall, logName: 'iam'}), + lambda = loggingWrap(new Lambda({region: options.region}), {log: logger.logApiCall, logName: 'lambda'}), + s3 = loggingWrap(new S3({region: options.region}), {log: logger.logApiCall, logName: 's3'}), getSnsDLQTopic = function () { const topicNameOrArn = options['dlq-sns']; if (!topicNameOrArn) { @@ -62,7 +79,9 @@ module.exports = function create(options, optionalLogger) { return `arn:${awsPartition}:sns:${options.region}:${ownerAccount}:${topicNameOrArn}`; }, apiGatewayPromise = retriableWrap( - loggingWrap(new aws.APIGateway({region: options.region}), {log: logger.logApiCall, logName: 'apigateway'}), + loggingWrap(new APIGateway({ + region: options.region + }), {log: logger.logApiCall, logName: 'apigateway'}), () => logger.logStage('rate-limited by AWS, waiting before retry') ), policyFiles = function () { diff --git a/src/commands/destroy.js b/src/commands/destroy.js index 4a7cc1b..5c49a04 100644 --- a/src/commands/destroy.js +++ b/src/commands/destroy.js @@ -1,9 +1,21 @@ -const aws = require('aws-sdk'), - loadConfig = require('../util/loadconfig'), +const loadConfig = require('../util/loadconfig'), fsPromise = require('../util/fs-promise'), path = require('path'), retriableWrap = require('../util/retriable-wrap'), destroyRole = require('../util/destroy-role'); + +const { + APIGateway +} = require("@aws-sdk/client-api-gateway"); + +const { + IAM +} = require("@aws-sdk/client-iam"); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); + module.exports = function destroy(options) { 'use strict'; let lambdaConfig, apiConfig; @@ -14,11 +26,13 @@ module.exports = function destroy(options) { apiConfig = config.api; }) .then(() => { - const lambda = new aws.Lambda({ region: lambdaConfig.region }); - return lambda.deleteFunction({ FunctionName: lambdaConfig.name }).promise(); + const lambda = new Lambda({region: lambdaConfig.region}); + return lambda.deleteFunction({ FunctionName: lambdaConfig.name }); }) .then(() => { - const apiGateway = retriableWrap(new aws.APIGateway({ region: lambdaConfig.region })); + const apiGateway = retriableWrap(new APIGateway({ + region: lambdaConfig.region + })); if (apiConfig) { return apiGateway.deleteRestApiPromise({ restApiId: apiConfig.id @@ -26,7 +40,7 @@ module.exports = function destroy(options) { } }) .then(() => { - const iam = new aws.IAM({ region: lambdaConfig.region }); + const iam = new IAM({region: lambdaConfig.region}); if (lambdaConfig.role && !lambdaConfig.sharedRole) { return destroyRole(iam, lambdaConfig.role); } diff --git a/src/commands/list.js b/src/commands/list.js index 6354eb4..8f7ecfd 100644 --- a/src/commands/list.js +++ b/src/commands/list.js @@ -1,6 +1,10 @@ -const aws = require('aws-sdk'), - loadConfig = require('../util/loadconfig'), +const loadConfig = require('../util/loadconfig'), listVersions = require('../tasks/list-versions'); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); + module.exports = async function list(options /*, optionalLogger*/) { 'use strict'; const header = ['#\ttime \tsize\truntime\taliases'], @@ -21,7 +25,7 @@ module.exports = async function list(options /*, optionalLogger*/) { ); }, config = await loadConfig(options, {lambda: {name: true, region: true}}), - lambda = new aws.Lambda({region: config.lambda.region}), + lambda = new Lambda({region: config.lambda.region}), versionList = await listVersions(config.lambda.name, lambda, options.version); if (!formatter) { diff --git a/src/commands/set-cloudfront-trigger.js b/src/commands/set-cloudfront-trigger.js index 4f2faeb..5cfe504 100644 --- a/src/commands/set-cloudfront-trigger.js +++ b/src/commands/set-cloudfront-trigger.js @@ -4,8 +4,19 @@ const loadConfig = require('../util/loadconfig'), appendServiceToRole = require('../tasks/append-service-to-role'), retry = require('oh-no-i-insist'), findCloudfrontBehavior = require('../tasks/find-cloudfront-behavior'), - patchLambdaFunctionAssociations = require('../tasks/patch-lambda-function-associations'), - aws = require('aws-sdk'); + patchLambdaFunctionAssociations = require('../tasks/patch-lambda-function-associations'); + +const { + CloudFront +} = require("@aws-sdk/client-cloudfront"); + +const { + IAM +} = require("@aws-sdk/client-iam"); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); module.exports = function setCloudFrontTrigger(options, optionalLogger) { 'use strict'; @@ -30,9 +41,11 @@ to propagate changes to Lambda@Edge. console.log(`\x1b[3${color}m${text}\x1b[0m`); }, initServices = function (config) { - lambda = loggingWrap(new aws.Lambda({region: config.region}), {log: logger.logApiCall, logName: 'lambda'}); - iam = loggingWrap(new aws.IAM({region: config.region}), {log: logger.logApiCall, logName: 'iam'}); - cloudFront = loggingWrap(new aws.CloudFront({region: config.region}), {log: logger.logApiCall, logName: 'cloudfront'}); + lambda = loggingWrap(new Lambda({region: config.region}), {log: logger.logApiCall, logName: 'lambda'}); + iam = loggingWrap(new IAM({region: config.region}), {log: logger.logApiCall, logName: 'iam'}); + cloudFront = loggingWrap(new CloudFront({ + region: config.region + }), {log: logger.logApiCall, logName: 'cloudfront'}); }, readConfig = function () { const version = String(options.version); diff --git a/src/commands/set-version.js b/src/commands/set-version.js index 98b11c9..1bffbb0 100644 --- a/src/commands/set-version.js +++ b/src/commands/set-version.js @@ -1,5 +1,4 @@ -const aws = require('aws-sdk'), - loadConfig = require('../util/loadconfig'), +const loadConfig = require('../util/loadconfig'), allowApiInvocation = require('../tasks/allow-api-invocation'), retriableWrap = require('../util/retriable-wrap'), loggingWrap = require('../util/logging-wrap'), @@ -9,6 +8,15 @@ const aws = require('aws-sdk'), NullLogger = require('../util/null-logger'), markAlias = require('../tasks/mark-alias'), getOwnerInfo = require('../tasks/get-owner-info'); + +const { + APIGateway +} = require("@aws-sdk/client-api-gateway"); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); + module.exports = function setVersion(options, optionalLogger) { 'use strict'; let lambdaConfig, lambda, apiGateway, apiConfig; @@ -45,10 +53,12 @@ module.exports = function setVersion(options, optionalLogger) { .then(config => { lambdaConfig = config.lambda; apiConfig = config.api; - lambda = loggingWrap(new aws.Lambda({region: lambdaConfig.region}), {log: logger.logApiCall, logName: 'lambda'}); + lambda = loggingWrap(new Lambda({region: lambdaConfig.region}), {log: logger.logApiCall, logName: 'lambda'}); apiGateway = retriableWrap( loggingWrap( - new aws.APIGateway({region: lambdaConfig.region}), + new APIGateway({ + region: lambdaConfig.region + }), {log: logger.logApiCall, logName: 'apigateway'} ), () => logger.logStage('rate-limited by AWS, waiting before retry') diff --git a/src/commands/tag.js b/src/commands/tag.js index 8afbcd0..6aa4eab 100644 --- a/src/commands/tag.js +++ b/src/commands/tag.js @@ -1,7 +1,14 @@ const loadConfig = require('../util/loadconfig'), parseKeyValueCSV = require('../util/parse-key-value-csv'), - getOwnerInfo = require('../tasks/get-owner-info'), - aws = require('aws-sdk'); + getOwnerInfo = require('../tasks/get-owner-info'); + +const { + APIGateway +} = require("@aws-sdk/client-api-gateway"); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); module.exports = function tag(options) { 'use strict'; @@ -12,8 +19,10 @@ module.exports = function tag(options) { region, api; const initServices = function () { - lambda = new aws.Lambda({region: lambdaConfig.region}); - api = new aws.APIGateway({region: lambdaConfig.region}); + lambda = new Lambda({region: lambdaConfig.region}); + api = new APIGateway({ + region: lambdaConfig.region + }); }, getLambda = () => lambda.getFunctionConfiguration({FunctionName: lambdaConfig.name, Qualifier: options.version}).promise(), readConfig = function () { diff --git a/src/commands/test-lambda.js b/src/commands/test-lambda.js index 3f9f0ee..132043a 100644 --- a/src/commands/test-lambda.js +++ b/src/commands/test-lambda.js @@ -1,6 +1,10 @@ -const aws = require('aws-sdk'), - loadConfig = require('../util/loadconfig'), +const loadConfig = require('../util/loadconfig'), fsPromise = require('../util/fs-promise'); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); + module.exports = function testLambda(options) { 'use strict'; let lambdaConfig; @@ -18,8 +22,10 @@ module.exports = function testLambda(options) { }) .then(getPayload) .then(payload => { - const lambda = new aws.Lambda({region: lambdaConfig.region}); - return lambda.invoke({FunctionName: lambdaConfig.name, Payload: payload, Qualifier: options.version}).promise(); + const lambda = new Lambda({region: lambdaConfig.region}); + return lambda.invoke( + {FunctionName: lambdaConfig.name, Payload: payload, Qualifier: options.version} + ); }); }; module.exports.doc = { diff --git a/src/commands/update.js b/src/commands/update.js index 1dd3b20..60120cf 100644 --- a/src/commands/update.js +++ b/src/commands/update.js @@ -26,6 +26,23 @@ const zipdir = require('../tasks/zipdir'), retry = require('oh-no-i-insist'), waitUntilNotPending = require('../tasks/wait-until-not-pending'), combineLists = require('../util/combine-lists'); + +const { + APIGateway +} = require("@aws-sdk/client-api-gateway"); + +const { + IAM +} = require("@aws-sdk/client-iam"); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); + +const { + S3 +} = require("@aws-sdk/client-s3"); + module.exports = function update(options, optionalLogger) { 'use strict'; let lambda, s3, iam, apiGateway, lambdaConfig, apiConfig, updateResult, @@ -216,12 +233,14 @@ module.exports = function update(options, optionalLogger) { .then(config => { lambdaConfig = config.lambda; apiConfig = config.api; - lambda = loggingWrap(new aws.Lambda({region: lambdaConfig.region}), {log: logger.logApiCall, logName: 'lambda'}); - s3 = loggingWrap(new aws.S3({region: lambdaConfig.region, signatureVersion: 'v4'}), {log: logger.logApiCall, logName: 's3'}); - iam = loggingWrap(new aws.IAM({region: lambdaConfig.region}), {log: logger.logApiCall, logName: 'iam'}); + lambda = loggingWrap(new Lambda({region: lambdaConfig.region}), {log: logger.logApiCall, logName: 'lambda'}); + s3 = loggingWrap(new S3({region: lambdaConfig.region}), {log: logger.logApiCall, logName: 's3'}); + iam = loggingWrap(new IAM({region: lambdaConfig.region}), {log: logger.logApiCall, logName: 'iam'}); apiGateway = retriableWrap( loggingWrap( - new aws.APIGateway({region: lambdaConfig.region}), + new APIGateway({ + region: lambdaConfig.region + }), {log: logger.logApiCall, logName: 'apigateway'} ), () => logger.logStage('rate-limited by AWS, waiting before retry') diff --git a/src/tasks/allow-api-invocation.js b/src/tasks/allow-api-invocation.js index 9456363..a7ae9f7 100644 --- a/src/tasks/allow-api-invocation.js +++ b/src/tasks/allow-api-invocation.js @@ -1,7 +1,9 @@ -const aws = require('aws-sdk'); +const { + Lambda +} = require("@aws-sdk/client-lambda"); module.exports = function allowApiInvocation(functionName, functionVersion, restApiId, ownerId, awsPartition, awsRegion, path) { 'use strict'; - const lambda = new aws.Lambda({region: awsRegion}), + const lambda = new Lambda({region: awsRegion}), activePath = path || '*/*/*', policy = { Action: 'lambda:InvokeFunction', @@ -21,16 +23,16 @@ module.exports = function allowApiInvocation(functionName, functionVersion, rest return lambda.getPolicy({ FunctionName: functionName, Qualifier: functionVersion - }).promise() + }) .then(policyResponse => policyResponse && policyResponse.Policy && JSON.parse(policyResponse.Policy)) .then(currentPolicy => { const statements = (currentPolicy && currentPolicy.Statement) || []; if (!statements.find(matchesPolicy)) { - return lambda.addPermission(policy).promise(); + return lambda.addPermission(policy); } }, e => { if (e && e.code === 'ResourceNotFoundException') { - return lambda.addPermission(policy).promise(); + return lambda.addPermission(policy); } else { return Promise.reject(e); } diff --git a/src/tasks/get-owner-info.js b/src/tasks/get-owner-info.js index 6f485cd..afeb4cf 100644 --- a/src/tasks/get-owner-info.js +++ b/src/tasks/get-owner-info.js @@ -1,10 +1,16 @@ const loggingWrap = require('../util/logging-wrap'), - NullLogger = require('../util/null-logger'), - aws = require('aws-sdk'); + NullLogger = require('../util/null-logger'); + +const { + STS +} = require("@aws-sdk/client-sts"); + module.exports = function getOwnerInfo(region, optionalLogger) { 'use strict'; const logger = optionalLogger || new NullLogger(), - sts = loggingWrap(new aws.STS({region: region}), {log: logger.logApiCall, logName: 'sts'}); + sts = loggingWrap(new STS({ + region: region + }), {log: logger.logApiCall, logName: 'sts'}); return sts.getCallerIdentity().promise() .then(callerIdentity => ({ account: callerIdentity.Account, diff --git a/src/tasks/list-versions.js b/src/tasks/list-versions.js index 38e9c48..e7f4de4 100644 --- a/src/tasks/list-versions.js +++ b/src/tasks/list-versions.js @@ -14,7 +14,7 @@ module.exports = async function listVersions(lambdaName, lambda, filter) { const results = await lambda.listVersionsByFunction({FunctionName: lambdaName, Marker: marker}).promise(), versions = results.Versions, next = results.NextMarker, - remainingVersions = next && await listVersionsFromMarker(next); + remainingVersions = next && (await listVersionsFromMarker(next)); if (!remainingVersions) { return versions; diff --git a/src/tasks/rebuild-web-api.js b/src/tasks/rebuild-web-api.js index ca0478c..69a09de 100644 --- a/src/tasks/rebuild-web-api.js +++ b/src/tasks/rebuild-web-api.js @@ -1,5 +1,4 @@ -const aws = require('aws-sdk'), - validAuthType = require('../util/valid-auth-type'), +const validAuthType = require('../util/valid-auth-type'), sequentialPromiseMap = require('sequential-promise-map'), validCredentials = require('../util/valid-credentials'), allowApiInvocation = require('./allow-api-invocation'), @@ -12,13 +11,20 @@ const aws = require('aws-sdk'), patchBinaryTypes = require('./patch-binary-types'), clearApi = require('./clear-api'), registerAuthorizers = require('./register-authorizers'); + +const { + APIGateway +} = require("@aws-sdk/client-api-gateway"); + module.exports = function rebuildWebApi(functionName, functionVersion, restApiId, apiConfig, ownerAccount, awsPartition, awsRegion, optionalLogger, configCacheStageVar) { 'use strict'; let authorizerIds; const logger = optionalLogger || new NullLogger(), apiGateway = retriableWrap( loggingWrap( - new aws.APIGateway({region: awsRegion}), + new APIGateway({ + region: awsRegion + }), {log: logger.logApiCall, logName: 'apigateway'} ), () => logger.logApiCall('rate-limited by AWS, waiting before retry') diff --git a/src/tasks/register-authorizers.js b/src/tasks/register-authorizers.js index 62a7929..7ccfc44 100644 --- a/src/tasks/register-authorizers.js +++ b/src/tasks/register-authorizers.js @@ -1,20 +1,30 @@ -const aws = require('aws-sdk'), - loggingWrap = require('../util/logging-wrap'), +const loggingWrap = require('../util/logging-wrap'), retriableWrap = require('../util/retriable-wrap'), allowApiInvocation = require('./allow-api-invocation'), NullLogger = require('../util/null-logger'), sequentialPromiseMap = require('sequential-promise-map'); + +const { + APIGateway +} = require("@aws-sdk/client-api-gateway"); + +const { + Lambda +} = require("@aws-sdk/client-lambda"); + module.exports = function registerAuthorizers(authorizerMap, apiId, ownerAccount, awsPartition, awsRegion, functionVersion, optionalLogger) { 'use strict'; const logger = optionalLogger || new NullLogger(), apiGateway = retriableWrap( loggingWrap( - new aws.APIGateway({region: awsRegion}), + new APIGateway({ + region: awsRegion + }), {log: logger.logApiCall, logName: 'apigateway'} ), () => logger.logApiCall('rate-limited by AWS, waiting before retry') ), - lambda = loggingWrap(new aws.Lambda({region: awsRegion}), {log: logger.logApiCall, logName: 'lambda'}), + lambda = loggingWrap(new Lambda({region: awsRegion}), {log: logger.logApiCall, logName: 'lambda'}), removeAuthorizer = function (authConfig) { return apiGateway.deleteAuthorizerPromise({ authorizerId: authConfig.id,