Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AWS Lambda SNS目的地在失败或成功时不工作_Javascript_Node.js_Amazon Web Services_Aws Lambda_Amazon Sns - Fatal编程技术网

Javascript AWS Lambda SNS目的地在失败或成功时不工作

Javascript AWS Lambda SNS目的地在失败或成功时不工作,javascript,node.js,amazon-web-services,aws-lambda,amazon-sns,Javascript,Node.js,Amazon Web Services,Aws Lambda,Amazon Sns,参考: 检查说明:只有异步lambda执行仅适用于目标 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.regi

参考:

检查说明:只有异步lambda执行仅适用于目标

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目的地有电子邮件协议订阅,用于在失败时发送电子邮件。

找到答案,只是错误

根据中给出的解释,只有在调用lambda async时才正确,您必须运行不同的命令。来自UI的测试输入不像异步的那样工作。它作为同步调用工作

aws lambda invoke \     
--function-name lambdaname \     
--invocation-type Event \     
--payload '{ "name": "Bob" }' \     
response.json 
参考:

以下是异步和同步支持lambda的列表调用: