Ich versuche, Aws Lambda-Funktion mit Python zu erstellen.Hochgeladene Datei konnte nicht beim Erstellen der Lambda-Funktion mit Python entpackt werden
Fehler bei Lambda-Funktion
Funktion unten erwähnt wird, geben Fehler 'konnte nicht hochgeladene Datei entpacken'
def upload_lambda_function(zip_file_name):
with open(zip_file_name) as zip_blob:
#"fileb://"+base64.b64encode(zip_blob.read()),
lambda_execution_role_arn = 'arn:aws:iam::' + \
aws_account_id + ':role/' + lambda_execution_role
aws_lambda.upload_function(
lambda_function_name,
"file://"+zip_blob.read(),
"nodejs6.10",
lambda_execution_role_arn,
"index.handler",
"event",
description=None,
timeout=60,
memory_size=128)
aws_lambda.upload_function definieren innerhalb Bibliothek Boto/awslambda
def upload_function(self, function_name, function_zip, runtime, role,
handler, mode, description=None, timeout=None,
memory_size=None):
uri = '/2014-11-13/functions/{0}'.format(function_name)
headers = {}
query_params = {}
if runtime is not None:
query_params['Runtime'] = runtime
if role is not None:
query_params['Role'] = role
if handler is not None:
query_params['Handler'] = handler
if mode is not None:
query_params['Mode'] = mode
if description is not None:
query_params['Description'] = description
if timeout is not None:
query_params['Timeout'] = timeout
if memory_size is not None:
query_params['MemorySize'] = memory_size
try:
content_length = str(len(function_zip))
except (TypeError, AttributeError):
# If a file like object is provided and seekable, try to retrieve
# the file size via fstat.
try:
function_zip.tell()
except (AttributeError, OSError, IOError):
raise TypeError(
"File-like object passed to parameter "
"``function_zip`` must be seekable."
)
content_length = str(os.fstat(function_zip.fileno()).st_size)
headers['Content-Length'] = content_length
return self.make_request('PUT', uri, expected_status=201,
data=function_zip, headers=headers,
params=query_params)
def make_request(self, verb, resource, headers=None, data='',
expected_status=None, params=None):
if headers is None:
headers = {}
response = AWSAuthConnection.make_request(
self, verb, resource, headers=headers, data=data, params=params)
body = response.read().decode('utf-8')
if body:
body = json.loads(body)
if response.status == expected_status:
return body
else:
error_type = response.getheader('x-amzn-ErrorType').split(':')[0]
error_class = self._faults.get(error_type, self.ResponseError)
raise error_class(response.status, response.reason, body)
Also haben Sie versucht, die Datei zu entpacken, die mit 'unzip' generiert wurde? –
ja versucht .... und ich kann Datei entzippen ..... ich denke ... es gibt ein Problem mit base64 und utf-8 endcodings ......... ich nicht tun, wie zu beheben ... –