Я пытаюсь создать скрипт PHP, который создает функцию из некоторого кода, который я застегиваю на нашем сервере. Я загрузил файл вручную в лямбда, и он отлично работает. Но когда я пытаюсь использовать aws-sdk для создания функции, она не работает с сообщением об ошибке. Кто-нибудь понял?AWS Lambda PHP Создать функцию с Zip
Код:
private function createLambdaFunction() {
$result = $this->lambdaConn->createFunction(array(
'FunctionName' => $this->lambdaFunctionName,
'Runtime' => $this->runtime,
'Role' => $this->role,
'Handler' => $this->lambdaFunctionName.".".$this->handler,
'Description' => $this->description,
'Timeout' => $this->timeout,
'MemorySize' => $this->memorySize,
'Code' => array(
'ZipFile' => 'fileb://test.zip'
)
));
Ошибка:
PHP Fatal error: Uncaught Aws\Lambda\Exception\LambdaException: AWS
Error Code: InvalidParameterValueException,
Status Code: 400, AWS Request ID: asdf, AWS Error Type: user,
AWS Error Message: Could not unzip uploaded file. Please check
your file, then try to upload again., User-Agent:
aws-sdk-php2/2.8.10 Guzzle/3.9.3 curl/7.35.0 PHP/5.5.9-1ubuntu4.9
Я не могу найти хороший пример на Google, и документация ... меньше, чем идеал. Я создал zip-файл с php, поэтому я попытался передать этот var, полный путь к файлу, относительный путь к файлу и т. Д. Наконец, вы узнали, что вам нужно использовать префикс fileb: //, но это не закончилось фиксируя что угодно.
Это не работает для меня! – Yukulelix
Какая ошибка вы получаете? Что не работает? – Fooldj
Теперь он работает, вам больше не нужно использовать base64_encode, поскольку новый SDK выполняет преобразование для вас, просто используйте file_get_contents ('test.zip'), и он работает: https://github.com/aws/aws- sdk-php/issues/673 # event-347510707 – Yukulelix