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


慕田峪4524236
浏览 141回答 1
1回答

蝴蝶不菲

找到答案只是错误。根据带 SQS 触发器的 AWS Lambda 中给出的解释,SQS Lambda Destinations, never adds to destination queue is correct only for calling 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:https://aws.amazon.com/blogs/architecture/understanding-the-different-ways-to-invoke-lambda-functions/
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript