参考: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 目的地有电子邮件协议订阅,用于在失败时发送电子邮件。
1 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
找到答案只是错误。
根据带 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:
添加回答
举报
0/150
提交
取消