Ans*_*hri 5 .net c# asp.net-mvc aws-lambda
我是 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();
}
}
Run Code Online (Sandbox Code Playgroud)
我收到如下错误:
{ "errorType": "TypeLoadException", "errorMessage": "无法从程序集 'System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes' 加载类型 'System.Net.HttpStatusCode'。" , "stackTrace": [ "at AWSLambdaApp.Function.Function2()", "at lambda_method(Closure , Stream , Stream , ContextInfo )" ] }
在功能 2 应用程序中,我添加了“AWSSDK.Core”和“AWSSDK.Lambda”dll 的引用。谁能告诉我我做错了什么?
我的电脑上没有安装“netcoreapp1.0”。所以我尝试了“netcoreapp2.0”。
我的代码如下所示:
public string FunctionHandler(JObject input, ILambdaContext context)
{
param = input["param"].Value<string>();
param1 = input["param1"].Value<string>();
param.ToUpper() + " " + param1.ToUpper();
}
Run Code Online (Sandbox Code Playgroud)
对于函数 2:
public async Task<string> FunctionHandler(string input, ILambdaContext context)
{
try
{
using (AmazonLambdaClient client = new AmazonLambdaClient(RegionEndpoint.USEast1))
{
JObject ob = new JObject { { "param", "hello" }, { "param1", "Lambda" } };
var request = new InvokeRequest
{
FunctionName = "Function1",//Function1:v1 if you use alias
Payload = ob.ToString()
};
var response = await client.InvokeAsync(request);
using (var sr = new StreamReader(response.Payload))
{
return await sr.ReadToEndAsync();
}
}
}
catch (Exception ex)
{
return ex.Message;
}
}
Run Code Online (Sandbox Code Playgroud)
并且执行的结果是"\"HELLO LAMBDA\""。
我的代码工作的原因可能是:
另外,我需要发送一个简单的字符串作为 Function2 的参数。
| 归档时间: |
|
| 查看次数: |
6040 次 |
| 最近记录: |