API'leri Azure API Management'tan API merkezinize aktarma

Bu makalede, Azure CLI kullanarak bir Azure API Management örneğinden API merkezinize API'leri içeri aktarma (ekleme) gösterilmektedir. API Management'tan API envanterinize API eklemek, bunların geliştiriciler, API program yöneticileri ve kuruluşunuzdaki diğer paydaşlar tarafından bulunabilir ve erişilebilir olmasını sağlar.

Bu makalede, API Management'tan API merkezinize API eklemek için Azure CLI'yi kullanmaya yönelik iki seçenek gösterilmektedir:

  • 1. Seçenek: az apim api export komutunu kullanarak API Management örneğinden bir API tanımını dışarı aktarın ve ardından tanımı API merkezinize aktarın.

    API Management'tan dışarı aktarılan bir API tanımını içeri aktarmanın olası yolları şunlardır:

  • 2. Seçenek: az apic import-from-apim komutunu kullanarak API'leri doğrudan API Management'tan API merkezinize aktarın.

API tanımlarını veya API'leri API Management'tan içeri aktardıktan sonra, proje katılımcılarının API'yi bulmasına, anlamasına ve kullanmasına yardımcı olmak için API merkezinize meta veriler ve belgeler ekleyebilirsiniz.

İpucu

API Management'tan API merkezinize API'lerin otomatik olarak eşitlenmesini de ayarlayabilirsiniz. Daha fazla bilgi için API'leri API merkezinize eşitlemek üzere bir API Management örneğini bağlama konusuna bakın.

Önkoşullar

  • Azure aboneliğinizde bir API merkezi. Api'niz yoksa bkz . Hızlı Başlangıç: API merkezinizi oluşturma.

  • Aynı veya farklı bir abonelikte bir veya daha fazla Azure API Management örneği. API'leri doğrudan API Management'tan içeri aktardığınızda, API Management örneği ve API merkezi aynı dizinde olmalıdır. Bir tane yoksa, bkz. Azure API Yönetimi örneği oluşturma.

  • API Management örneğinizde yönetilen ve API merkezinize eklemek istediğiniz bir veya daha fazla API.

  • Azure CLI için:

    Not

    az apic komutları, apic-extension Azure CLI uzantısı gerektirir. uzantı, ilk az apic komutunuzu çalıştırdığınızda dinamik olarak yüklenebilir veya uzantıyı el ile yükleyebilirsiniz. Daha fazla bilgi için bkz . Azure CLI Uzantılarını Yönetme: Yükleme, Güncelleştirme ve Kaldırma.

    içindeki apic-extensionen son değişiklikler ve güncelleştirmeler için sürüm notlarını inceleyin. Bazı özellikler için bir önizleme veya uzantının belirli bir sürümü gerekebilir.

    Not

    Bu makaledeki Azure CLI komut örnekleri PowerShell veya bash kabuğunda çalıştırılabilir. Farklı değişken söz dizimi nedeniyle gerektiğinde, iki kabuk için ayrı komut örnekleri sağlanır.

1. Seçenek: API tanımını API Management'tan dışarı aktarma ve API merkezinize aktarma

İlk olarak, az apim api export komutunu kullanarak API Management örneğinizdeki bir API'yi bir API tanımına aktarın . Senaryonuza bağlı olarak, API tanımını yerel bir dosyaya veya URL'ye aktarabilirsiniz.

API'yi yerel API tanım dosyasına aktarma

Aşağıdaki örnek komut, API'nin myAPIManagement örneğinde my-api tanımlayıcısı ile API'yi dışarı aktarır. API, OpenApiJson biçiminde, belirttiğiniz yolda yerel bir OpenAPI tanım dosyasına aktarılır.

#! /bin/bash
az apim api export --api-id my-api --resource-group myResourceGroup \
    --service-name myAPIManagement --export-format OpenApiJsonFile \
    --file-path "/path/to/folder"
# Formatted for PowerShell
az apim api export --api-id my-api --resource-group myResourceGroup `
    --service-name myAPIManagement --export-format OpenApiJsonFile `
    --file-path '/path/to/folder'

API'yi URL'ye aktarma

