Azure Özel Kaynak Sağlayıcıları kaynak eklemeye genel bakış

Azure Özel Kaynak Sağlayıcıları kaynak ekleme, Azure kaynak türleri için genişletilebilirlik modelidir. Mevcut Azure kaynaklarına büyük ölçekte işlem veya yönetim uygulamanıza olanak tanır. Daha fazla bilgi için bkz. Azure Özel Kaynak Sağlayıcıları Azure'ı nasıl genişletebilir? Bu makalede şunlar açıklanmaktadır:

  • Kaynak eklemenin yapabilecekleri.
  • Kaynak ekleme temelleri ve nasıl kullanılacağı.
  • Başlamak için kılavuzların ve kod örneklerinin nerede bulunacağı.

Önemli

Özel Kaynak Sağlayıcıları şu anda genel önizleme aşamasındadır. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için bu sürümü önermeyiz. Bazı özellikler desteklenmiyor veya kısıtlanmış özelliklere sahip olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Kaynak ekleme ne yapabilir?

Azure Özel Kaynak Sağlayıcıları özel kaynaklarına benzer şekilde, kaynak ekleme, istekleri bir uç noktaya "ekleme" ara sunucusu yapacak bir sözleşme tanımlar. Özel kaynakların aksine, kaynak ekleme yeni bir kaynak türü oluşturmaz. Bunun yerine, mevcut kaynak türlerinin genişletılmasına izin verir. Kaynak ekleme de Azure İlkesi ile çalıştığından, kaynakların yönetimi ve yapılandırması büyük ölçekte gerçekleştirilebilir. Kaynak ekleme iş akışlarına bazı örnekler:

  • Sanal makine uzantılarına yükleme ve yönetme.
  • Azure depolama hesaplarında varsayılanları karşıya yükleyin ve yapılandırın.
  • Taban çizgisi tanılama ayarlarını büyük ölçekte etkinleştirin.

Kaynak ekleme temelleri

Microsoft.CustomProviders/resourceProviders ve Microsoft.CustomProviders/associations kaynak türlerini kullanarak Azure Özel Kaynak Sağlayıcıları aracılığıyla kaynak eklemeyi yapılandırabilirsiniz. Özel bir kaynak sağlayıcısı için kaynak eklemeyi etkinleştirmek için, yapılandırma işlemi sırasında "Extension" içeren bir routingType ile "associations" adlı bir resourceType oluşturun. Microsoft.CustomProviders/associations ve Microsoft.CustomProviders/resourceProviders'ın aynı kaynak grubuna ait olması gerekmez.

İşte örnek bir Azure özel kaynak sağlayıcısı:

{
  "properties": {
    "resourceTypes": [
      {
        "name": "associations",
        "routingType": "Proxy,Cache,Extension",
        "endpoint": "https://microsoft.com/"
      }
    ]
  },
  "location": "eastus"
}
Özellik Gerekli mi? Açıklama
name Yes Uç nokta tanımının adı. Kaynak ekleme için adın "ilişkilendirmeler" olması gerekir.
routingType Yes Uç nokta ile sözleşme türünü belirler. Kaynak ekleme için geçerli routingType'lar "Ara Sunucu,Önbellek,Uzantı" ve "Web Kancası,Önbellek,Uzantı" şeklindedir.
endpoint Yes İstekleri yönlendirecek uç nokta. Bu, yanıtı ve isteğin tüm yan etkilerini işler.

İlişkilendirmeler kaynak türüyle özel kaynak sağlayıcısını oluşturduktan sonra, Microsoft.CustomProviders/associations kullanarak hedefleyebilirsiniz. Microsoft.CustomProviders/associations, diğer tüm Azure kaynaklarını genişletebilen bir uzantı kaynağıdır. Bir Microsoft.CustomProviders/associations örneği oluşturulduğunda, geçerli bir Microsoft.CustomProviders/resourceProviders veya Microsoft.Solutions/applications kaynak kimliği olması gereken targetResourceId özelliğini alır. Böyle durumlarda istek, oluşturduğunuz Microsoft.CustomProviders/resourceProviders örneğindeki ilişkilendirmeler kaynak türüne iletilir.

Not

TargetResourceId olarak bir Microsoft.Solutions/applications kaynak kimliği sağlanmışsa, yönetilen kaynak grubunda "public" adlı bir Microsoft.CustomProviders/resourceProviders dağıtılmış olmalıdır.

Örnek Azure Özel Kaynak Sağlayıcıları ilişkilendirmesi:

{
  "properties": {
    "targetResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
    ...
  }
}
Özellik Gerekli mi? Açıklama
targetResourceId Yes Microsoft.CustomProviders/resourceProviders veya Microsoft.Solutions/applications kaynak kimliği.

Kaynak eklemeyi kullanma

Kaynak ekleme, Microsoft.CustomProviders/associations uzantısı kaynağıyla diğer kaynakları genişleterek çalışır. Aşağıdaki örnekte, bir sanal makine için istek yapılır, ancak herhangi bir kaynak genişletilebilir.

İlk olarak, ilişkilendirme kaynak türüne sahip özel bir kaynak sağlayıcısı kaynağı oluşturmanız gerekir. Bu, özel kaynak sağlayıcısını hedefleyen ilgili bir Microsoft.CustomProviders/associations kaynağı oluşturulduğunda kullanılacak geri çağırma URL'sini bildirir.

Örnek Microsoft.CustomProviders/resourceProviders oluşturma isteği:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json

{
  "properties": {
    "resourceTypes": [
      {
        "name": "associations",
        "routingType": "Proxy,Cache,Extension",
        "endpoint": "https://{myCustomEndpoint}/"
      }
    ]
  },
  "location": "{location}"
}

Özel kaynak sağlayıcısını oluşturduktan sonra, diğer kaynakları hedefleyebilir ve özel kaynak sağlayıcısının yan etkilerini bunlara uygulayabilirsiniz.

Örnek Microsoft.CustomProviders/associations oluşturma isteği:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.CustomProviders/associations/{associationName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json

{
  "properties": {
    "targetResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
    "myProperty1": "myPropertyValue1",
    "myProperty2": {
        "myProperty3" : "myPropertyValue3"
    }
  }
}

Bu istek daha sonra oluşturduğunuz özel kaynak sağlayıcısında belirtilen uç noktaya iletilir ve bu uç noktaya şu biçimde targetResourceId tarafından başvurulur:

PUT https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/associations/{associationName}
X-MS-CustomProviders-ExtensionPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.CustomProviders/associations/{associationName}
X-MS-CustomProviders-ExtendedResource: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}

{
  "properties": {
    "myProperty1": "myPropertyValue1",
    "myProperty2": {
        "myProperty3" : "myPropertyValue3"
    }
  }
}

Uç nokta bir uygulama/json Content-Type ve geçerli bir JSON yanıt gövdesiyle yanıt vermelidir. JSON'un properties nesnesi altında döndürülen alanlar ilişkilendirme dönüş yanıtına eklenir.

Yardım alma

Azure Özel Kaynak Sağlayıcıları geliştirme hakkında sorularınız varsa Stack Overflow'da bunları sormayı deneyin. Benzer bir soru zaten yanıtlanmış olabilir, bu nedenle göndermeden önce kontrol edin. Hızlı yanıt almak için etiketini azure-custom-providers ekleyin!

Sonraki adımlar

Bu makalede, özel kaynak sağlayıcıları hakkında bilgi edindiyseniz. Daha fazla bilgi edinmek için şu makalelere bakın: