Google Cloud projesinden API çağırma

1. Başlamadan önce

Bu codelab'de, Google Cloud projesinin nasıl oluşturulacağı ve ardından bu projeden Google Cloud API'lerinin nasıl çağrılacağı gösterilir.

Ön koşullar

  • Google Cloud Console'da gezinme yetkisi.

Neler öğreneceksiniz?

  • Google Cloud projesi oluşturma
  • Faturalandırma hesabı nasıl oluşturulur?
  • Cloud Shell'i ayarlama.
  • API nasıl etkinleştirilir?
  • API anahtarıyla API'leri yetkilendirme.
  • Hizmet hesabıyla API'leri yetkilendirme.

Gerekenler

2. Hazırlanın

Bu bölümde Google Cloud projesi oluşturma, faturalandırma hesabı oluşturma ve Cloud Shell'i ayarlama konuları gösterilmektedir.

Google Cloud projesi ve faturalandırma hesabı oluşturun

  1. Cloud Console'da oturum açın ve proje seçin veya oluşturun.

Google Cloud'un

Yeni proje bölmesi

Proje adı, Kuruluş ve Konum alanlarının gösterildiği yeni Proje bölmesi.

Proje adı alanının altında gösterilen proje kimliğini unutmayın. Kimlik, tüm Google Cloud projelerinde kullanılan benzersiz bir addır (yukarıdaki ad zaten alınmıştır) ve bu codelab'in sonraki adımlarında PROJECT_ID olarak adlandırılacaktır.

  1. Ardından, Google Cloud kaynaklarını kullanmak için Cloud Console'da faturalandırmayı etkinleştirin.

Bu codelab'in maliyeti yüksek olmasa da, kaynakları kapatıp bu codelab'in ötesinde maliyetlerden kaçınmak için Temizleme bölümündeki talimatları uygulayın. Yeni Google Cloud kullanıcılarının 300 ABD doları değerindeki ücretsiz deneme sürümünden yararlanabileceğini unutmayın.

Cloud Shell'i kurma

Bu codelab'de, Google Cloud'da çalışan bir komut satırı ortamı olan Cloud Shell'i kullanacaksınız. Cloud Shell, ihtiyacınız olan tüm geliştirme araçlarına sahip olan Debian tabanlı bir sanal makinedir. Ağ performansını ve kimlik doğrulamasını büyük ölçüde geliştiren 5 GB boyutunda kalıcı bir ana dizin sunar. Yani bu codelab için ihtiyacınız olan tek şey bir tarayıcıdır.

Cloud Shell'i Cloud Console'dan etkinleştirmek için:

  1. a8460e837e9f5fda.png Cloud Shell'i etkinleştir'i tıklayın.

Ortamın hazırlanması ve bağlanması birkaç dakika sürebilir.

Cloud Shell'i Etkinleştir seçeneği.

Komut satırı istemini gösteren Cloud Shell.

Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin PROJECT_ID olarak ayarlanmış olduğunu göreceksiniz.

  1. Kimlik bilgisi içeren hesapların listesini oluştur:
gcloud auth list

Aşağıdaki çıkışı göreceksiniz:

Credentialed accounts:
 - <MY_ACCOUNT>@<MY_DOMAIN>.com (active)
  1. Projelerinizin listesini görmek için bu komutu girin.
gcloud config list project

Aşağıdaki çıkışı göreceksiniz:

[core]
project = <PROJECT_ID>

Herhangi bir nedenle proje ayarlanmamışsa projeyi ayarlamak için bu komutu çalıştırın.

gcloud config set project <PROJECT_ID>

PROJECT_ID, kurulum adımlarında kullandığınız kimliktir. Kartı Cloud Console kontrol panelinden de arayabilirsiniz:

Proje kimliğini gösteren proje bilgi penceresi.

Cloud Shell bazı ortam değişkenlerini de varsayılan olarak ayarlar. Bu, gelecekte komut çalıştırdığınızda yararlı olabilir.

  1. Proje kimliğinizi görmek için aşağıdaki komutu girin.