Aşağıdaki örnekte az apim api export, OpenApiJson biçiminde my-api tanımlayıcısı olan API'yi Azure depolamadaki bir URL'ye aktarır. URL yaklaşık beş dakika boyunca kullanılabilir. Burada URL'nin değeri $link değişkeninde depolanır.

#! /bin/bash
link=$(az apim api export --api-id my-api --resource-group myResourceGroup \
    --service-name myAPIManagement --export-format OpenApiJsonUrl --query properties.value.link \
    --output tsv)
# Formatted for PowerShell
$link=$(az apim api export --api-id my-api --resource-group myResourceGroup `
    --service-name myAPIManagement --export-format OpenApiJsonUrl --query properties.value.link `
    --output tsv)

Dışarı aktarılan API tanımından API'nizi API merkezinize kaydedin.

az apic api register komutunu kullanarak dışarı aktarılan tanımdan API merkezinize yeni bir API kaydedebilirsiniz .

Aşağıdaki örnek, definitionFile.json adlı yerel bir OpenAPI tanım dosyasından myAPICenter API merkezine bir API kaydeder.

az apic api register --resource-group myResourceGroup --service-name myAPICenter --api-location "/path/to/definitionFile.json"

API tanımını API merkezinizdeki mevcut bir API'ye aktarma

Aşağıdaki örnekte az apic api definition import-specification komutu kullanılarak myAPICenter API merkezindeki mevcut bir API'ye bir API tanımı içeri aktarılır. Burada API tanımı, $link değişkeninde depolanan bir URL'den içeri aktarılır.

Bu örnekte, API merkezinizde my-api adlı bir API'niz ve ilişkili bir API sürümü v1-0-0 ve tanım varlığı openapi'niz olduğu varsayılır. Aksi takdirde, API merkezinize API ekleme sayfasına bakın.

#! /bin/bash
az apic api definition import-specification \
    --resource-group myResourceGroup --service-name myAPICenter \
    --api-id my-api --version-id v1-0-0 \
    --definition-id openapi --format "link" --value '$link' \
    --specification '{"name":"openapi","version":"3.0.2"}'
# Formatted for PowerShell
az apic api definition import-specification `
    --resource-group myResourceGroup --service-name myAPICenter `
    --api-id my-api --version-id v1-0-0 `
    --definition-id openapi --format "link" --value '$link' `
    --specification '{"name":"openapi","version":"3.0.2"}'

2. Seçenek: API'leri doğrudan API Management örneğinizden içeri aktarma

Aşağıda, az apic import-from-apim komutunu kullanarak API Management örneğinizdeki API'leri API merkezinize aktarma adımları verilmiştir. Bu komut, API Management'tan API merkezinize birden çok API'yi içeri aktarmak istediğinizde kullanışlıdır. Tek bir API'yi içeri aktarmak için de kullanabilirsiniz.

kullanarak az apic import-from-apimAPI Management örneğinden API'leri API merkezinize eklediğinizde, aşağıdakiler otomatik olarak gerçekleşir:

  • Her API'nin sürümleri, tanımları ve dağıtım bilgileri API merkezinize kopyalanır.
  • API, API merkezinizde sistem tarafından oluşturulan bir API adı alır. Görünen adını (başlığını) API Yönetimi’nde korur.
  • API'nin Yaşam Döngüsü aşaması Tasarım olarak ayarlanır.
  • Azure API Management ortam olarak eklendi.

API merkezinize yönetilen kimlik ekleme

Bu senaryoda, API merkeziniz Azure kaynaklarına erişmek için yönetilen kimlik kullanır. Gereksinimlerinize bağlı olarak, sistem tarafından atanan veya kullanıcı tarafından atanan bir veya daha fazla yönetilen kimliği etkinleştirin.

Aşağıdaki örneklerde, Azure portalını veya Azure CLI'yı kullanarak sistem tarafından atanan yönetilen kimliğin nasıl etkinleştirileceği gösterilmektedir. Yüksek düzeyde yapılandırma adımları, kullanıcı tarafından atanan yönetilen kimlik için benzerdir.

  1. Portalda API merkezinize gidin.
  2. Kenar çubuğu menüsünde, Güvenlik'in altında Yönetilen kimlikler'i seçin.
  3. Sistem tarafından atanan'ı seçin ve durumu Açık olarak ayarlayın.
  4. Kaydet'i seçin.

