Omówienie dołączania zasobów niestandardowych dostawców zasobów platformy Azure

Dołączanie zasobów niestandardowych dostawców zasobów platformy Azure to model rozszerzalności dla typów zasobów platformy Azure. Umożliwia ona stosowanie operacji lub zarządzania w istniejących zasobach platformy Azure na dużą skalę. Aby uzyskać więcej informacji, zobacz How Azure Custom Resource Providers can extend Azure (Jak dostawcy zasobów niestandardowych platformy Azure mogą rozszerzać platformę Azure). W tym artykule opisano:

  • Co może zrobić dołączanie zasobów.
  • Podstawy dołączania zasobów i sposób ich używania.
  • Gdzie można znaleźć przewodniki i przykłady kodu, aby rozpocząć pracę.

Ważne

Dostawcy zasobów niestandardowych są obecnie w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub mogą mieć ograniczone możliwości. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.

Co może zrobić dołączanie zasobów?

Podobnie jak w przypadku niestandardowych zasobów dostawcy zasobów platformy Azure, dołączanie zasobów definiuje kontrakt, który będzie serwerem proxy "dołączania" żądań do punktu końcowego. W przeciwieństwie do zasobów niestandardowych dołączanie zasobów nie tworzy nowego typu zasobu. Zamiast tego umożliwia rozszerzenie istniejących typów zasobów. Dołączanie zasobów działa z Azure Policy, dzięki czemu zarządzanie i konfiguracja zasobów można wykonywać na dużą skalę. Niektóre przykłady przepływów pracy dołączania zasobów:

  • Instalowanie rozszerzeń maszyn wirtualnych i zarządzanie nimi.
  • Przekazywanie i konfigurowanie ustawień domyślnych na kontach usługi Azure Storage.
  • Włącz ustawienia diagnostyczne punktu odniesienia na dużą skalę.

Podstawy dołączania zasobów

Dołączanie zasobów można skonfigurować za pomocą niestandardowych dostawców zasobów platformy Azure przy użyciu typów zasobów Microsoft.CustomProviders/resourceProviders i Microsoft.CustomProviders/associations. Aby włączyć dołączanie zasobów dla niestandardowego dostawcy zasobów, podczas procesu konfiguracji utwórz zasób o nazwie "associations" z elementem routingType zawierającym wartość "Extension". Microsoft.CustomProviders/associations i Microsoft.CustomProviders/resourceProviders nie muszą należeć do tej samej grupy zasobów.

Oto przykładowy niestandardowy dostawca zasobów platformy Azure:

{
  "properties": {
    "resourceTypes": [
      {
        "name": "associations",
        "routingType": "Proxy,Cache,Extension",
        "endpoint": "https://microsoft.com/"
      }
    ]
  },
  "location": "eastus"
}
Właściwość Wymagane? Opis
name Tak Nazwa definicji punktu końcowego. W przypadku dołączania zasobów nazwa musi być "skojarzenia".
routingType Tak Określa typ kontraktu z punktem końcowym. W przypadku dołączania zasobów prawidłowe typy routingu to "Proxy,Cache,Extension" i "Webhook,Cache,Extension".
endpoint Tak Punkt końcowy do kierowania żądań do. Spowoduje to obsługę odpowiedzi i wszelkich skutków ubocznych żądania.

Po utworzeniu niestandardowego dostawcy zasobów z typem zasobu skojarzeń można wybrać element docelowy przy użyciu atrybutów Microsoft.CustomProviders/associations. Microsoft.CustomProviders/associations to zasób rozszerzenia, który może rozszerzyć dowolny inny zasób platformy Azure. Po utworzeniu wystąpienia obiektów Microsoft.CustomProviders/associations zostanie utworzona właściwość targetResourceId, która powinna być prawidłowym identyfikatorem zasobu Microsoft.CustomProviders/resourceProviders lub Microsoft.Solutions/applications. W takich przypadkach żądanie zostanie przekazane do typu zasobu skojarzeń w utworzonym wystąpieniu Microsoft.CustomProviders/resourceProviders.

Uwaga

Jeśli identyfikator zasobu Microsoft.Solutions/applications jest podany jako targetResourceId, w zarządzanej grupie zasobów musi być wdrożony element Microsoft.CustomProviders/resourceProviders o nazwie "public".

Przykładowe skojarzenie niestandardowych dostawców zasobów platformy Azure:

{
  "properties": {
    "targetResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
    ...
  }
}
Właściwość Wymagane? Opis
targetResourceId Tak Identyfikator zasobu Microsoft.CustomProviders/resourceProviders lub Microsoft.Solutions/applications.

Jak używać dołączania zasobów

Dołączanie zasobów działa przez rozszerzenie innych zasobów za pomocą zasobu rozszerzenia Microsoft.CustomProviders/associations. W poniższym przykładzie żądanie jest wykonywane dla maszyny wirtualnej, ale można rozszerzyć dowolny zasób.

Najpierw należy utworzyć niestandardowy zasób dostawcy zasobów z typem zasobu skojarzeń. Spowoduje to zadeklarowanie adresu URL wywołania zwrotnego, który będzie używany podczas tworzenia odpowiedniego zasobu Microsoft.CustomProviders/associations, który jest przeznaczony dla niestandardowego dostawcy zasobów.

Przykładowe żądanie utworzenia microsoft.CustomProviders/resourceProviders:

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}"
}

Po utworzeniu niestandardowego dostawcy zasobów można zastosować do nich inne zasoby i zastosować do nich skutki uboczne niestandardowego dostawcy zasobów.

Przykładowe żądanie tworzenia microsoft.CustomProviders/associations:

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"
    }
  }
}

To żądanie zostanie następnie przekazane do punktu końcowego określonego w utworzonym przez Ciebie dostawcy zasobów niestandardowych, do którego odwołuje się identyfikator targetResourceId w tym formularzu:

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"
    }
  }
}

Punkt końcowy powinien odpowiadać przy użyciu pliku application/json Content-Type i prawidłowej treści odpowiedzi JSON. Pola zwracane w ramach obiektu properties w formacie JSON zostaną dodane do odpowiedzi zwracanej przez skojarzenie.

Uzyskiwanie pomocy

Jeśli masz pytania dotyczące tworzenia niestandardowych dostawców zasobów platformy Azure, spróbuj zadać im pytanie w witrynie Stack Overflow. Odpowiedź na podobne pytanie mogła już zostać udzielona, więc sprawdź najpierw przed opublikowaniem. Dodaj tag azure-custom-providers , aby uzyskać szybką odpowiedź!

Następne kroki

W tym artykule przedstawiono informacje o niestandardowych dostawcach zasobów. Zobacz następujące artykuły, aby dowiedzieć się więcej: