arrow_back

Pub/Sub: Qwik Start - Python

Sign in Join
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Pub/Sub: Qwik Start - Python

Lab 30 minutes universal_currency_alt 1 Credit show_chart Introductory
info This lab may incorporate AI tools to support your learning.
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP094

Google Cloud Rehbersiz Laboratuvarları

Genel bakış

Pub/Sub hizmeti; uygulamaların güvenilir, hızlı ve eşzamansız bir biçimde mesaj alışverişi gerçekleştirmesini sağlar. Bunun için veri üreticisi bir Cloud Pub/Sub konusuna mesaj yayınlar. Ardından, bir abone istemci, bu konuya abonelik oluşturur ve abonelikteki mesajları kullanır. Cloud Pub/Sub, güvenilir şekilde teslim edilemeyen mesajları yedi gün boyunca alıcıya ulaştırmaya çalışır.

Bu laboratuvarda, Python istemci kitaplığını kullanarak Pub/Sub'da mesaj yayınlamayı öğreneceksiniz.

Neler yapacaksınız?

Bu laboratuvarda aşağıdakileri yapacaksınız:

  • Pub/Sub hakkındaki temel bilgileri öğrenme
  • Pub/Sub konularını ve aboneliklerini oluşturma, silme ve listeleme
  • Bir konuda mesaj yayınlama
  • Ayrı konu mesajlarının çıkışını almak için pull abonesi kullanma

Kurulum ve Şartlar

Laboratuvarı Başlat düğmesini tıklamadan önce

Buradaki talimatları okuyun. Laboratuvarlar süreli olduğundan duraklatılamaz. Laboratuvarı Başlat'ı tıkladığınızda başlayan zamanlayıcı, Google Cloud kaynaklarının ne süreyle kullanımınıza açık durumda kalacağını gösterir.

Bu uygulamalı laboratuvarı kullanarak, laboratuvar etkinliklerini gerçek bir bulut ortamında (Simülasyon veya demo ortamında değil.) gerçekleştirebilirsiniz. Bu olanağın sunulabilmesi için size yeni, geçici kimlik bilgileri verilir. Bu kimlik bilgilerini laboratuvar süresince Google Cloud'da oturum açmak ve Google Cloud'a erişmek için kullanırsınız.

Bu laboratuvarı tamamlamak için şunlar gerekir:

  • Standart bir internet tarayıcısına erişim (Chrome Tarayıcı önerilir).
Not: Bu laboratuvarı çalıştırmak için tarayıcıyı gizli pencerede açın. Aksi takdirde, kişisel hesabınızla öğrenci hesabınız arasında oluşabilecek çakışmalar nedeniyle kişisel hesabınızdan ek ücret alınabilir.
  • Laboratuvarı tamamlamak için yeterli süre. (Laboratuvarlar, başlatıldıktan sonra duraklatılamaz)
Not: Kişisel bir Google Cloud hesabınız veya projeniz varsa bu laboratuvarda kullanmayın. Aksi takdirde hesabınızdan ek ücret alınabilir.

Laboratuvarınızı başlatma ve Google Cloud Console'da oturum açma

  1. Laboratuvarı Başlat düğmesini tıklayın. Laboratuvar için ödeme yapmanız gerekiyorsa ödeme yöntemini seçebileceğiniz bir pop-up açılır. Soldaki Laboratuvar Ayrıntıları panelinde şunlar yer alır:

    • Google Cloud Console'u aç düğmesi
    • Kalan süre
    • Bu laboratuvarda kullanmanız gereken geçici kimlik bilgileri
    • Bu laboratuvarda ilerlemek için gerekebilecek diğer bilgiler
  2. Google Cloud Console'u aç'ı tıklayın (veya Chrome Tarayıcı'yı kullanıyorsanız sağ tıklayıp Bağlantıyı gizli pencerede aç'ı seçin).

    Laboratuvar, kaynakları çalıştırır ve sonra Oturum açın sayfasını gösteren başka bir sekme açar.

    İpucu: Sekmeleri ayrı pencerelerde, yan yana açın.

    Not: Hesap seçin iletişim kutusunu görürseniz Başka bir hesap kullan'ı tıklayın.
  3. Gerekirse aşağıdaki kullanıcı adını kopyalayıp Oturum açın iletişim kutusuna yapıştırın.

    {{{user_0.username | "Username"}}}

    Kullanıcı adını Laboratuvar ayrıntıları panelinde de bulabilirsiniz.

  4. İleri'yi tıklayın.

  5. Aşağıdaki şifreyi kopyalayıp Hoş geldiniz iletişim kutusuna yapıştırın.

    {{{user_0.password | "Password"}}}

    Şifreyi Laboratuvar ayrıntıları panelinde de bulabilirsiniz.

  6. İleri'yi tıklayın.

    Önemli: Laboratuvarın sizinle paylaştığı giriş bilgilerini kullanmanız gerekir. Google Cloud hesabınızın kimlik bilgilerini kullanmayın. Not: Bu laboratuvarda kendi Google Cloud hesabınızı kullanabilmek için ek ücret ödemeniz gerekebilir.
  7. Sonraki sayfalarda ilgili düğmeleri tıklayarak ilerleyin:

    • Şartları ve koşulları kabul edin.
    • Geçici bir hesap kullandığınızdan kurtarma seçenekleri veya iki faktörlü kimlik doğrulama eklemeyin.
    • Ücretsiz denemelere kaydolmayın.

Birkaç saniye sonra Google Cloud Console bu sekmede açılır.

Not: Google Cloud ürün ve hizmetlerinin listelendiği menüyü görmek için sol üstteki Gezinme menüsü'nü tıklayın. Gezinme menüsü simgesi

Cloud Shell'i etkinleştirme

Cloud Shell, çok sayıda geliştirme aracı içeren bir sanal makinedir. 5 GB boyutunda kalıcı bir ana dizin sunar ve Google Cloud üzerinde çalışır. Cloud Shell, Google Cloud kaynaklarınıza komut satırı erişimi sağlar.

  1. Google Cloud Console'un üst kısmından Cloud Shell'i etkinleştir Cloud Shell'i etkinleştir simgesi simgesini tıklayın.

Bağlandığınızda, kimliğiniz doğrulanmış olur. Proje ise PROJECT_ID'nize göre ayarlanmıştır. Çıkış, bu oturum için PROJECT_ID'yi tanımlayan bir satır içerir:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud, Google Cloud'un komut satırı aracıdır. Cloud Shell'e önceden yüklenmiştir ve sekmeyle tamamlamayı destekler.

  1. (İsteğe bağlı) Etkin hesap adını şu komutla listeleyebilirsiniz:
gcloud auth list
  1. Yetkilendir'i tıklayın.

  2. Çıkışınız aşağıdaki gibi görünecektir:

Çıkış:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (İsteğe bağlı) Proje kimliğini şu komutla listeleyebilirsiniz:
gcloud config list project

Çıkış:

[core] project = <project_ID>

Örnek çıkış:

[core] project = qwiklabs-gcp-44776a13dea667a6 Not: gcloud ile ilgili tüm belgeleri, Google Cloud'daki gcloud CLI'ya genel bakış rehberinde bulabilirsiniz.

1. görev: Sanal ortam oluşturma

Paket yüklemeyi sistemden ayrı tutmak için Python sanal ortamları kullanılır.

  1. virtualenv ortamını yükleyin:
sudo apt-get install -y virtualenv
  1. Sanal ortamı derleyin:
python3 -m venv venv
  1. Sanal ortamı etkinleştirin.
source venv/bin/activate

2. görev: İstemci kitaplığını yükleme

  1. İstemci kitaplığını yüklemek için aşağıdaki komutu çalıştırın:
pip install --upgrade google-cloud-pubsub
  1. Bir GitHub deposunu klonlayarak örnek kodu alın:
git clone https://github.com/googleapis/python-pubsub.git
  1. İlgili dizine gidin:
cd python-pubsub/samples/snippets

3. görev: Pub/Sub ile ilgili temel bilgiler

Pub/Sub, eşzamansız olarak çalışan bir global mesaj hizmetidir. Pub/Sub'da şu üç terim sıklıkla kullanılır: konular, yayınlama ve abonelik.

Konu, ortak bir iş parçacığı aracılığıyla uygulamaların birbirine bağlanmasını sağlayan paylaşımlı dizedir.

Yayıncılar, mesajları Pub/Sub konularına aktarır (veya yayınlar). Ardından aboneler, ilgili iş parçacığına abone olarak mesajları konudan alır veya push abonelikleri için webhook'ları yapılandırır. Her abone, yapılandırılabilir bir zaman aralığında tüm mesajları onaylamak zorundadır.

Özetle, yayıncı bir konu oluşturur ve konuya mesaj gönderir, abone ise ilgili konudan mesaj almak için konuya abone olur.

Google Cloud'da Pub/Sub

Pub/Sub, Cloud Shell'de önceden yüklü olarak sunulur. Dolayısıyla bu hizmeti kullanmaya başlayabilmek için herhangi bir yükleme veya yapılandırma gerekmez. Bu laboratuvarda, Python kullanarak konu ve abone oluşturup mesajı görüntülemeyi öğreneceksiniz. Mesajı konuya yayınlamak için gcloud komutu kullanılır.

4. görev: Konu oluşturma

Pub/Sub'a veri yayınlamak üzere bir konu oluşturur, ardından konu için bir yayıncıyı yapılandırırsınız.

  1. Proje kimliğiniz Cloud Shell'de otomatik olarak GOOGLE_CLOUD_PROJECT adlı ortam değişkeninde depolanır:
echo $GOOGLE_CLOUD_PROJECT
  1. BAĞLANTI AYRINTILARI bölümündeki proje kimliğiyle çıkıştaki kimliğin aynı olduğundan emin olun.

publisher.py, Cloud Pub/Sub API'yi kullanarak konularda temel işlemlerin nasıl yapılacağını gösteren bir komut dosyasıdır. Yayıncı komut dosyasının içeriğini görüntüleyin:

cat publisher.py Not: python-pubsub/samples/snippets/publisher.py'yi görüntülemek için Cloud Shell'e yüklü kabuk düzenleyicilerini (ör. nano veya vim) ya da Cloud Shell kod düzenleyicisini kullanabilirsiniz.
  1. Yayıncı komut dosyası hakkında bilgi edinin:
python publisher.py -h

Örnek çıkış:

usage: publisher.py [-h] project {list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings} ... Bu uygulama, Cloud Pub/Sub API'yi kullanarak konularda temel işlemlerin nasıl yapılacağını gösterir. Daha fazla bilgi edinmek için /pubsub altındaki README.md dosyasına ve https://cloud.google.com/pubsub/docs adresindeki belgelere göz atın. konum bağımsız değişkenleri: project Google Cloud proje kimliğiniz {list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings} list Belirli bir projedeki tüm Pub/Sub konularını listeler. create Yeni bir Pub/Sub konusu oluşturur. delete Mevcut Pub/Sub konusunu siler. publish Pub/Sub konusuna birden çok mesaj yayınlar. publish-with-custom-attributes Pub/Sub konusuna, özel özellikleri olan birden çok mesaj yayınlar. publish-with-futures Pub/Sub konusuna birden çok mesaj yayınlar ve bunların mesaj kimliklerinin çıktısını verir. publish-with-error-handler Pub/Sub konusuna, bir hata işleyici ile birlikte birden çok mesaj yayınlar. publish-with-batch-settings Pub/Sub konusuna, toplu ayarlarla birlikte birden çok mesaj yayınlar. isteğe bağlı bağımsız değişkenler: -h, --help Bu yardım mesajını gösterir ve çıkar
  1. Yayıncı komut dosyasını çalıştırıp Pub/Sub konusu oluşturun:
python publisher.py $GOOGLE_CLOUD_PROJECT create MyTopic

Örnek çıkış:

Topic created: name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"

Tamamlanan Görevi Test Etme

Yerine getirdiğiniz görevi doğrulamak için İlerleme durumumu kontrol et'i tıklayın. Cloud Pub/Sub konusunu başarıyla oluşturduysanız bir değerlendirme puanı görürsünüz.