echo $GOOGLE_CLOUD_PROJECT

Aşağıdaki çıkışı göreceksiniz:

<PROJECT_ID>
  1. Son olarak, varsayılan alt bölgeyi ve proje yapılandırmasını ayarlayın.
gcloud config set compute/zone us-central1-f

Çeşitli farklı alt bölgeler seçebilirsiniz. Daha fazla bilgi için Bölgeler ve alt bölgeler bölümüne bakın.

3. Projeden API çağırma

Bu codelab'de, metindeki varlıkları (kişiler, yerler ve etkinlikler gibi) bulmak için örnek bir API'nin (Natural Language API) nasıl kullanılacağı ve bu metnin yaklaşımını (tercih edilirlik düzeyi) nasıl tahmin edeceğiniz gösterilmektedir. Öğreneceğiniz konular:

  • Google Cloud API'lerini etkinleştirin.
  • API anahtarları ve hizmet hesapları ile API için yetkilendirme alın.
  • curl ve istemci kitaplıklarını kullanarak API'yi çağırın.

Bir API'yi etkinleştirin

  1. API'ler ve Hizmetler'i seçin.

Cloud Console&#39;un ana menüsü seçeneğini belirleyin.

  1. Ekranın üst kısmından + API'LERİ VE HİZMETLERİ ETKİNLEŞTİR'i seçin.

API&#39;LERİ VE HİZMETLERİ ETKİNLEŞTİR seçeneği.

  1. Bu noktada, API'leri filtreleyip göz atabilir veya Arama kutusunu kullanarak doğrudan bir API'ye gidebilirsiniz. Natural Language ifadesini arayın ve Cloud Natural Language API'yi seçin.

ETKİNLEŞTİR ve BU API&#39;Yİ DENE düğmelerini gösteren Cloud Natural Language API bölmesi.

  1. BU API'Yİ DENE'yi tıklayın.

BU API'Yİ DENE düğmesi görünmüyorsa listelenen Yöntemlerden birini tıklayarak bu yöntemi deneyebilirsiniz.

API Anahtarı Oluşturma

Natural Language API'ye istek göndermek için curl kullandığınızdan, istek URL'nizi iletmek için bir API anahtarı oluşturmanız gerekir.

  1. Cloud Console'da gezinme menüsü > API'ler ve Hizmetler > Credentials (Kimlik Bilgisi).

API&#39;ler ve Hizmetler ve Kimlik Bilgisi seçenekleri.

  1. KİMLİK BİLGİLERİ OLUŞTUR'u tıklayın ve ardından API anahtarı'nı seçin:

CREATE CREDENTIALS ve API anahtarı seçeneklerinin gösterildiği kimlik bilgileri bölmesi.

  1. Oluşturulan API anahtarını kopyalayıp Kapat'ı tıklayın.

API'yi çağırmak için API anahtarını kullanma

  1. Cloud Shell komut satırında API anahtarınızı dışa aktarın.
export API_KEY=<YOUR_API_KEY>

<YOUR_API_KEY> değerini, daha önce oluşturduğunuz anahtarla değiştirin.

  1. Cloud Shell Düzenleyici'de veya Vim ya da Emacs gibi bir Linux düzenleyicide API için istek oluşturun. Parametrelerin ayrıntılarını Method: documents.analyzeEntities bölümünde bulabilirsiniz. Çıkışı request.json adlı bir dosyaya kaydedin:
{
  "document":{
    "type":"PLAIN_TEXT",
    "content":"Google, headquartered in Mountain View (1600 Amphitheatre Pkwy, Mountain View, CA 940430), unveiled the new Android phone for $799 at the Consumer Electronic Show. Sundar Pichai said in his keynote that users love their new Android phones."
  },
  "encodingType":"UTF8"
}
  1. İstek bilgileriyle birlikte API'yi çağırın.
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \
  -s -X POST -H "Content-Type: application/json" --data-binary @request.json
  1. Komutu yeniden çalıştırıp çıkışı bir dosyaya yönlendirip sonucu inceleyin. JSON dosyası çıkışının ayrıntıları da Method: documents.analyzeEntities içinde.
  2. request.json dosyasında analiz edilecek metni değiştirmek için content değerini istediğiniz metinle değiştirin.

