Udostępnij za pośrednictwem


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: