lib/addy_lambda/aws.rb in addy_lambda-0.1.3 vs lib/addy_lambda/aws.rb in addy_lambda-0.1.4
- old
+ new
@@ -25,23 +25,24 @@
}
response = ssm_client.get_parameter(request)
response.parameter.value
end
+ # lambda_client = Aws::Lambda::Client.new
def self.invoke_lambda(lambda_client, function_name, payload, syncronous: true)
resp = lambda_client.invoke({
function_name: function_name,
invocation_type: syncronous ? 'RequestResponse' : 'Event',
payload: payload.to_json
})
AddyLambda::Common.valid_json?(resp.payload.string) ? JSON.parse(resp.payload.string) : resp.payload.string
end
- # Lambda client can be obtained by running: lambda_client = Aws::Lambda::Client.new
- def self.post_slack_message(lambda_client, channel, message, emoji = ':tada', unfurl_links: false)
+ # lambda_client = Aws::Lambda::Client.new
+ def self.post_slack_message(lambda_client, post_as_name, channel, message, emoji = ':tada', unfurl_links: false)
input_params = {
- 'user' => 'Signature Request',
+ 'user' => post_as_name,
'channel' => channel,
'message' => message,
'emoji' => emoji,
'unfurl_links' => unfurl_links
}
@@ -50,10 +51,26 @@
logger.error(response_body['error'])
end
# s3_client = Aws::S3::Client.new
+ def self.copy_file_from_bucket_to_bucket(s3_client, src_bucket, src_key, dest_bucket, dest_key)
+ s3_client.copy_object(bucket: dest_bucket, copy_source: "/#{src_bucket}/#{src_key}", key: dest_key)
+ end
+
+ # s3_client = Aws::S3::Client.new
+ def self.list_s3_files(s3_client, bucket, prefix, suffix)
+ files = []
+ objects = s3_client.list_objects_v2({ bucket: bucket, prefix: prefix }).contents
+ objects.each do |o|
+ key = o[:key]
+ files << key if key.start_with?(prefix) && key.end_with?(suffix)
+ end
+ files
+ end
+
+ # s3_client = Aws::S3::Client.new
def self.copy_file_from_s3(s3_client, bucket, key, destination)
s3_client.get_object({ bucket: bucket, key: key }, target: destination)
end
# s3_client = Aws::S3::Client.new
@@ -62,9 +79,10 @@
File.open(file_location, 'rb') do |file|
s3_client.put_object(bucket: bucket, key: key, body: file)
end
end
+ # lambda_client = Aws::Lambda::Client.new
def self.send_email(lambda_client, recipient_emails, from_name, from_email, subject, content_html)
input_params = {
'recipient_list' => recipient_emails,
'from_name' => from_name,
'from_email' => from_email,