python - InvalidParameterValueException:为函数定义的角色不能由 Lambda 承担(Python Boto3)
问题描述
我在 python 上使用 boto3 API,我遇到了这个问题。
An error occurred (InvalidParameterValueException) when calling the CreateFunction operation: The role defined for the function cannot be assumed by Lambda.
解决方案
我发现 AWS lambda 需要一些时间才能使用新创建的角色。
我的修复如下:
创建一个重试装饰器以重试命令
def retry(ExceptionToCheck=Exception, tries=4, delay=3, backoff=2): def deco_retry(func): @wraps(func) def wrapper(*args, **kwargs): cnt, mdelay = tries, delay while cnt > 1: try: return func(*args, **kwargs) except ExceptionToCheck as e: print(f'{str(e)}, Retrying in {mdelay} seconds...') time.sleep(mdelay) cnt -= 1 mdelay *= backoff return func(*args, **kwargs) return wrapper return deco_retry
从装饰器包装函数
@retry() def create(input): response = lambda_client.create_function(**input) return response
推荐阅读
- firebase - Unity / iOS App中的Firebase身份验证,无需电子邮件和密码
- c++ - 我有一个问题,我一直在尝试 LeetCode,需要帮助解决超出时间限制的错误
- css - CSS模板未在jsPsych中加载
- r - 基于条件的闪亮地块
- visual-c++ - 将静态本机库链接到托管 C++ 项目会在
- flutter - 当用户拖动到其开始或结束时(出现弯曲的蓝线时)如何向 ListView 添加特定操作?
- mysql - 如何在locate中使用MySql Regex?
- python - 如何让 Poppler 在 Windows 上运行
- reactjs - 我对反应路由器的相对路径有困难。基本路径从位置栏中消失
- c# - 如何在自适应对话框的 HttpRequest 中添加身份验证令牌?