Konu oluşturun.
  1. Bu komut, belirli bir projedeki tüm Pub/Sub konularının listesini döndürür:
python publisher.py $GOOGLE_CLOUD_PROJECT list

Örnek çıkış:

name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"

Az önce oluşturduğunuz konuyu Cloud Console'da da görüntüleyebilirsiniz.

  1. Gezinme menüsü > Pub/Sub > Konular'a gidin.

MyTopic adlı konuyu göreceksiniz.

5. görev: Abonelik oluşturma

  1. subscriber.py komut dosyasını kullanarak konu için bir Pub/Sub aboneliği oluşturun:
python subscriber.py $GOOGLE_CLOUD_PROJECT create MyTopic MySub

Tamamlanan Görevi Test Etme

Yerine getirdiğiniz görevi doğrulamak için İlerleme durumumu kontrol et'i tıklayın. Cloud Pub/Sub aboneliğini başarıyla oluşturduysanız bir değerlendirme puanı görürsünüz.

Abonelik oluşturun.
  1. Bu komut, belirli bir projedeki abone listesini döndürür:
python subscriber.py $GOOGLE_CLOUD_PROJECT list-in-project

Tek bir abonelik oluşturduğunuzdan sadece bir tane abonelik göreceksiniz.

Örnek çıkış:

projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub
  1. Az önce oluşturduğunuz aboneliği konsoldan kontrol edin. Soldaki bölmede, Abonelikler'i tıklayın. Aboneliğin adını ve diğer ayrıntıları göreceksiniz.

  2. subscriber komut dosyasıyla ilgili bilgi edinin:

python subscriber.py -h

Çıkış:

usage: subscriber.py [-h] project {list_in_topic,list_in_project,create,create-push,delete,update,receive,receive-custom-attributes,receive-flow-control,receive-synchronously,listen_for_errors} ... Bu uygulama, Cloud Pub/Sub API'yi kullanarak aboneliklerde temel işlemlerin nasıl yapılacağını gösterir. Daha fazla bilgi edinmek için /pubsub altındaki README.md dosyasına ve https://cloud.google.com/pubsub/docs adresindeki belgelere göz atın. konum bağımsız değişkenleri: project Google Cloud proje kimliğiniz {list_in_topic,list_in_project,create,create-push,delete,update,receive,receive-custom-attributes,receive-flow-control,receive-synchronously,listen_for_errors} list_in_topic Belirtilen konunun tüm aboneliklerini listeler. list_in_project Belirtilen projenin tüm aboneliklerini listeler. create Belirtilen konu için yeni bir pull aboneliği oluşturur. create-push Belirtilen konu için yeni bir push aboneliği oluşturur. delete Mevcut Pub/Sub konusunu siler. update Mevcut Pub/Sub aboneliğinin push uç nokta URL'sini günceller. Aboneliğin belirli özelliklerinin (ör. konu) değiştirilemediğini unutmayın. receive Bir pull aboneliğinden mesaj alır. receive-custom-attributes Bir pull aboneliğinden mesaj alır. receive-flow-control Bir pull aboneliğinden akış denetimiyle birlikte mesaj alır. receive-synchronously Mesajların eşzamanlı olarak pull edilmesi. listen_for_errors Bir pull aboneliğinden mesaj alır ve hataları yakalar. isteğe bağlı bağımsız değişkenler: -h, --help Bu yardım mesajını gösterir ve çıkar

6. görev: Mesajları yayınlama

MyTopic adlı konunuzu ve MyTopic'e yönelik aboneliği (MySub) oluşturdunuz. Şimdi, MyTopic'e mesaj yayınlamak için gcloud komutlarının nasıl kullanılacağına geçelim.

  1. MyTopic'e "Hello" mesajını yayınlayın:
gcloud pubsub topics publish MyTopic --message "Hello"
  1. MyTopic'e birkaç mesaj daha yayınlamak için aşağıdaki komutları çalıştırın (<ADINIZ> ifadesini kendi adınızla, <YİYECEK> ifadesini ise sevdiğiniz bir yiyecekle değiştirin):