4. Hizmet hesabıyla yetkilendirme

Hizmet hesapları, hem kimlik doğrulama hem de yetkilendirme sağladığı için genellikle API anahtarlarına tercih edilir. Hizmet hesaplarını, uygulamanız için e-posta adresleri olarak düşünebilirsiniz.

  1. API'ler ve Hizmetler menüsüne gidin.
  2. Create Credentials (Kimlik Bilgisi Oluştur) seçeneğini belirleyin ancak bu kez Service Account (Hizmet Hesabı) seçeneğini belirleyin.

Hizmet hesabı ayrıntılar bölmesi

  1. Amacını açıklayan bir Hizmet hesabı adı girin (ör. "Natural Language Service Account"). Sistem bir kimlik önerir. Açıklama da ekleyebilirsiniz. Hizmet hesapları hakkında daha fazla bilgi edindikçe hizmet hesabına projeler için erişim izni verir ve kullanıcılara hizmet hesabına erişim izni verirsiniz. Ancak şimdilik hizmet hesabını oluşturmak için Bitti'yi tıklamanız yeterlidir.
  2. Kullanılacak hizmet hesabında bir anahtar çifti oluşturmak için d489bd059474ae59.png simgesini tıklayarak hizmet hesabını düzenleyin.

Hesapların listesini gösteren hizmet hesapları bölmesi.

Hizmet hesabınızın ayrıntıları gösterilir.

Natural Language Service hesabıyla ilgili ayrıntıları gösteren hizmet hesabı ayrıntılar penceresi.

  1. Hizmet hesabının e-posta adresini kopyalayın ve Cloud Shell'e dönün.
  2. Cloud Shell'de hizmet hesabınız için bir anahtar çifti oluşturun ve bunu işaret eden bir ortam değişkeni ayarlayın:
gcloud iam service-accounts keys create ~/key.json \
  --iam-account <your service account email>
export GOOGLE_APPLICATION_CREDENTIALS="/home/$USER/key.json"

Google Cloud, kimlik bilgilerini bulmak için bu ortam değişkenini kullandığından bunların API çağrısına dahil edilmesi gerekmez.

  1. Artık API'yi şu komutu kullanarak çağırabilirsiniz:
gcloud ml language analyze-entities --content="Michelangelo Caravaggio, Italian painter, is known for 'The Calling of Saint Matthew'." 

Sonuç öncekiyle aynı olmalıdır.

Birçok API'de bu ayrıntıların ayıklanabileceği kapsamlı istemci kitaplıkları bulunur. İstemci kitaplıkları hakkında daha fazla bilgi edinmek için Cloud İstemci Kitaplıkları'nı inceleyin. Ayrıca, hangi istemci kitaplıklarının kullanılabileceğini öğrenmek için kullandığınız API'lerle ilgili dokümanları da okuyabilirsiniz.

5. Temizleme

Projeler için kısıtlanmamış bir API anahtarının olması kötü bir uygulamadır. Birisi bu dosyaya erişim sağlarsa bu kişi, başka kimlik doğrulama gerekmeksizin cihazı kullanabilir.

Bu API anahtarını silmek için:

  1. f6b6844bf5688982.png Gezinme menüsü > API'ler ve Hizmetler > Kimlik bilgileri.
  2. API Keys (API Anahtarları) altında, silinecek anahtarı seçin ve ardından 247adf2e1d1eae4b.pngDelete'i (Sil) tıklayın.
  3. Benzer şekilde, Hizmet Hesabı Özel Anahtarınızın korumasızlığından endişelenmek yerine, Hizmet Hesapları bölümünde silinecek hizmet hesabını seçip 247adf2e1d1eae4b.pngSil'i tıklayın.

6. Tebrikler

Tebrikler! Google Cloud projesi oluşturmayı ve proje içinden API çağırmayı öğrendiniz.