moto mock_lambda get_function 不工作
moto mock_lambda get_function not working
我正在尝试使用 moto mock lambda 调用 get_function 方法,结果收到 UnrecognizedClientException,这意味着该模拟无法正常工作。以下是我使用的代码。
请注意,对 create_function 的调用确实可以正常工作。出于某种原因,当我调用 get_function 时,模拟停止工作。
import boto3
import io
import zipfile
import json
import os
from moto import mock_lambda
import botostubs
def get_zip_lambda():
pfunc = """
def lambda_handler(event, context):
return event
"""
zip_output = io.BytesIO()
zip_file = zipfile.ZipFile(zip_output, 'w', zipfile.ZIP_DEFLATED)
zip_file.writestr('lambda_function.py', pfunc)
zip_file.close()
zip_output.seek(0)
return zip_output.read()
DEF_ECHO_LAMBDA = {
'Runtime': 'python3.7',
'Role': 'test-iam-role',
'Handler': 'lambda_function.lambda_handler',
'Code': {
'ZipFile': get_zip_lambda(),
},
'Description': 'lambda function',
'Timeout': 3,
'MemorySize': 128,
'Publish': True
}
def test_configure_current_service():
# Arrange
with mock_lambda():
fn_name = "TestEcho_ian-local"
original_variables = {"original_env_variable": "original_value"}
aws_lambda: botostubs.Lambda = boto3.client('lambda')
echo_lambda = DEF_ECHO_LAMBDA
echo_lambda['FunctionName'] = fn_name
response = aws_lambda.create_function(**echo_lambda)
get_response = aws_lambda.get_function(FunctionName=fn_name)
print(f"get testing lambda response: {get_response}")
test_configure_current_service()
看来 moto 还没有完全实现 get_function。我尝试添加参数 Qualifier 然后它起作用了。
此外,如果您尝试使用函数的 arn 而不是名称进行调用,则它不起作用。看来您需要始终使用函数名称和限定符。
get_response = aws_lambda.get_function(FunctionName=fn_name, Qualifier="$LATEST")
我正在尝试使用 moto mock lambda 调用 get_function 方法,结果收到 UnrecognizedClientException,这意味着该模拟无法正常工作。以下是我使用的代码。 请注意,对 create_function 的调用确实可以正常工作。出于某种原因,当我调用 get_function 时,模拟停止工作。
import boto3
import io
import zipfile
import json
import os
from moto import mock_lambda
import botostubs
def get_zip_lambda():
pfunc = """
def lambda_handler(event, context):
return event
"""
zip_output = io.BytesIO()
zip_file = zipfile.ZipFile(zip_output, 'w', zipfile.ZIP_DEFLATED)
zip_file.writestr('lambda_function.py', pfunc)
zip_file.close()
zip_output.seek(0)
return zip_output.read()
DEF_ECHO_LAMBDA = {
'Runtime': 'python3.7',
'Role': 'test-iam-role',
'Handler': 'lambda_function.lambda_handler',
'Code': {
'ZipFile': get_zip_lambda(),
},
'Description': 'lambda function',
'Timeout': 3,
'MemorySize': 128,
'Publish': True
}
def test_configure_current_service():
# Arrange
with mock_lambda():
fn_name = "TestEcho_ian-local"
original_variables = {"original_env_variable": "original_value"}
aws_lambda: botostubs.Lambda = boto3.client('lambda')
echo_lambda = DEF_ECHO_LAMBDA
echo_lambda['FunctionName'] = fn_name
response = aws_lambda.create_function(**echo_lambda)
get_response = aws_lambda.get_function(FunctionName=fn_name)
print(f"get testing lambda response: {get_response}")
test_configure_current_service()
看来 moto 还没有完全实现 get_function。我尝试添加参数 Qualifier 然后它起作用了。
此外,如果您尝试使用函数的 arn 而不是名称进行调用,则它不起作用。看来您需要始终使用函数名称和限定符。
get_response = aws_lambda.get_function(FunctionName=fn_name, Qualifier="$LATEST")