Pubnub功能无法在AWS Lambda上运行

时间:2016-05-22 04:58:38

标签: amazon-web-services pubnub aws-lambda

我尝试使用Pubnub提供的history method来获取频道的聊天记录并在AWS Lambda上运行我的node.js代码。但是,我的功能没有被调用。我不确定我是否正确地做了,但这里是代码片段 -

var publishKey = "pub-c-cfe10ea4-redacted";
var subscribeKey = "sub-c-fedec8ba-redacted";
var channelId = "ChatRoomDemo";
var uuid;
var pubnub = {};

function readMessages(intent,session,callback){
    pubnub = require("pubnub")({
               publish_key   : publishKey,
               subscribe_key: subscribeKey
             });

    pubnub.history({
        channel : 'ChatRoomDemo',
        callback : function(m){
          console.log(JSON.stringify(m));
        },
        count : 100, 
        reverse : false 
    });
}

我希望JSON格式的消息历史记录显示在控制台上。

1 个答案:

答案 0 :(得分:-1)

我遇到了同样的问题,终于让它运转了。您需要做的是允许pubnub.com的CIDR地址。在我弄明白之前,这对我来说是一个外国的想法!以下是发布到频道的方法:

  1. 复制pubnub.com的CIDR地址,即54.246.196.128/26(Source [警告:不要这样 - 请参阅下面的评论]
  2. 登录https://console.aws.amazon.com
  3. "服务"转到" VPC"
  4. 在左侧,"安全,"单击"网络ACL"
  5. 点击"创建网络ACL"给它一个名称标签,如" pubnub.com"
  6. 为您的Lambda技能选择VPC(如果您不确定,请点击您的Lambda函数,您将会看到它。您可能只有一个像我一样列出)
  7. 点击"是,创建"
  8. 根据"出境规则"选项卡,单击"编辑"
  9. For" Rule#"我刚用过" 1"
  10. For" Type"我使用" HTTP(80)"
  11. For" Destination"我粘贴在第1步的CIDR中
  12. "保存" enter image description here
  13. 请注意,如果您订阅到频道,您还需要添加"入站规则"太