Yönetilen kimliğe API Yönetimi Hizmeti Okuyucu rolünü atayın

API'lerin içeri aktarılmasına izin vermek için API Center'ınızın yönetilen kimliğini API Management örneğinizdeki API Management Hizmet Okuyucusu rolünü atayın. Portalı veya Azure CLI'yi kullanabilirsiniz.

  1. Portala API Yönetim örneğinize gidin.
  2. Sol menüde Erişim denetimi (IAM) öğesini seçin.
  3. + Rol ataması ekle'yi seçin.
  4. Rol ataması ekle sayfasında, değerleri aşağıdaki gibi ayarlayın:
    1. Rol sekmesinde API Management Hizmet Okuyucusu'na tıklayın.
    2. Üyeler sekmesinde, Erişim atayacak seçeneğinin altında - Yönetilen kimlik seçin >.
    3. Yönetilen kimlikleri seçin sayfasında, önceki bölümde eklediğiniz API merkezinizin sistem tarafından atanan yönetilen kimliğini seçin. Seç'e tıklayın.
    4. Gözden geçir + ata'yı seçin.

API Management'tan API'leri içeri aktarma

API Management örneğinizdeki bir veya daha fazla API'yi API merkezinize aktarmak için az apic import-from-apim komutunu kullanın.

Not

  • Bu komut, API Management örneğinde okuma izinlerine sahip API merkezinizde yapılandırılmış bir yönetilen kimliğe bağlıdır. Yönetilen kimlik eklemediyseniz veya yapılandırmadıysanız, bu makalenin önceki bölümlerinde yer alan API merkezinize yönetilen kimlik ekleme bölümüne bakın.

  • API merkezinizde birden çok yönetilen kimlik varsa, komut önce sistem tarafından atanan kimliği arar. Hiçbir kimlik bulunmazsa, listedeki ilk kullanıcı tarafından atanan kimliği seçer.

API Management örneğinden tüm API'leri içeri aktarma

Aşağıdaki komutta API merkezinizin, API merkezinizin kaynak grubunun, API Management örneğinizin ve örneğinizin kaynak grubunun adlarını yazın. API Management örneğindeki tüm API'leri belirtmek için kullanın * .

#! /bin/bash
az apic import-from-apim --service-name <api-center-name> --resource-group <resource-group-name> \
    --apim-name <api-management-name> --apim-resource-group <api-management-resource-group-name> \
    --apim-apis '*'  
# Formatted for PowerShell
az apic import-from-apim --service-name <api-center-name> --resource-group <resource-group-name> `
    --apim-name <api-management-name> --apim-resource-group <api-management-resource-group-name> `
    --apim-apis '*'  

Not

API Management örneğinizde çok sayıda API varsa API merkezinize içeri aktarma işlemi biraz zaman alabilir.

API Management örneğinden belirli bir API'yi içeri aktarma

API Management örneğinden API'nin adını kullanarak içeri aktarılacak bir API belirtin.

Aşağıdaki komutta API merkezinizin, API merkezinizin kaynak grubunun, API Management örneğinizin ve örneğinizin kaynak grubunun adlarını yazın. petstore-api gibi bir API adını --apim-apis parametresini kullanarak geçirin.

#! /bin/bash
az apic import-from-apim --service-name <api-center-name> --resource-group <resource-group-name> \
    --apim-name <api-management-name> --apim-resource-group <api-management-resource-group-name> \
    --apim-apis 'petstore-api'        
# Formatted for PowerShell
az apic import-from-apim --service-name <api-center-name> --resource-group <resource-group-name> `
    --apim-name <api-management-name> --apim-resource-group <api-management-resource-group-name> `
    --apim-apis 'petstore-api'    

Not

Görünür adı değil, API Yönetimi örneği içinde API kaynak adını kullanarak bir API adı belirtin. Örnek: petstore-api yerine Petstore API.

API Management'tan API'leri içeri aktardıktan sonra, içeri aktarılan API'leri API merkezinizde görüntüleyebilir ve yönetebilirsiniz.