arrow_back

Cloud Endpoints: Qwik Start

Join Sign in

Cloud Endpoints: Qwik Start

1 hour 1 Credit

GSP164

Google Cloud Rehbersiz Laboratuvarları

Genel Bakış

Bu laboratuvarda, App Engine uygulamasında API oluşturmaya yönelik bir araç dizisi olan Google Cloud Endpoints ile örnek bir API dağıtacaksınız. Örnek kod şunları içerecek:

  • Üç harften oluşan IATA kodundan (örneğin SFO, JFK, AMS) havaalanı adını sorgulayabileceğiniz bir REST API.
  • API yapılandırmasını Cloud Endpoints'e yükleyen bir komut dosyası.
  • Örnek API'yi barındırmak için esnek bir Google App Engine arka ucu dağıtan bir komut dosyası.

Örnek API'ye birkaç istek gönderdikten sonra Cloud Endpoints İşlem Grafikleri ve Günlükleri'ni görüntüleyebilirsiniz. Bunlar, API'lerinizi izlemenize ve kullanımlarına dair bilgi kazanmanıza imkan sağlayan araçlardır.

Kurulum ve Gereksinimler

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

Buradaki talimatları okuyun. Laboratuvarlar süreli olduğundan duraklatılamaz. Laboratuvarı Başlat'ı tıklattığı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 Qwiklabs uygulamalı laboratuvarı, laboratuvar etkinliklerini gerçek bir bulut ortamında (simülasyon veya demo ortamında değil) kendi kendinize yapmanıza olanak tanır. 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şim için kullanırsınız.

Gerekenler

Bu laboratuvarı tamamlamak için şunlar gerekir:

  • Standart bir internet tarayıcısına erişim (Chrome tarayıcı önerilir).
  • Laboratuvarı tamamlamak için zaman.

Not: Kendi Google Cloud hesabınız veya projeniz zaten varsa bu laboratuvarda hesabınızı ya da projenizi kullanmayın.

Not: Pixelbook kullanıyorsanız bu laboratuvarı çalıştırmak için gizli pencere açın.

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 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 Console'u Aç'ı tıklayın. Laboratuvar, kaynakları çalıştırır ve sonra Oturum aç 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 Laboratuvar Ayrıntıları panelinden Kullanıcı adı'nı kopyalayın ve Oturum aç iletişim kutusuna yapıştırın. Sonraki'ni tıklayın.

  4. Laboratuvar Ayrıntıları panelinden Şifre'yi kopyalayın ve Hoş geldiniz iletişim penceresine yapıştırın. Sonraki'ni tıklayın.

    Önemli: Sol paneldeki kimlik bilgilerini kullanmanız gerekir. Google Cloud Öğrenim Merkezi kimlik bilgilerinizi kullanmayın. Not: Bu laboratuvarda kendi Google Cloud hesabınızı kullanabilmek için ek ücret ödemeniz gerekebilir.
  5. 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 Cloud Console bu sekmede açılır.

Not: Soldaki Gezinme menüsü'nü tıklayarak Google Cloud ürün ve hizmetlerinin listelendiği menüyü görüntüleyebilirsiniz. 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.

Cloud Console'da, sağ üstteki araç çubuğunda Cloud Shell'i Etkinleştir düğmesini tıklayın.

Cloud Shell simgesi

Devam'ı tıklayın.

cloudshell_continue.png

Birkaç saniye içinde ortam sağlanır ve bağlantı kurulur. Bağlandığınızda kimliğiniz zaten doğrulanmıştır. Proje ise PROJECT_ID'nize göre ayarlanmıştır. Örneğin:

Cloud Shell Terminal

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

Etkin hesap adını şu komutla listeleyebilirsiniz:

gcloud auth list

(Çıkış)

Credentialed accounts:
 - <hesabım>@<alanım>.com (active)

(Örnek çıkış)

Credentialed accounts:
 - google1623327_student@qwiklabs.net

Proje kimliğini şu komutla listeleyebilirsiniz:

gcloud config list project

(Çıkış)

[core]
project = <project_ID>

(Örnek çıkış)

[core]
project = qwiklabs-gcp-44776a13dea667a6

Örnek kodu alma

Örnek API'yi ve komut dosyalarını almak için Cloud Shell'de aşağıdaki komutu girin:

git clone https://github.com/GoogleCloudPlatform/endpoints-quickstart

Örnek kodu içeren dizin olarak değiştirin:

cd endpoints-quickstart

Endpoints yapılandırmasını dağıtma

Endpoints'te REST API yayınlamak için API'yi açıklayan bir OpenAPI yapılandırma dosyası gereklidir. Laboratuvarın örnek API'si, openapi.yaml adlı önceden yapılandırılmış bir OpenAPI dosyasıyla birlikte gelir.

