AWS Lambda CLI'更新功能代码'不更新lambda_handler文件

时间:2018-12-03 19:06:07

标签: python bash amazon-web-services aws-lambda

update-function-code AWS CLI命令更新除处理程序功能文件lambda_function.py之外的所有代码文件

具体来说,我制作了一个bash脚本

  1. 从一个lambda(源)下载代码zip
  2. 将代码zip上传到另一个lambda(目标)

一切正常,除了主功能文件lambda_function.py没有更新。

奇怪的是,当我从lambda下载zip进行更改,然后上传到同一lambda时,它可以工作(所有文件都已更新)。

仅供参考,这是我的bash脚本,用于从一个lambda下载代码并上传到另一个lambda:

#!/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"

2 个答案:

答案 0 :(得分:5)

我正在通过导航到AWS Web门户上的lambda代码编辑器来验证代码更改,这似乎只是Web UI中的客户端问题。

在UI中更新lambda_function.py(尽管刷新)大约需要5分钟,而其他代码文件确实立即得到了更新。

其他文件被更新,但没有lambda_function.py被更新,这很奇怪。这使我认为这不仅是浏览器缓存问题,而且可能是错误。

答案 1 :(得分:0)

我相信您可能需要publish根据https://firebase.google.com/docs/cloud-messaging/android/client?authuser=1#monitor-token-generation更改新代码

--publish | --no-publish (boolean)

Set to true to publish a new version of the function after updating the code. This has the same effect as calling PublishVersion separately.