admin管理员组文章数量:1289490
Reference : /
Check this answer said : only async lambda execution only work for destination.
Lambda code :
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
}
};
Code execute properly only SNS destination doesn't work. SNS destination has email protocol subscription for sending email whenever fails.
Reference : https://aws.amazon./blogs/pute/introducing-aws-lambda-destinations/
Check this answer said : only async lambda execution only work for destination.
Lambda code :
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
}
};
Code execute properly only SNS destination doesn't work. SNS destination has email protocol subscription for sending email whenever fails.
Share Improve this question asked Aug 14, 2020 at 19:28 Avinash DalviAvinash Dalvi 9,3119 gold badges33 silver badges58 bronze badges1 Answer
Reset to default 9Found answer it was mistake only.
As per explaination given in AWS Lambda w/ SQS trigger, SQS Lambda Destinations, never adds to destination queue is correct only for calling lambda async you have to run different mand. And test input from UI doesn't work like async. It works as sync call.
aws lambda invoke \
--function-name lambdaname \
--invocation-type Event \
--payload '{ "name": "Bob" }' \
response.json
Reference : https://docs.aws.amazon./cli/latest/reference/lambda/invoke.html#examples
Here is list call support lambda asynchronously and synchronously:
https://aws.amazon./blogs/architecture/understanding-the-different-ways-to-invoke-lambda-functions/
本文标签: javascriptAWS Lambda SNS Destinations not working on failure or successStack Overflow
版权声明:本文标题:javascript - AWS Lambda SNS Destinations not working on failure or success - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741394676a2376305.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论