Salesforce emp Connector не ожидает события после подписки в AWS Lambda - PullRequest
0 голосов
/ 12 марта 2019

У меня есть простой клиент, использующий Salesforce EMP Connector и подписывающийся на событие платформы. Когда он запускается из командной строки на машине с Windows, он работает нормально, а подписка и последующие события работают нормально. Когда я развертываю тот же код, что и функция Java Lambda в AWS - она ​​успешно подписывается, но не ожидает и не ожидает события. Есть ли какие-то ограничения на использование Java-клиента Bayeaux в AWS Lambda?

Ниже приведен код в лямбда-обработчике -

 public String handleRequest(Object input, Context context) {
        try {
        context.getLogger().log("Input: " + input);

        Consumer<Map<String, Object>> consumer = event -> System.out.println(String.format("Received:\n%s", JSON.toString(event)));

        BearerTokenProvider tokenProvider = new BearerTokenProvider(() -> {
            try {
                return LoginHelper.login(new URL(SFDC_TEST_URL), SFDC_TEST_USERNAME, SFDC_PASS_SEC_KEY);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        });

        BayeuxParameters params = tokenProvider.login();

        EmpConnector connector = new EmpConnector(params);
        LoggingListener loggingListener = new LoggingListener(true, true);


        connector.addListener(META_HANDSHAKE, loggingListener)
                .addListener(META_CONNECT, loggingListener)
                .addListener(META_DISCONNECT, loggingListener)
                .addListener(META_SUBSCRIBE, loggingListener)
                .addListener(META_UNSUBSCRIBE, loggingListener);


        connector.setBearerTokenProvider(tokenProvider);


        connector.setBearerTokenProvider(tokenProvider);

        connector.start().get(5, TimeUnit.SECONDS);

        TopicSubscription subscription = connector.subscribe(SFDC_TOPIC_EVENT_NAME, EmpConnector.REPLAY_FROM_TIP, consumer).get(2, TimeUnit.SECONDS);

        System.out.println(String.format("Subscribed: %s", subscription));

        // TODO: implement your handler
        return "Hello from Lambda!";
        }catch(Exception e) {
            e.printStackTrace();
            return "exited with error";
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...