Zappa:UpdateFunctionConfiguration操作:此时无法执行该操作.正在对资源进行更新



我尝试通过zappa更新lambda,我创建了virtualenv和活动virtualenv并安装了库,但在运行zappa的更新环境中,我遇到了这个问题:我如何解决这个问题:(

zappa update qa
(pip 18.1 (/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages), Requirement.parse('pip>=20.3'), {'pip-tools'})
Calling update for stage qa..
Downloading and installing dependencies..
Packaging project as zip.
Uploading maximo-copy-customers-qa-1637639364.zip (6.0MiB)..
100%|███████████████████████████████████████████████████████████████| 6.32M/6.32M [00:09<00:00, 664kB/s]
Updating Lambda function code..
Updating Lambda function configuration..
Oh no! An error occurred! :(
==============
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zappa/cli.py", line 2778, in handle
sys.exit(cli.handle())
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zappa/cli.py", line 512, in handle
self.dispatch_command(self.command, stage)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zappa/cli.py", line 559, in dispatch_command
self.update(self.vargs['zip'], self.vargs['no_upload'])
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zappa/cli.py", line 979, in update
layers=self.layers
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zappa/core.py", line 1224, in update_lambda_configuration
Layers=layers
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/botocore/client.py", line 357, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/botocore/client.py", line 676, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.errorfactory.ResourceConflictException: An error occurred (ResourceConflictException) when calling the UpdateFunctionConfiguration operation: The operation cannot be performed at this time. An update is in progress for resource: arn:aws:lambda:us-east-1:937280411572:function:maximo-copy-customers-qa

我想添加一个更复杂的解决方案,就像前面提到的LiriB一样。使用具有函数updated命令的aws lambda cli(文档(。

示例:aws lambda wait function-updated --function-name "$FN_NAME"

此命令将等待,直到功能更新。如果在5分钟内没有更新,它将停止执行。

在继续更新函数配置之前,您应该等待函数代码更新完成。在步骤之间插入以下shell脚本可以使进程等待:

STATE=$(aws lambda get-function --function-name "$FN_NAME" --query 'Configuration.LastUpdateStatus' --output text)
while [[ "$STATE" == "InProgress" ]]
do
echo "sleep 5sec ...."
sleep 5s
STATE=$(aws lambda get-function --function-name "$FN_NAME" --query 'Configuration.LastUpdateStatus' --output text)
echo $STATE
done

添加到您的zappa_settings.json:

"lambda_description": "aws:states:opt-out"

Zappa关于它的问题

最新更新