» هوش مصنوعی » Google Cloud Pub/Sub را برای اتوماسیون کار با استفاده از PHP و Nodejs راه اندازی کنید
هوش مصنوعی

Google Cloud Pub/Sub را برای اتوماسیون کار با استفاده از PHP و Nodejs راه اندازی کنید

دی 11, 1348 2067

در این راهنما، نحوه راه‌اندازی Pub/Sub و استفاده از PHP برای ارسال پیام از یک VM Instance و Nodejs برای دریافت پیام‌ها از VM Instance دیگر و انجام هرگونه کار اتوماسیون را خواهید آموخت

مراحل راه اندازی Pub-Sub

  1. یک موضوع میخانه/فرعی ایجاد کنید
  2. یک اشتراک Pub/Sub ایجاد کنید
  3. یک نمونه VM ایجاد کنید و PHP را تنظیم کنید برای ارسال پیام
  4. یک نمونه VM ایجاد کنید و Nodejs را برای دریافت پیام ها راه اندازی کنید
  5. تست میخانه/فرعی

ایجاد یک میخانه/موضوع فرعی

به Google Cloud Console خود بروید و به Big Data >> Pub/Sub >> Topics

بروید

روی ایجاد موضوع

کلیک کنید

یک نام موضوع

را وارد کنید

روی ایجاد

کلیک کنید

یک اشتراک Pub/Sub ایجاد کنید

هنگامی که موضوع شما ایجاد شد، روی 3 نقطه سمت راست موضوع خود کلیک کنید و روی اشتراک جدید

کلیک کنید

یک نام

اشتراک را وارد کنید

روی ایجاد

کلیک کنید

یک نمونه VM ایجاد کنید و PHP را برای ارسال پیام تنظیم کنید

اگر نمونه خود را در حال اجرا دارید، می‌توانید مراحل زیر را برای نصب Pub/Sub Client Libraries برای PHP دنبال کنید، می‌توانید این آموزش را برای تنظیم VM Instance در Googleloud دنبال کنید.

SSH به نمونه خود و نصب Composer برای نصب کتابخانه های سرویس گیرنده Pub/Sub

به دایرکتوری مورد نظر خود بروید و دستور زیر را اجرا کنید

آهنگساز به google/cloud-pubsub نیاز دارد

پس از اتمام نصب، می‌توانید پوشه vendor را بیابید و دو فایل composer.json و composer.lock ایجاد می‌شوند

اکنون می‌توانیم یک فایل جدید بسازیم و کدی را بنویسیم تا پیامی به موضوع Pub/Sub ایجاد شده منتشر شود

سودو نانو sendmessage.php

YOUR_PROJECT_ID را با شناسه پروژه خود، TOPIC_NAME را با نام موضوع و MESSAGE را با پیام خود جایگزین کنید و کد زیر را برای انتشار پیامی در موضوع

قرار دهید.

__DIR__ نیاز دارد. '/vendor/autoload.php';
از GoogleCloudPubSubPubSubClient استفاده کنید.

$pubsub = PubSubClient جدید([
     'projectId' => 'YOUR_PROJECT_ID',
])؛

$topic = $pubsub->topic('TOPIC_NAME');

$topic->publish([
     'data' => 'پیام'
])؛

فایل را ذخیره کنید sendmessage.js

یک نمونه VM ایجاد کنید و Nodejs را برای دریافت پیام‌ها تنظیم کنید

یک نمونه جدید با اوبونتو 16.10 LTS تصویر بوت بدون فعال کردن قوانین فایروال HTTP و HTTPS ایجاد کنید زیرا ما از این نمونه به صورت عمومی استفاده نمی کنیم، بلکه فقط برای اجرای فرآیند اتوماسیون استفاده می کنیم.

هنگامی که نمونه خود را اجرا کردید، Nodejs و کتابخانه های کلاینت را برای Nodejs نصب کنید

SSH را به نمونه جدید خود ارسال کنید و دستورات را یکی یکی صادر کنید

به‌روزرسانی sudo apt
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential

اکنون Nodejs را برای گوش دادن نصب کرده اید و آماده هستید تا Nodejs را به پیام های دریافتی گوش دهد

mkdir اتوماسیون
cd اتوماسیون

sudo nano listener.js

YOUR_PROJECT_ID را با شناسه پروژه خود جایگزین کنید، SUBSCRIPTION_NAME را با نام اشتراک خود جایگزین کنید، کد زیر را برای دریافت پیام‌هایی که در Pub/Sub Topic منتشر می‌شوند، قرار دهید.

const PubSub = require('@google-cloud/pubsub');

const pubsub = new PubSub({
     projectId: 'YOUR_PROJECT_ID'
})؛

const subscription = pubsub.subscription('SUBSCRIPTION_NAME');

اجازه دهید messageCount = 0;
const messageHandler = پیام => {
     console.log(`پیام دریافتی ${message.id}:`);
     console.log(`tData: ${message.data}`);

     messageCount += 1;

     message.ack();
};

subscription.on('message', message Handler);

setTimeout(() => {
     subscription.removeListener('message', messageHandler);
     console.log(`${messageCount} پیام(ها) دریافت شد.`);
}، timeout * 1000);

فایل listener.js

را ذخیره کنید

Nodejs را برای گوش دادن به پیام های دریافتی جدید راه اندازی کنید

گره listener.js

اکنون برنامه Nodejs شما به پیام‌های دریافتی گوش می‌دهد. SSH را باز نگه دارید تا پیام های دریافتی را بررسی کنید

آزمایش Pub/Sub

به نمونه نصب شده PHP خود بروید و فایل sendmessage.php را ویرایش کنید و MESSAGE را با پیام خود جایگزین کنید و دستور زیر را اجرا کنید

php sendmessage.php

اکنون پیام را در نمونه نصب شده Nodejs دریافت خواهید کرد.

به این نوشته امتیاز بدهید!

افراد نیوز

افراد نیوز

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  • ×