对于 lambda,最佳实践是在处理程序外部初始化依赖项。
我正在创建一个简单的 python 函数,其工作原理与蓝图类似:
import boto3
s3 = boto3.client('ssm')
def lambda_handler(event, context):
# some code here
Run Code Online (Sandbox Code Playgroud)
还有测试
from lambda_function import handler # Option 1
import lambda_function # Option 2
class TestHandler(unittest.TestCase):
@patch('lambda_function.handler.boto3.client')
def test(self, boto3_mock):
# ...
Run Code Online (Sandbox Code Playgroud)
我似乎无法正确设置模拟,以便调用boto.client不会出错You must specify a region.
在Option 1导入调用期间出错,在设置Option 2期间出错patch
我不能使用 a,~/.aws/config因为它将用在没有 a 的 CI 上。我也不想更改调用boto.client以包含默认区域。
我有什么遗漏的吗?