amazon-web-services - Dotnet Core AWS Lambda 用于 Cognito 确认后触发器完成
问题描述
我使用 Cognito 用户池和注册后确认触发器,我正在编写一个 dotnet core lambda 来做一些后续工作。我通过简单地注销我进入的内容并从那里做一些工作来盯着看。事情是我意识到我的注销工作但是当函数应该“完成”时它没有这样做。它产生以下错误 - 代码:InvalidLambdaResponseException
,消息:Unrecognizable lambda output
。这是我的FunctionHandler
:
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))]
...
public async Task FunctionHandler(JObject input, ILambdaContext context)
{
context.Logger.LogLine($"INPUT:{input}");
//Do some work
}
我只能找到Post Confirmation Lambda Trigger的NodeJS 示例:
exports.handler = (event, context, callback) => {
console.log(event);
if (event.request.userAttributes.email) {
sendEmail(event.request.userAttributes.email, "Congratulations " + event.userName + ", you have been confirmed: ", function(status) {
// Return to Amazon Cognito
callback(null, event);
});
} else {
// Nothing to do, the user's email ID is unknown
callback(null, event);
}
};
在此示例中,它很简单 - 您只需调用callback
,但 dotnet 核心处理程序没有这样的回调。
我也尝试将函数更改为简单地返回一个基本字符串,例如:return "OK";
,但它也不喜欢这样,并且给了我同样的错误。
我应该如何关闭 Lambda 的这个过程?
解决方案
你可以使用;
await Task.CompletedTask;
查看以下示例:https ://docs.aws.amazon.com/lambda/latest/dg/csharp-handler.html
对于 Cognito 发布确认事件;
public JObject FunctionHandler(JObject input, ILambdaContext context)
{
context.Logger.LogLine($"input data: {JsonConvert.SerializeObject(input)}");
return input;
}
推荐阅读
- reactjs - 不同的fillOpacity到highcharts中的钟形曲线
- python - 针对子 DataFrame 重复 DataFrame 行
- javascript - Javascript - 从数组中删除所有重复项
- python - 有没有办法在 Windows 设备上创建 .dmg python 应用程序?
- php - 字符串替换为特定格式
- reactjs - 如何使用反应和打字稿修复错误“类型参数(打开:任何)=>布尔值不可分配给布尔类型参数”?
- python - 带有用户代理的 django-pytest 找不到 request.user-agent
- dbpedia - 从 dbpedia 中的字符串中查找组织和行业/部门
- sql - 按日期和id对数据进行分组,并在PostgreSQL中获取当前组的最后一条记录和前一组的第一条记录
- html - Rails.ajax 数据未传递给控制器