Endpoints, API'leri ve hizmetleri oluşturmak ve yönetmek için Google Cloud'un altyapı hizmeti olan Google Service Management'ı kullanır. API'leri yönetmek üzere Endpoints kullanmak için API'nin OpenAPI yapılandırmasını Service Management'a dağıtırsınız.

Endpoints yapılandırmasını dağıtmak için.

endpoints-qwikstart dizininde aşağıdakileri girin:

cd scripts

Örneğe dahil olan aşağıdaki komut dosyasını çalıştırın:

./deploy_api.sh

Cloud Endpoints, hizmeti belirlemek için OpenAPI yapılandırma dosyasındaki host alanını kullanır. deploy_api.sh komut dosyası, Cloud projenizin kimliğini host alanında yapılandırılan adın parçası olarak ayarlar. (Kendi hizmetiniz için bir OpenAPI yapılandırma dosyası hazırladığınızda bunu manuel olarak yapmanız gerekir.)

Komut dosyası daha sonra şu komutu kullanarak OpenAPI yapılandırmasını Service Management'a dağıtır: gcloud endpoints services deploy openapi.yaml

Service Management hizmeti oluşturur ve yapılandırırken konsolda bazı bilgilerin çıkışını sağlar. openapi.yaml yollarının API anahtarı gerektirmediğine ilişkin uyarıları rahatlıkla yoksayabilirsiniz. İşlem başarıyla tamamlandığında hizmet yapılandırma kimliğini ve hizmet adını görüntüleyen aşağıdaki gibi bir satır görürsünüz:

Service Configuration [2017-02-13-r2] uploaded for service [airports-api.endpoints.example-project.cloud.goog]

API arka ucunu dağıtma

Şu ana kadar OpenAPI yapılandırmasını Service Management'a dağıttınız ancak henüz API arka ucunu sunacak kodu dağıtmadınız. Laboratuvar örneğinde bulunan deploy_app.sh komut dosyası, API arka ucunu barındırmak için esnek bir App Engine ortamı oluşturur ve daha sonra komut dosyası API'yi App Engine'e dağıtır.

API arka ucunu dağıtmak için endpoints-quickstart/scripts dizininde olduğunuzdan emin olun. Daha sonra aşağıdaki komut dosyasını çalıştırın:

./deploy_app.sh

Komut dosyası, us-central bölgesinde bir App Engine esnek ortamı oluşturmak için şu komutu çalıştırır: gcloud app create --region="$REGION"

App Engine esnek arka ucunun oluşturulması birkaç dakika sürer. App Engine oluşturulduktan sonra Cloud Shell'de aşağıdakilerin görüntülendiğini görürsünüz:

Başarılı! Artık uygulama oluşturuldu. İlk uygulamanızı dağıtmak için lütfen `gcloud app deploy` kullanın.

Komut dosyası, örnek API'yi App Engine'e dağıtmak için gcloud app deploy komutunu çalıştırmak üzere çalışmaya devam eder.

Daha sonra Cloud Shell'de aşağıdakine benzer bir satır görürsünüz:

../app/app_template.yaml dağıtılıyor... Aşağıdaki hizmetleri dağıtmak üzeresiniz:

API'nin App Engine'e dağıtılması birkaç dakika sürer. API App Engine'e başarılı bir şekilde dağıtıldıktan sonra aşağıdakine benzer bir satır görürsünüz:

[Varsayılan] hizmeti, [https://example-project.appspot.com]'a dağıtıldı

API'ye istek gönderme

Örnek API'yi dağıttıktan sonra aşağıdaki komut dosyasını çalıştırarak API'ye istekler gönderebilirsiniz:

./query_api.sh

Komut dosyası, API'ye istek göndermek için kullandığı curl komutunu tekrarlar ve ardından sonucu gösterir. Cloud Shell'de aşağıdakine benzer bir sonuç görürsünüz:

curl "https://example-project.appspot.com/airportName?iataCode=SFO"
San Francisco International Airport

API, SEA veya JFK gibi geçerli bir IATA havaalanı koduna ayarlanmış bir sorgu parametresini (iataCode) bekler.

Test etmek için Cloud Shell'de şu örneği çalıştırın:

./query_api.sh JFK

Az önce Cloud Endpoints'te bir API dağıttınız ve test ettiniz.

API etkinliğini izleme

Cloud Endpoints yoluyla dağıtılan API'ler sayesinde Cloud Console'da kritik işlem metriklerini izleyebilir ve Cloud Logging ile kullanıcılarınız ve kullanım hakkında bilgi edinebilirsiniz.

Grafikleri ve günlükleri doldurmak için Cloud Shell'de şu trafik oluşturma komut dosyasını çalıştırın.

./generate_traffic.sh

Console'da API'nizin işlem grafiklerine bakmak için Araçlar bölümündeki Uç Noktalar'ı tıklayın. İsteklerin grafiklere yansıtılması birkaç dakika sürebilir Verilerin görüntülenmesini beklerken şunu yapabilirsiniz:

  • İzinler yan paneli açık değilse +İzinler'i tıklayın. İzinler paneli, API'nize kimlerin erişebileceğini ve bu kişilerin erişim düzeyini kontrol etmenizi sağlar.

  • Dağıtım geçmişi sekmesini tıklayın. Bu sekme, dağıtım zamanı ve değişikliğin kim tarafından dağıtıldığı da dahil olmak üzere API dağıtımlarınızın geçmişini görüntüler.

  • Genel bakış sekmesini tıklayın. Burada trafiğin geldiğini göreceksiniz. Trafik oluşturma komut dosyası bir dakika boyunca çalıştıktan sonra Toplam gecikme grafiğindeki üç satırı (50., 95. ve 98. yüzdelik dilimler) görmek üzere aşağı kaydırın. Bu veriler, yanıt sürelerinin hızlı bir tahminini sağlar.

Uç Nokta grafiklerinin alt kısmında bulunan Yöntem'in altında GET/airportName için Tüm günlükleri göster bağlantısını tıklayın. Günlük Görüntüleyici sayfası API'nin istek günlüklerini görüntüler.

Komut dosyasını durdurmak için Cloud Shell'de Ctrl-C tuşlarına basın.

API'ye kota ekleme

Cloud Endpoints, uygulamaların API'nize çağrı yapma hızını kontrol edebilmeniz için kotalar ayarlamanızı sağlar. Kotalar, API'nizi tek bir istemcinin aşırı kullanımından korumak için kullanılabilir.

  1. Kotası olan bir Endpoints yapılandırması dağıtın:

    ./deploy_api.sh ../openapi_with_ratelimit.yaml
    
  2. Uygulamanızı yeni Endpoints yapılandırmasını kullanmak üzere yeniden dağıtın (bu işlem birkaç dakika sürebilir):

    ./deploy_app.sh
    
  3. Console'da Gezinme menüsü > API ve Hizmetler > Kimlik bilgileri'ne gidin.

  4. Kimlik bilgileri oluştur'u tıklayın ve API anahtarı'nı seçin. Ekranda yeni bir API anahtarı görüntülenir.

  5. Anahtarı panonuza kopyalamak için çift dikdörtgen simgesini tıklayın.

  6. Cloud Shell'de aşağıdakileri yazın. API-ANAHTARINIZ kısmını az önce oluşturduğunuz API ile değiştirin:

    export API_KEY=API-ANAHTARINIZ
    
  7. Az önce oluşturduğunuz API anahtarı değişkeniyle API'nize bir istek gönderin:

    ./query_api_with_key.sh $API_KEY
    
  8. Konsolda şuna benzer bir çıkış görürsünüz:

    curl -H 'x-api-key: AIzeSyDbdQdaSdhPMdiAuddd_FALbY7JevoMzAB' "https://example-project.appspot.com/airportName?iataCode=SFO"
    San Francisco International Airport
    
  9. API'nin artık saniyede 5 istek sınırı vardır. API'ye trafik göndermek ve kota sınırını tetiklemek için aşağıdaki komutu çalıştırın:

    ./generate_traffic_with_key.sh $API_KEY
    
  10. Komut dosyasını 5-10 saniye boyunca çalıştırdıktan sonra durdurmak için Cloud Shell'de Ctrl-c tuşlarına basın.

  11. API'ye kimliği doğrulanmış başka bir istek gönderin:

    ./query_api_with_key.sh $API_KEY
    

    Konsolda şuna benzer bir çıkış görürsünüz:

{
     "code": 8,
     "message": "Insufficient tokens for quota 'airport_requests' and limit 'limit-on-airport-requests' of service 'example-project.appspot.com' for consumer 'api_key:AIzeSyDbdQdaSdhPMdiAuddd_FALbY7JevoMzAB'.",
     "details": [
      {
       "@type": "type.googleapis.com/google.rpc.DebugInfo",
       "stackEntries": [],
       "detail": "internal"
      }
     ]
    }

Farklı bir yanıt alırsanız generate_traffic_with_key.sh komut dosyasını yeniden çalıştırmayı deneyin ve baştan başlayın.

Tebrikler!

Tebrikler! API'nize başarıyla hız sınırlaması uyguladınız. Ayrıca farklı API yöntemlerinde çeşitli sınırlar ayarlayabilir, birden çok türde kota oluşturabilir ve hangi tüketicilerin hangi API'leri kullandığını takip edebilirsiniz.

Sonraki laboratuvarınıza katılın

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ılmak istediğiniz bir sonraki laboratuvarı bulmak için laboratuvar kataloğuna “Qwik Starts” yazın.

Sonraki Adımlar/Daha Fazla Bilgi

Kotalar hakkında daha fazla bilgi için aşağıdakilere bakın:

Google Cloud Eğitimi ve Sertifikasyon

...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: 4 Eylül 2018

Laboratuvarın Son Test Edilme Tarihi: 28 Haziran 2018

Telif Hakkı 2020 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.