pytest localstack测试错误您必须指定一个区域

仓鼠

我敲了一个python测试,该测试旋转了一个localstack容器,并在localstack容器内设置了一个S3存储桶和一个lambda。

测试如下所示:

def my_test(self, setup_terraform_infra):
    s3 = boto3.resource('s3')
    buckets = list(s3.buckets.all())
    assert len(buckets) == 1

    lambda_client = boto3.client('lambda', region_name='us-east-1')
    payload = json.dumps(self.load_file(TEST_INPUT_SUCCESS_MESSAGE))

    list_function_resp = lambda_client.list_functions(
        MasterRegion='us-east-1',
        Marker='',
        MaxItems=123
    )

    assert len(list_function_resp['Functions']) == 1

    response = lambda_client.invoke(
        FunctionName='function',
        InvocationType='RequestResponse',
        Payload=payload,
    )

在上面的测试中,一切正常,直到您单击invoke函数:

response = lambda_client.invoke(
    FunctionName='function',
    InvocationType='RequestResponse',
    Payload=payload,
)

这将导致以下错误:

botocore.exceptions.ClientError: An error occurred (InternalFailure) when calling the Invoke operation (reached max retries: 4): Error executing Lambda function arn:aws:lambda:us-east-1:000000000000:function:function: You must specify a region.
botocore.exceptions.NoRegionError: You must specify a region.

如果我跳到测试创建的docker映像,则可以重现此错误:

awslocal lambda invoke --region eu-west-1 --function-name "arn:aws:lambda:us-east-1:000000000000:function:function" --payload "{}" reponse.json

错误:

>>> botocore.exceptions.NoRegionError: You must specify a region.

我尝试在docker映像中同时设置AWS_DEFAULT_REGION和DEFAULT_REGION。但是问题仍然存在。

我没主意了

艾哈迈德·侯赛因

之前我遇到过完全相同的问题,但是错误消息很令人误解,但是我的问题原来是由于对InvocationTypeLambda使用了错误的信息。

设置正确后InvocationType(在我的情况下,应该将其设置为Event而不是RequestResponse),它可以正常工作。

希望这也能解决您的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单元测试与pytest

来自分类Dev

pytest测试是方法抽象

来自分类Dev

Pytest版本冲突错误

来自分类Dev

pytest中导入错误

来自分类Dev

烧瓶的pytest错误

来自分类Dev

如何使用pytest测试一个方法是否被调用

来自分类Dev

您如何指定使用 pytest k 参数运行的唯一测试?

来自分类Dev

pytest与setup.py测试

来自分类Dev

pytest动态生成测试方法

来自分类Dev

使用pytest测试模块执行

来自分类Dev

pytest 测试功能已知结果

来自分类Dev

如何使用pytest测试异常和错误?

来自分类Dev

pytest-创建一个由多个测试共享的对象

来自分类Dev

你能把一个迭代传递给像 pytest 这样的 Nuint 测试吗?

来自分类Dev

pytest:为每个测试函数设置一个模拟

来自分类Dev

在PyTest中创建一个临时目录

来自分类Dev

pytest的夹具总是返回一个函数

来自分类Dev

pytest:参数化测试与显式测试

来自分类Dev

测试覆盖率vs pytest

来自分类Dev

如何使用pytest测试Django模型?

来自分类常见问题

如何在pytest下测试单个文件

来自分类Dev

Pytest:如何对测试失败采取措施?

来自分类Dev

pytest测试失败时Jenkins Job失败

来自分类Dev

使用PyTest参数化测试集

来自分类Dev

pytest如何进行测试选择?

来自分类Dev

如何使用pytest测试无限while循环

来自分类Dev

用pytest测试aiohttp和mongo

来自分类Dev

pytest-测试中的独立夹具逻辑

来自分类Dev

Pytest-没有运行测试