Интерфейс командной строки AWS lambda «update-function-code» не обновляет файл lambda_handler - PullRequest
0 голосов
/ 03 декабря 2018

update-function-code Команда AWS CLI обновляет все файлы кода, кроме файла функции обработчика, lambda_function.py

В частности, я создал скрипт bash, который

  1. Скачивает zip-код из одной лямбды (источник)
  2. Загружает zip-код из другой лямбды (dest)

Все работает, кроме файла основной функции lambda_function.py не получаетсяобновлено.

Как ни странно, когда я загружаю zip-архив с лямбды, вносю изменения, а затем загружаю в ту же лямбду, все работает (все файлы обновляются).

К вашему сведению, вотМой bash-скрипт для загрузки кода из одной лямбды и загрузки в другую:

#!/bin/sh

SRC_LAMBDA_FUNCTION_NAME="$1"
DEST_LAMBDA_FUNCTION_NAME="$2"

export PYTHONIOENCODING=utf8

# get lambda function config
LAMBDA_JSON=$(aws lambda get-function --function-name $SRC_LAMBDA_FUNCTION_NAME)
export LAMBDA_JSON

# parse the code zip file download URL (link expires 10 minutes after creation)
ZIP_FILE_URL=$(python -c 'import json,sys,os;obj=json.loads(os.environ["LAMBDA_JSON"]);print(obj["Code"]["Location"])')

# make temp dir
mkdir -p download

# download the code from src lambda
curl -o "download/$SRC_LAMBDA_FUNCTION_NAME.zip" $ZIP_FILE_URL

# upload the code to dest lambda
aws lambda update-function-code --function-name $DEST_LAMBDA_FUNCTION_NAME --zip-file "fileb://download/$SRC_LAMBDA_FUNCTION_NAME.zip"

1 Ответ

0 голосов
/ 04 декабря 2018

Я проверял изменения кода, перейдя в редактор лямбда-кода на веб-портале AWS, и, похоже, это была только проблема на стороне клиента в веб-интерфейсе пользователя.

Этопрошло около 5 минут, прежде чем lambda_function.py был обновлен в пользовательском интерфейсе (несмотря на обновление), тогда как другие файлы кода действительно обновились немедленно.

Очень странно, что обновились другие файлы, но не lambda_function.py.Это заставляет меня думать, что это не просто проблема кеширования браузера, а, возможно, ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...