gcloud pubsub topics publish MyTopic --message "Yayıncının adı <ADINIZ>" gcloud pubsub topics publish MyTopic --message "Yayıncı <YİYECEK> yemeyi seviyor" gcloud pubsub topics publish MyTopic --message "Yayıncı Pub/Sub'ın muhteşem olduğunu düşünüyor"

7. görev: Mesajları görüntüleme

Artık MyTopic'e mesajlarınızı yayınladınız. Şimdi MySub'ı kullanarak onları pull edip görüntüleyebilirsiniz.

  1. MyTopic'ten mesajı çekmek için MySub'ı kullanın:
python subscriber.py $GOOGLE_CLOUD_PROJECT receive MySub

Örnek çıkış:

Listening for messages on projects/qwiklabs-gcp-7877af129f04d8b3/subscriptions/MySub Received message: Message { data: 'Yayıncı Pub/Sub'ın muhteşem olduğunu düşünüyor' attributes: {} } Received message: Message { data: 'Hello' attributes: {} } Received message: Message { data: "Yayıncının adı Hilal" attributes: {} } Received message: Message { data: 'Yayıncı peynir yemeyi seviyor' attributes: {} }
  1. Dinlemeye son vermek için Ctrl+c tuşlarına basın.

8. görev: Öğrendiklerinizi test etme

Aşağıda, bu laboratuvarda ele alınan kavramlarla ilgili bilginizi pekiştirmeye yönelik çoktan seçmeli sorular verilmiştir. Bu soruları elinizden geldiğince yanıtlamaya çalışın.

Tebrikler!

Python'u kullanarak Pub/Sub konusu oluşturdunuz, konuyu yayınladınız, abonelik oluşturdunuz ve ardından aboneliği kullanarak verileri konudan çektiniz.

Sonraki adımlar/Daha fazla bilgi

Pub/Sub'ı tamamlar nitelikte olan Pub/Sub Lite, tahmin edilebilir trafik kalıplarına sahip mesajlaşma sistemleri için alt bölgesel bir hizmettir. Saniyede 1 MiB ila 1 GiB mesaj yayınlıyorsanız Pub/Sub Lite yüksek hacimli etkinlik kullanımları için düşük maliyetli bir seçenektir. Pub/Sub Lite'ı şu laboratuvar ile deneyin:

Bu laboratuvar, Qwik Starts laboratuvar serisinin bir parçasıdır. Bu laboratuvarlar, Google Cloud'daki pek çok özelliği biraz olsun tanıtabilmek için tasarlamıştır. Katılabileceğiniz bir sonraki laboratuvarı bulmak için Google Cloud Öğrenim Merkezi kataloğunda "Qwik Starts" araması yapın.

Google Cloud eğitimi ve sertifikası

...Google Cloud teknolojilerinden en iyi şekilde yararlanmanıza yardımcı olur. Derslerimizde teknik becerilere odaklanırken en iyi uygulamalara da yer veriyoruz. Gerekli yetkinlik seviyesine hızlıca ulaşmanız ve öğrenim maceranızı sürdürebilmeniz için sizlere yardımcı olmayı amaçlıyoruz. Temel kavramlardan ileri seviyeye kadar farklı eğitim programlarımız mevcut. Ayrıca, yoğun gündeminize uyması için talep üzerine sağlanan, canlı ve sanal eğitim alternatiflerimiz de var. Sertifikasyonlar ise Google Cloud teknolojilerindeki becerilerinizi ve uzmanlığınızı doğrulamanıza ve kanıtlamanıza yardımcı oluyor.

Kılavuzun Son Güncellenme Tarihi: 13 Şubat 2024

Laboratuvarın Son Test Edilme Tarihi: 22 Eylül 2023

Telif Hakkı 2024 Google LLC Tüm hakları saklıdır. Google ve Google logosu, Google LLC şirketinin ticari markalarıdır. Diğer tüm şirket ve ürün adları ilişkili oldukları şirketlerin ticari markaları olabilir.

This content is not currently available

We will notify you via email when it becomes available

Great!

We will contact you via email if it becomes available