当前位置: 首页 > 知识库问答 >
问题:

执行lambda函数时的异常

周和志
2023-03-14

运行lambda函数时,我得到一个Boto3无效参数异常。我正试图找到一种方法来处理这个异常。

我遇到了以下解决方案:

from boto.exception import BotoServerError

class InvalidParameterException(BotoServerError):
    pass

我使用的是python3,我知道boto现在已被弃用,并被boto3取代。但我在boto3中找不到等效的解决方案。

有人能帮我解决这个问题吗?

共有1个答案

方高丽
2023-03-14

当不建议使用boto时,所有的建模的异常都可以在客户端上使用。您也可以在API文档中查找它,基本上,boto3的代码是从API直接生成的。早期使用boto的方法是硬编码的东西,并为其编写代码。

正如你在这里看到的

例如

import boto3
from botocore.exceptions import ClientError


def get_secret():
    secret_name = "MySecretName"
    region_name = "us-west-2"

    session = boto3.session.Session()
    client = session.client(
        service_name='secretsmanager',
        region_name=region_name,
    )

    try:
        get_secret_value_response = client.get_secret_value(
            SecretId=secret_name
        )
    except ClientError as e:
        if e.response['Error']['Code'] == 'ResourceNotFoundException':
            print("The requested secret " + secret_name + " was not found")
        elif e.response['Error']['Code'] == 'InvalidRequestException':
            print("The request was invalid due to:", e)
        elif e.response['Error']['Code'] == 'InvalidParameterException':
            print("The request had invalid params:", e)
        elif e.response['Error']['Code'] == 'DecryptionFailure':
            print("The requested secret can't be decrypted using the provided KMS key:", e)
        elif e.response['Error']['Code'] == 'InternalServiceError':
            print("An error occurred on service side:", e)

AWS秘密管理器示例来自文档

如何使用boto3处理错误

 类似资料:
  • 我有一个lambda函数,它成功地执行了一个名为的意图,该意图返回一个特定的字符串。为了测试目的,我已经为这个意图创建了一个话语(一个简单的话语,不需要任何可选的插槽来调用这个技能),但是当使用服务模拟器用这个话语测试lambda函数时,我会遇到表示的lambda响应。下面是交互模型的样子: 使用适当的自定义技能类型语法, 当向Alexa提供语句时,lambda响应应该像在执行中一样输出字符串。我

  • 在javascript中,常见的模式是创建匿名函数并立即调用它(通常称为自动执行匿名函数或立即调用的函数表达式)。 对于Java8 lambdas,是否有复制这种行为的标准方法?类似于

  • 我在帐户a中有一个lambda函数,试图从帐户B访问资源。创建了一个新的lambda角色,该角色具有基本执行功能,可以将日志上载到cloud watch。 以下是我在Python 3.7中的函数代码: 还修改了账户B中假定角色的信托政策,如文件中所述:https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-ass

  • 问题内容: 所以我正在使用boto调用我的lambda函数并测试我的后端。我想异步调用它们。我注意到“ invoke_async”已被弃用,不应使用。相反,您应该将InvocationType与“ Event”的InvocationType一起使用以异步执行该功能。 但是,我似乎无法弄清楚如何从函数中获取响应。我尝试了以下方法: 即使我告诉代码休眠15秒钟,当我尝试打印它时,响应变量仍然为空。如果

  • 我知道如何创建对具有参数并返回的方法的引用,它是: 但是,如果函数抛出异常(假设它被定义为: 我如何定义这个引用?

  • 问题内容: 我知道如何创建对具有参数的方法的引用,并返回,它是: 但是,如果该函数引发异常,例如定义为: 如何定义此参考? 问题答案: 你需要执行以下操作之一。 如果是你的代码,请定义自己的函数接口,该接口声明已检查的异常: 并使用它: 否则,包装一个不声明检查异常的方法: 接着: 要么: