Google Cloud projesinden API çağırma

1. Başlamadan önce

Bu codelab'de, Google Cloud projesi oluşturma ve ardından bu projeden Google Cloud API'lerini çağırma adımları gösterilmektedir.

Ön koşullar

  • Google Cloud Console'da gezinme

Neler öğreneceksiniz?

  • Google Cloud projesi oluşturma
  • Faturalandırma hesabı oluşturma
  • Cloud Shell'i ayarlama
  • API'leri etkinleştirme
  • API'yi API anahtarıyla yetkilendirme
  • Bir API'yi hizmet hesabıyla yetkilendirme

İhtiyacınız olanlar

2. Hazırlanın

Bu bölümde, Google Cloud projesi oluşturma, faturalandırma hesabı ayarlama ve Cloud Shell'i ayarlama hakkında bilgi verilmektedir.

Google Cloud projesi oluşturma ve faturalandırma hesabı ayarlama

  1. Cloud Console'da oturum açın ve bir 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 benzersiz bir addır (yukarıdaki ad zaten alınmıştır) ve bu codelab'de daha sonra PROJECT_ID olarak adlandırılır.

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

Bu codelab'in maliyeti çok olmasa da kaynakları kapatmak ve bu codelab'in ötesinde maliyetlerden kaçınmak için Temizleme bölümündeki talimatları uygulayın. Google Cloud'un yeni kullanıcılarının 300 ABD doları değerinde ücretsiz deneme sürümünden yararlanabileceğini unutmayın.

Cloud Shell'i ayarlama

Bu codelab'de, Google Cloud'da çalışan bir komut satırı ortamı olan Cloud Shell'i kullanacaksınız. Cloud Shell, ihtiyaç duyduğunuz tüm geliştirme araçlarının yüklü olduğu Debian tabanlı bir sanal makinedir. 5 GB boyutunda kalıcı bir ana dizin sunar. Bu sayede ağ performansı ve kimlik doğrulama önemli ölçüde güçlenir. Bu nedenle, bu codelab'i tamamlamak için yalnızca bir tarayıcıya ihtiyacınız vardı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 sağlanması ve bağlantının kurulması birkaç dakika sürebilir.

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

Cloud Shell'de komut satırı istemi gösteriliyor.

Cloud Shell'e bağlandıktan sonra kimliğinizin doğrulandığını ve projenin PROJECT_ID'nize ayarlandığını görürsünüz.

  1. Kimlik bilgisi olan hesapların listesini oluşturun:
gcloud auth list

Aşağıdaki çıkışı görmeniz gerekir:

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örmeniz gerekir:

[core]
project = <PROJECT_ID>

Proje herhangi bir nedenle 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. Ayrıca Cloud Console kontrol panelinde de arayabilirsiniz:

Proje kimliğini gösteren proje bilgileri bölmesi.

Cloud Shell, gelecekteki komutları çalıştırırken yararlı olabilecek bazı ortam değişkenlerini de varsayılan olarak ayarlar.

  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 bölgeler arasından seçim yapabilirsiniz. Daha fazla bilgi için Bölgeler ve alt bölgeler başlıklı makaleyi inceleyin.

3. Bir projeden API çağırma

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

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

Bir API'yi etkinleştirin

  1. Cloud Console'daki ana menüden API'ler ve Hizmetler'i seçin.

Cloud Console&#39;un API&#39;ler ve Hizmetler seçeneğini gösteren ana menüsü.

  1. Ekranın üst kısmından + ENABLE APIS AND SERVICES'i (API'leri ve hizmetleri etkinleştir) seçin.

API&#39;LERİ VE HİZMETLERİ ETKİNLEŞTİR seçeneğini tıklayın.

  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.

Cloud Natural Language API bölmesinde ETKİNLEŞTİR ve BU API&#39;Yİ DENEYİN düğmeleri gösteriliyor.

  1. TRY THIS API'yi (Bu API'yi deneyin) tıklayın.

BU API'Yİ DENEYİN düğmesi gösterilmiyorsa bu yöntemi denemek için listelenen Yöntemlerden birini tıklayın.

API Anahtarı Oluşturma

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

  1. Cloud Console'da Gezinme menüsü > API'ler ve Hizmetler > Kimlik Bilgileri'ni seçin.

API&#39;ler ve Hizmetler ile Kimlik Bilgileri seçeneklerini gösteren gezinme menüsü.

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

KİMLİK BİLGİLERİ OLUŞTUR ve API anahtarı seçeneklerini gösteren 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ı kullanın.

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

<YOUR_API_KEY> kısmını daha önce oluşturduğunuz anahtarla değiştirin.

  1. Cloud Shell Düzenleyici'de veya Vim ya da Emacs gibi bir Linux düzenleyiciyle API için istek oluşturun. Parametrelerin ayrıntılarını Yöntem: documents.analyzeEntities sayfasında 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 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ın ve çıkışı bir dosyaya yönlendirip sonucu inceleyin. JSON dosyasının çıkışıyla ilgili ayrıntılar Yöntem: documents.analyzeEntities bölümünde de yer alır.
  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ı ile yetkilendirme

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

  1. API'ler ve Hizmetler menüsünün Kimlik Bilgileri bölümüne dönün.
  2. Kimlik bilgisi oluştur'u seçin ancak bu kez Hizmet hesabı'nı seçin.

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. Dilerseniz 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 tanırsınız. Ancak şimdilik hizmet hesabını oluşturmak için Bitti'yi tıklayın.
  2. Kullanılacak hizmet hesabı için anahtar çifti oluşturmak üzere d489bd059474ae59.png simgesini tıklayarak hizmet hesabını düzenleyin.

Hesap listesini gösteren hizmet hesapları bölmesi.

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

Doğal Dil Hizmeti hizmet hesabının ayrıntılarını gösteren hizmet hesabı ayrıntıları bölmesi.

  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 bu anahtara 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 kimlik bilgilerinin API çağrısına dahil edilmesi gerekmez.

  1. Artık API'yi şu komutla ç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, bu ayrıntıları ayıklamak için kapsamlı istemci kitaplıklarına sahiptir. İstemci kitaplıkları hakkında daha fazla bilgi edinmek için Cloud İstemci Kitaplıkları başlıklı makaleyi inceleyin. Kullandığınız API'lerle ilgili dokümanları okuyarak bu API'ler için hangi istemci kitaplıklarının kullanılabildiğini de öğrenebilirsiniz.

5. Temizleme

Projeler için kısıtlanmamış bir API anahtarı kullanmak kötü bir uygulamadır. Bu anahtara erişen kişiler, başka bir kimlik doğrulama işlemine gerek kalmadan anahtarı kullanabilir.

Bu API anahtarını silmek için:

  1. f6b6844bf5688982.png Gezinme menüsü > API'ler ve Hizmetler > Kimlik Bilgileri'ni tıklayın.
  2. API Anahtarları bölümünde, silinecek anahtarı seçin ve 247adf2e1d1eae4b.pngSil'i tıklayın.
  3. Benzer şekilde, hizmet hesabı özel anahtarınızın korunmaması konusunda 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.