【发布时间】:2021-08-28 05:23:26
【问题描述】:
我正在使用 C# 学习 AWS Lambda。我的函数看起来像这样:
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]
namespace Function_Redeem
{
public class Function
{
public FunctionOutput FunctionHandler(FunctionInput input, ILambdaContext context)
{
// do work with input
// return FunctionOutput
}
public class FunctionInput
{
public string someData { get; set; }
}
public class FunctionOutput
{
public string someAnswer { get; set; }
}
}
}
使用 AWS 中的测试按钮以及 Visual Studio 中的测试功能时效果很好。
现在,我正尝试从 Unity 调用它。
首先,我添加了一个 API Gateway 触发器,并保留默认值:
API endpoint: [the url]
API type: HTTP
Authorization: NONE
Cross-origin resource sharing (CORS): No
Enable detailed metrics: No
Method: ANY
Resource path: /FunctionName
Stage: default
然后在 Unity 中,
private static IEnumerator TestFunction(string uri, string data)
{
UnityWebRequest webRequest = UnityWebRequest.Put(uri, data);
yield return webRequest.SendWebRequest();
if (webRequest.isNetworkError)
Debug.LogError("Network error: " + webRequest.error);
else
Debug.Log(webRequest.downloadHandler.text);
}
我称之为,data 是
{"someData":"Hello"}
函数调用有效,我知道它正在到达我的函数,但输入数据(即someData 字段)为空。似乎它没有解析我发送的数据,所以 FunctionInput 默认为 null someData。
我错过了什么?
【问题讨论】:
标签: c# amazon-web-services unity3d aws-lambda