محرک های Pub/Sub


Google Cloud 's Pub/Sub یک گذرگاه پیام توزیع شده در سطح جهانی است که به طور خودکار در صورت نیاز شما مقیاس می شود. هر زمان که یک پیام Pub/Sub جدید به یک موضوع خاص ارسال می شود، می توانید یک تابع را فعال کنید.

ماژول های مورد نیاز را وارد کنید

برای شروع، ماژول های مورد نیاز برای مدیریت رویدادهای Pub/Sub را وارد کنید:

const {onMessagePublished} = require("firebase-functions/v2/pubsub");
const logger = require("firebase-functions/logger");
from firebase_functions import pubsub_fn

عملکرد را فعال کنید

شما باید نام موضوع Pub/Sub را که می‌خواهید عملکرد شما را فعال کند مشخص کنید و رویداد را در کنترل کننده رویداد تنظیم کنید:

exports.hellopubsub = onMessagePublished("topic-name", (event) => {
@pubsub_fn.on_message_published(topic="topic-name")
def hellopubsub(event: pubsub_fn.CloudEvent[pubsub_fn.MessagePublishedData]) -> None:
    """Log a message using data published to a Pub/Sub topic."""

به محموله پیغام میخانه/فرعی دسترسی پیدا کنید

محموله پیام Pub/Sub از شیء پیامی که به عملکرد شما بازگردانده شده است قابل دسترسی است. برای پیام‌های دارای JSON در متن پیام Pub/Sub ، Firebase SDK for Cloud Functions دارای ویژگی کمکی برای رمزگشایی پیام است. به عنوان مثال، در اینجا پیامی با یک بار ساده JSON منتشر شده است:

gcloud pubsub topics publish topic-name --message '{"name":"Xenia"}'

شما می توانید از طریق ویژگی json به یک محموله داده JSON مانند این دسترسی داشته باشید:

  // Get the `name` attribute of the PubSub message JSON body.
  let name = null;
  try {
    name = event.data.message.json.name;
  } catch (e) {
    logger.error("PubSub message was not JSON", e);
  }
# Get the `name` attribute of the PubSub message JSON body.
try:
    data = event.data.message.json
except ValueError:
    print("PubSub message was not JSON")
    return
if data is None:
    return
if "name" not in data:
    print("No 'name' key")
    return
name = data["name"]

سایر محموله‌های غیر JSON در پیام Pub/Sub به‌عنوان رشته‌های کدگذاری شده base64 در شیء پیام وجود دارند. برای خواندن پیامی مانند زیر، باید رشته رمزگذاری شده base64 را مطابق شکل رمزگشایی کنید:

gcloud pubsub topics publish topic-name --message 'MyMessage'
// Decode the PubSub Message body.
const message = event.data.message;
const messageBody = message.data ?
      Buffer.from(message.data, "base64").toString() :
      null;
# Decode the PubSub message body.
message_body = base64.b64decode(event.data.message.data)

دسترسی به ویژگی های پیام

پیام Pub/Sub را می توان با ویژگی های داده تنظیم شده در دستور انتشار ارسال کرد. به عنوان مثال، می توانید پیامی را با ویژگی name منتشر کنید:

gcloud pubsub topics publish topic-name --attribute name=Xenia

شما می توانید چنین ویژگی هایی را از ویژگی متناظر شی پیام بخوانید:

// Get the `name` attribute of the message.
const name = event.data.message.attributes.name;
# Get the `name` attribute of the message.
if "name" not in event.data.message.attributes:
    print("No 'name' attribute")
    return
name = event.data.message.attributes["name"]
،


Google Cloud 's Pub/Sub یک گذرگاه پیام توزیع شده در سطح جهانی است که به طور خودکار در صورت نیاز شما مقیاس می شود. هر زمان که یک پیام Pub/Sub جدید به یک موضوع خاص ارسال می شود، می توانید یک تابع را فعال کنید.

ماژول های مورد نیاز را وارد کنید

برای شروع، ماژول های مورد نیاز برای مدیریت رویدادهای Pub/Sub را وارد کنید:

const {onMessagePublished} = require("firebase-functions/v2/pubsub");
const logger = require("firebase-functions/logger");
from firebase_functions import pubsub_fn

عملکرد را فعال کنید

شما باید نام موضوع Pub/Sub را که می‌خواهید عملکرد شما را فعال کند مشخص کنید و رویداد را در کنترل کننده رویداد تنظیم کنید:

exports.hellopubsub = onMessagePublished("topic-name", (event) => {
@pubsub_fn.on_message_published(topic="topic-name")
def hellopubsub(event: pubsub_fn.CloudEvent[pubsub_fn.MessagePublishedData]) -> None:
    """Log a message using data published to a Pub/Sub topic."""

به محموله پیغام میخانه/فرعی دسترسی پیدا کنید

محموله پیام Pub/Sub از شیء پیامی که به عملکرد شما بازگردانده شده است قابل دسترسی است. برای پیام‌های دارای JSON در متن پیام Pub/Sub ، Firebase SDK for Cloud Functions دارای ویژگی کمکی برای رمزگشایی پیام است. به عنوان مثال، در اینجا پیامی با یک بار ساده JSON منتشر شده است:

gcloud pubsub topics publish topic-name --message '{"name":"Xenia"}'

شما می توانید از طریق ویژگی json به یک محموله داده JSON مانند این دسترسی داشته باشید:

  // Get the `name` attribute of the PubSub message JSON body.
  let name = null;
  try {
    name = event.data.message.json.name;
  } catch (e) {
    logger.error("PubSub message was not JSON", e);
  }
# Get the `name` attribute of the PubSub message JSON body.
try:
    data = event.data.message.json
except ValueError:
    print("PubSub message was not JSON")
    return
if data is None:
    return
if "name" not in data:
    print("No 'name' key")
    return
name = data["name"]

سایر محموله‌های غیر JSON در پیام Pub/Sub به‌عنوان رشته‌های کدگذاری شده base64 در شیء پیام وجود دارند. برای خواندن پیامی مانند زیر، باید رشته رمزگذاری شده base64 را مطابق شکل رمزگشایی کنید:

gcloud pubsub topics publish topic-name --message 'MyMessage'
// Decode the PubSub Message body.
const message = event.data.message;
const messageBody = message.data ?
      Buffer.from(message.data, "base64").toString() :
      null;
# Decode the PubSub message body.
message_body = base64.b64decode(event.data.message.data)

دسترسی به ویژگی های پیام

پیام Pub/Sub را می توان با ویژگی های داده تنظیم شده در دستور انتشار ارسال کرد. به عنوان مثال، می توانید پیامی را با ویژگی name منتشر کنید:

gcloud pubsub topics publish topic-name --attribute name=Xenia

شما می توانید چنین ویژگی هایی را از ویژگی متناظر شی پیام بخوانید:

// Get the `name` attribute of the message.
const name = event.data.message.attributes.name;
# Get the `name` attribute of the message.
if "name" not in event.data.message.attributes:
    print("No 'name' attribute")
    return
name = event.data.message.attributes["name"]
،


Google Cloud 's Pub/Sub یک گذرگاه پیام توزیع شده در سطح جهانی است که به طور خودکار در صورت نیاز شما مقیاس می شود. هر زمان که یک پیام Pub/Sub جدید به یک موضوع خاص ارسال می شود، می توانید یک تابع را فعال کنید.

ماژول های مورد نیاز را وارد کنید

برای شروع، ماژول های مورد نیاز برای مدیریت رویدادهای Pub/Sub را وارد کنید:

const {onMessagePublished} = require("firebase-functions/v2/pubsub");
const logger = require("firebase-functions/logger");
from firebase_functions import pubsub_fn

عملکرد را فعال کنید

شما باید نام موضوع Pub/Sub را که می‌خواهید عملکرد شما را فعال کند مشخص کنید و رویداد را در کنترل کننده رویداد تنظیم کنید:

exports.hellopubsub = onMessagePublished("topic-name", (event) => {
@pubsub_fn.on_message_published(topic="topic-name")
def hellopubsub(event: pubsub_fn.CloudEvent[pubsub_fn.MessagePublishedData]) -> None:
    """Log a message using data published to a Pub/Sub topic."""

به محموله پیغام میخانه/فرعی دسترسی پیدا کنید

محموله پیام Pub/Sub از شیء پیامی که به عملکرد شما بازگردانده شده است قابل دسترسی است. برای پیام‌های دارای JSON در متن پیام Pub/Sub ، Firebase SDK for Cloud Functions دارای ویژگی کمکی برای رمزگشایی پیام است. به عنوان مثال، در اینجا پیامی با یک بار ساده JSON منتشر شده است:

gcloud pubsub topics publish topic-name --message '{"name":"Xenia"}'

شما می توانید از طریق ویژگی json به یک محموله داده JSON مانند این دسترسی داشته باشید:

  // Get the `name` attribute of the PubSub message JSON body.
  let name = null;
  try {
    name = event.data.message.json.name;
  } catch (e) {
    logger.error("PubSub message was not JSON", e);
  }
# Get the `name` attribute of the PubSub message JSON body.
try:
    data = event.data.message.json
except ValueError:
    print("PubSub message was not JSON")
    return
if data is None:
    return
if "name" not in data:
    print("No 'name' key")
    return
name = data["name"]

سایر محموله‌های غیر JSON در پیام Pub/Sub به‌عنوان رشته‌های کدگذاری شده base64 در شیء پیام وجود دارند. برای خواندن پیامی مانند زیر، باید رشته رمزگذاری شده base64 را مطابق شکل رمزگشایی کنید:

gcloud pubsub topics publish topic-name --message 'MyMessage'
// Decode the PubSub Message body.
const message = event.data.message;
const messageBody = message.data ?
      Buffer.from(message.data, "base64").toString() :
      null;
# Decode the PubSub message body.
message_body = base64.b64decode(event.data.message.data)

دسترسی به ویژگی های پیام

پیام Pub/Sub را می توان با ویژگی های داده تنظیم شده در دستور انتشار ارسال کرد. به عنوان مثال، می توانید پیامی را با ویژگی name منتشر کنید:

gcloud pubsub topics publish topic-name --attribute name=Xenia

شما می توانید چنین ویژگی هایی را از ویژگی متناظر شی پیام بخوانید:

// Get the `name` attribute of the message.
const name = event.data.message.attributes.name;
# Get the `name` attribute of the message.
if "name" not in event.data.message.attributes:
    print("No 'name' attribute")
    return
name = event.data.message.attributes["name"]