javascript - AWS Lambda SNS 目标在失败或成功时不起作用
问题描述
参考:https ://aws.amazon.com/blogs/compute/introducing-aws-lambda-destinations/
检查这个答案说:只有异步 lambda 执行只适用于目的地。
拉姆达代码:
const AWSManager = require('./AWSManager.js');
const request = require('request-promise');
exports.handler = async (event, context) => {
var input = JSON.stringify(event, null, 2);
console.log(event.region);
//console.log("EVENT: \n" + JSON.stringify(event, null, 2))
// TODO implement
var secret_name, region_name;
if(event.secretName){
secret_name= event.secretName;
region_name = event.region;
}else{
secret_name= "test/"
region_name = "us-east-1"
}
console.log(secret_name)
var secret = await AWSManager.getSecret(secret_name)
//console.log('mysecret: ' + secret )
var secret_values = JSON.parse(secret);
//var request = require('request');
var okta_org_url = secret_values['okta_org_url']
var okta_token = secret_values['okta_token']
var api_endpoint = okta_org_url + "api/v1/users?limit=25"
var options = {
'method': 'GET',
'url': api_endpoint,
'headers': {
// header information
}
};
var api_response = await request(options).then(res => res).catch(err => err)
return {
"statusCode": 200
}
};
代码仅正确执行 SNS 目的地不起作用。SNS 目的地有电子邮件协议订阅,用于在失败时发送电子邮件。
解决方案
找到答案只是错误。
根据AWS Lambda w/SQS 触发器中给出的解释,SQS Lambda Destinations, never added to destination queue仅适用于调用 lambda async 您必须运行不同的命令。并且来自 UI 的测试输入不像异步那样工作。它作为同步调用工作。
aws lambda invoke \
--function-name lambdaname \
--invocation-type Event \
--payload '{ "name": "Bob" }' \
response.json
参考:https ://docs.aws.amazon.com/cli/latest/reference/lambda/invoke.html#examples
这是异步和同步的列表调用支持 lambda:
推荐阅读
- javascript - 无法验证用户
- azure - 从 Azure 辅助角色记录的错误
- jquery - 如何将 svg 饼图切片更改为从顶部开始并使用 jquery 动态制作顺时针动画
- django - 如何使用 postgresql 在 AWS 弹性 beantalk 上部署 django
- c# - 如何将带有 SSIS C# 脚本组件的程序集文件加载到 Azure 数据工厂集成运行时?
- python-2.7 - 在python 2.7中拆分文件名并从文件名中获取整数值
- python - dataframe groupby one column and average one column while finding most occuring in another
- mongodb - 仅当游标具有字段时,MongoDB 才更新字段
- java - 在屏幕中查找给定图像的程序
- ios - 如何使用数组以编程方式在堆栈视图中添加多个按钮