[英]Publish a topic on an SNS queue via a Lambda
我有一個訂閱了 Lambda 的主題,當在 CLI 中使用發布消息功能時,它會按預期執行。
我有另一個 Lambda(節點 14)應該向上述隊列發布消息,但由於某種原因我無法讓它工作並且它在發布命令上超時。 這個Lambda目前已經被授予所有SNS權限。
const AWS = require("aws-sdk");
exports.handler = async (event) => {
var params = {
Message: 'Hello From Lambda', /* required */
TopicArn: 'arn:aws:sns:eu-west-1:0123456789:sns-topic-name'
};
const clientSNS = new AWS.SNS({apiVersion: '2010-03-31'});
console.log("set the client sns");
const publishTextPromise = await clientSNS.publish(params).promise();
console.log("Completed the publish? - Never does anything below this");
publishTextPromise.then(
function(data) {
console.log("MessageID is " + data.MessageId);
}).catch(
function(err) {
console.error(err, err.stack);
}
);
};
我相信 SNS 隊列喜歡批量運行,所以這就是問題所在嗎?在 AWS 控制台 Lambda 測試功能中運行時,這永遠不會起作用嗎?
代碼基本上是從這個例子中復制的: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/sns-examples-publishing-messages.html
Lambda 出於某種原因需要 inte.net 訪問,即使 SNS 在同一個 VPC 中,所以一旦打開,一切都開始工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.