我是使用c#的aws lambda函数的新手。我有两个lambda函数,我想从第二个函数调用一个lambda函数,我使用的代码如下:
public string Function1(JObject input)
{
string param = input["param"].ToString();
string param1 = input["param1"].ToString();
return param.ToUpper()+" "+param1.ToUpper();
}
public string Function2()
{
try
{
using (AmazonLambdaClient client = new AmazonLambdaClient(some region))
{
JObject ob = new JObject();
ob.Add("param", "hello");
ob.Add("param1", "Lambda");
var request = new InvokeRequest
{
FunctionName = "Function1",
Payload = ob.ToString()
};
var response = client.Invoke(request);
string result;
using (var sr = new StreamReader(response.Payload))
{
return result = sr.ReadToEnd();
}
}
}
catch (Exception ex)
{
return ex.Message.ToString();
}
}
我收到如下错误:
{ “errorType”:“TypeLoadException”, “errorMessage”:“无法从程序集'System,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e,Retargetable = Yes'加载类型'System.Net.HttpStatusCode'。”, “堆栈跟踪”: [ “在AWSLambdaApp.Function.Function2()”, “在lambda_method(Closure,Stream,Stream,ContextInfo)” ] }
在功能2应用程序中,我添加了“AWSSDK.Core”和“AWSSDK.Lambda”dll的引用。 谁能告诉我我做错了什么?
答案 0 :(得分:0)
我认为您必须重新考虑您的体系结构。请记住,lambda函数具有局限性(执行时间和CPU使用率)。
在这种情况下,最好使用aws step function。在这种情况下,您可以使用“责任链”模式。 Lambda函数将解耦,并且更容易支持它们。结果将是类似的东西:
此外,aws步进功能具有很多功能,例如条件,并行执行,服务员等。它为您提供了用于改进应用程序的强大工具。