簡體   English   中英

通過 Lambda 在 SNS 隊列上發布主題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM