Я пытаюсь использовать 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.
Таким образом, функции должны автоматически подтверждать, что они не работают.
в чем проблема в этом потоке. Что я делаю неправильно?
Спасибо
Вы когда-нибудь находили решение? У меня такая же проблема.
Ах, я обнаружил, что вам не нужно делать подписку. При развертывании облачной функции и указании ее на тему автоматически создается подписка. Любая дополнительная подписка, которую вы создаете, не имеет потребителей, поэтому сообщения не будут подтверждены. Кроме того, если ваша облачная функция не работает, ее сообщения могут быть не подтверждены.
@ProGirlXOXO Великолепно! Я потратил на это 2 часа без какого-либо документа от Google!
вы должны добавить это как ответ! @ProGirlXOXO сэкономила мне часы
Спасибо @FabianBosler. Готово, надеюсь, это поможет другим.
Если вы хотите попробовать написать, развернуть и запустить фоновую облачную функцию с помощью облачного триггера Pub/Sub, лучше использовать следующую страницу документации.
https://cloud.google.com/functions/docs/tutorials/pubsub
Я думаю, вам нужно активировать функцию.
gcloud pubsub topics publish YOUR_TOPIC_NAME --message YOUR_MESSAGE
Вам не нужно явно создавать подписку для облачной функции pubsub.
При развертывании облачной функции и указании ее на тему автоматически создается подписка.
Создать your-topic
:
gcloud pubsub topics create your-topic
Разверните функцию, указывающую на your-topic
(это автоматически создаст подписку):
gcloud functions deploy your-function --region=us-central1 --trigger-topic=your-topic --runtime=python37 --entry-point=main
Запустите команду deploy из папки с вашим кодом облачной функции. Вы можете изменить runtime
и entry-point
в соответствии с вашим вариантом использования.
Любая дополнительная подписка, которую вы создаете, не имеет потребителей, поэтому сообщения не будут подтверждены. Кроме того, если ваша облачная функция не работает, ее сообщения могут быть не подтверждены.
Что вы используете, чтобы определить, что ваши сообщения не подтверждаются? Кроме того, из того, что я вижу в запущенных примерах, облачные функции создают только одну push-подписку, а не подписку по запросу.