Как создать лямбда-функцию AWS с локальной машины с помощью AWS Ruby SDK
У меня проблемы с созданием запроса, который создаст лямбда-функцию AWS с локальной машины. Это контент, который я пытаюсь отправить:
require 'aws-sdk'
client = Aws::Lambda::Client.new(region: 'us-east-1')
args = {}
args[:role] = role
args[:function_name] = function_name
args[:handler] = handler
args[:runtime] = 'python2.7'
code = {}
code[:zip_file] = '/root/main.zip'
args[:code] = code
client.create_function(args)
Расположение zip_file в файловой системе в порядке. Я хочу загрузить лямбда-контент из локальной файловой системы без использования S3 (я видел, что есть способ сделать это и с S3).
Я получаю ошибку:
lib/ruby/gems/2.0.0/gems/aws-sdk-core-2.5.11/lib/seahorse/client/plugins/raise_response_errors.rb:15:in `call': Could not unzip uploaded file. Please check your file, then try to upload again. (Aws::Lambda::Errors::InvalidParameterValueException)
Любая помощь будет отличной.
Спасибо бакир
1 ответ
Я полагаю, вы уже узнали об этом, но ради вопроса, на который нужно ответить, вот что вы должны были сделать:
require 'aws-sdk'
client = Aws::Lambda::Client.new(region: 'us-east-1')
args = {}
args[:role] = role
args[:function_name] = function_name
args[:handler] = handler
args[:runtime] = 'python2.7'
code = {}
code[:zip_file] = File.open('main.zip', 'rb').read
args[:code] = code
client.create_function(args)
Согласно Aws:: Lambda:: Client docs, опция :code
является типом Types::FunctionCode, где zip_file
это String. The contents of your zip file containing your deployment package.