From 1939b7ffb13cae762a0c5bff9d06229c899084a3 Mon Sep 17 00:00:00 2001 From: Nikola Bogetic Date: Tue, 5 Sep 2023 19:18:46 -0400 Subject: [PATCH] [sc-89400] Allow toggling the autoscaling lambda --- Gemfile.lock | 6 +++++- MovableInkAWS.gemspec | 1 + lib/movable_ink/aws.rb | 2 ++ lib/movable_ink/aws/lambda.rb | 39 +++++++++++++++++++++++++++++++++++ lib/movable_ink/version.rb | 2 +- 5 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 lib/movable_ink/aws/lambda.rb diff --git a/Gemfile.lock b/Gemfile.lock index e2f36c3..f563168 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - MovableInkAWS (2.8.5) + MovableInkAWS (2.8.6) aws-sdk-athena (~> 1) aws-sdk-autoscaling (~> 1) aws-sdk-cloudwatch (~> 1) @@ -10,6 +10,7 @@ PATH aws-sdk-eks (~> 1) aws-sdk-elasticache (~> 1) aws-sdk-iam (~> 1) + aws-sdk-lambda (~> 1) aws-sdk-rds (~> 1) aws-sdk-route53 (~> 1) aws-sdk-s3 (~> 1) @@ -55,6 +56,9 @@ GEM aws-sdk-kms (1.62.0) aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) + aws-sdk-lambda (1.96.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) aws-sdk-rds (1.171.0) aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) diff --git a/MovableInkAWS.gemspec b/MovableInkAWS.gemspec index 37f809c..41db744 100644 --- a/MovableInkAWS.gemspec +++ b/MovableInkAWS.gemspec @@ -17,6 +17,7 @@ Gem::Specification.new do |s| s.add_runtime_dependency 'aws-sdk-eks', '~> 1' s.add_runtime_dependency 'aws-sdk-elasticache', '~> 1' s.add_runtime_dependency 'aws-sdk-iam', '~> 1' + s.add_runtime_dependency 'aws-sdk-lambda', '~> 1' s.add_runtime_dependency 'aws-sdk-rds', '~> 1' s.add_runtime_dependency 'aws-sdk-route53', '~> 1' s.add_runtime_dependency 'aws-sdk-s3', '~> 1' diff --git a/lib/movable_ink/aws.rb b/lib/movable_ink/aws.rb index b340b30..0ece967 100644 --- a/lib/movable_ink/aws.rb +++ b/lib/movable_ink/aws.rb @@ -11,6 +11,7 @@ require_relative 'aws/eks' require_relative 'aws/elasticache' require_relative 'aws/api_gateway' +require_relative 'aws/lambda' require_relative 'consul/consul' require 'aws-sdk-cloudwatch' @@ -28,6 +29,7 @@ class AWS include ApiGateway include EKS include IAM + include Lambda class << self def regions diff --git a/lib/movable_ink/aws/lambda.rb b/lib/movable_ink/aws/lambda.rb new file mode 100644 index 0000000..50fbde3 --- /dev/null +++ b/lib/movable_ink/aws/lambda.rb @@ -0,0 +1,39 @@ +require 'aws-sdk-lambda' + +module MovableInk + class AWS + module Lambda + def lambda(region: my_region) + @lambda_client ||= {} + @lambda_client[region] ||= Aws::Lambda::Client.new(region: region) + end + + def disable_autoscaling_lambda + function_name = 'autoscaling-scheduled-capacity-production-cleanup' + + lambda.update_function_configuration({ + function_name: function_name, + environment: { + variables: { + "DRY_RUN" => "true", + } + } + }) + end + + def enable_autoscaling_lambda + function_name = 'autoscaling-scheduled-capacity-production-cleanup' + + lambda.update_function_configuration({ + function_name: function_name, + environment: { + variables: { + "DRY_RUN" => "false", + } + } + }) + end + + end + end +end diff --git a/lib/movable_ink/version.rb b/lib/movable_ink/version.rb index 51b2ed3..0bdf7f4 100644 --- a/lib/movable_ink/version.rb +++ b/lib/movable_ink/version.rb @@ -1,5 +1,5 @@ module MovableInk class AWS - VERSION = '2.8.5' + VERSION = '2.8.6' end end