Сообщения не получают подтверждения в облачных функциях

Я пытаюсь использовать google pubsub с облачными функциями, все мои вещи работают отлично, но мои сообщения не принимаются

Я сделал следующие вещи:

1) Создал тему

2) Создал функцию

3) установить триггер функции как google cloud pubsub

4) выбрать тему для pubsub

5) установить версию узла как 8

Это моя облачная функция по умолчанию:

/**
 * Triggered from a message on a Cloud Pub/Sub topic.
 *
 * @param {!Object} event Event payload.
 * @param {!Object} context Metadata for the event.
 */
exports.helloPubSub = (event, context) => {
  const pubsubMessage = event.data;
  console.info(Buffer.from(pubsubMessage, 'base64').toString());
};

Он создаст 2 подписки для этой темы, одна для получения, а другая для отправки.

Моя облачная функция вызывается, но мои сообщения не подтверждаются.

Согласно документы

Note: Cloud Functions acks the message internally upon successful function execution. For information on how to handle failures using retries, see Retrying Background Functions.

Таким образом, функции должны автоматически подтверждать, что они не работают.

в чем проблема в этом потоке. Что я делаю неправильно?

Спасибо

Что вы используете, чтобы определить, что ваши сообщения не подтверждаются? Кроме того, из того, что я вижу в запущенных примерах, облачные функции создают только одну push-подписку, а не подписку по запросу.

Kamal Aboul-Hosn 10.04.2019 20:13

Вы когда-нибудь находили решение? У меня такая же проблема.

ProGirlXOXO 30.10.2019 21:09

Ах, я обнаружил, что вам не нужно делать подписку. При развертывании облачной функции и указании ее на тему автоматически создается подписка. Любая дополнительная подписка, которую вы создаете, не имеет потребителей, поэтому сообщения не будут подтверждены. Кроме того, если ваша облачная функция не работает, ее сообщения могут быть не подтверждены.

ProGirlXOXO 30.10.2019 22:13

@ProGirlXOXO Великолепно! Я потратил на это 2 часа без какого-либо документа от Google!

Nikita Yo LAHOLA 17.02.2020 05:23

вы должны добавить это как ответ! @ProGirlXOXO сэкономила мне часы

Fabian Bosler 09.09.2020 22:53

Спасибо @FabianBosler. Готово, надеюсь, это поможет другим.

ProGirlXOXO 11.09.2020 00:13
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
6
1 000
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если вы хотите попробовать написать, развернуть и запустить фоновую облачную функцию с помощью облачного триггера Pub/Sub, лучше использовать следующую страницу документации.

https://cloud.google.com/functions/docs/tutorials/pubsub

Я думаю, вам нужно активировать функцию.

gcloud pubsub topics publish YOUR_TOPIC_NAME --message YOUR_MESSAGE
Ответ принят как подходящий

Вам не нужно явно создавать подписку для облачной функции pubsub.

При развертывании облачной функции и указании ее на тему автоматически создается подписка.

  1. Создать your-topic:

    gcloud pubsub topics create your-topic

  2. Разверните функцию, указывающую на your-topic (это автоматически создаст подписку):

    gcloud functions deploy your-function --region=us-central1 --trigger-topic=your-topic --runtime=python37 --entry-point=main

Запустите команду deploy из папки с вашим кодом облачной функции. Вы можете изменить runtime и entry-point в соответствии с вашим вариантом использования.

Любая дополнительная подписка, которую вы создаете, не имеет потребителей, поэтому сообщения не будут подтверждены. Кроме того, если ваша облачная функция не работает, ее сообщения могут быть не подтверждены.

Другие вопросы по теме