Rozwiązywanie problemów z udostępnionymi linkami prywatnymi w usłudze Azure AI Search

Udostępniony link prywatny umożliwia usłudze Azure AI Search zabezpieczanie połączeń wychodzących za pośrednictwem prywatnego punktu końcowego podczas uzyskiwania dostępu do zasobów klientów w sieci wirtualnej. Ten artykuł może pomóc w usuwaniu błędów, które mogą wystąpić.

Tworzenie udostępnionego łącza prywatnego to operacja płaszczyzny sterowania usługi wyszukiwania. Możesz utworzyć udostępniony link prywatny przy użyciu portalu lub interfejsu API REST zarządzania. Podczas aprowizacji stan żądania to "Aktualizowanie". Po pomyślnym zakończeniu operacji stan to "Powodzenie". Zostanie utworzony prywatny punkt końcowy zasobu wraz ze wszystkimi strefami DNS i mapowaniami. Ten punkt końcowy jest używany wyłącznie przez wystąpienie usługi wyszukiwania i jest zarządzany za pośrednictwem usługi Azure AI Search.

Steps involved in creating shared private link resources

Poniżej wymieniono niektóre typowe błędy występujące podczas fazy tworzenia.

Błędy sprawdzania poprawności żądań

  • Nieobsługiwana jednostka SKU: Współużytkowane linki prywatne są obsługiwane w warstwie Podstawowa i powyżej. W przypadku indeksatorów z zestawami umiejętności minimalna warstwa to Standardowa 2 (S2).

  • Nieprawidłowa nazwa: Reguły nazewnictwa udostępnionego łącza prywatnego to:

    • Długość powinna wynosić od 1 do 60 znaków
    • Znaki alfanumeryczne
    • Nazwy mogą zawierać podkreślenie _, kropkę .i łącznik - , o ile nie jest to pierwszy znak w nazwie
  • Nieprawidłowy identyfikator grupy: Identyfikatory grup są uwzględniane w wielkości liter i muszą być jedną z wartości z poniższej tabeli:

    Zasób platformy Azure Identyfikator grupy Pierwsza dostępna wersja interfejsu API
    Azure Storage — Blob (lub) ADLS Gen 2 blob 2020-08-01
    Azure Storage — tabele table 2020-08-01
    Azure Cosmos DB for NoSQL Sql 2020-08-01
    Azure SQL Database sqlServer 2020-08-01
    Azure Database for MySQL (wersja zapoznawcza) mysqlServer 2020-08-01-Preview
    Azure Key Vault vault 2020-08-01
    Azure Functions (wersja zapoznawcza) sites 2020-08-01-Preview

    Zasoby oznaczone ciągiem "(wersja zapoznawcza)" muszą być tworzone przy użyciu wersji zapoznawczej wersji interfejsu API REST zarządzania.

  • privateLinkResourceId weryfikacja typu: Podobnie jak groupIdusługa Azure AI Search sprawdza, czy typ zasobu "poprawny" jest określony w elemecie privateLinkResourceId. Poniżej przedstawiono prawidłowe typy zasobów:

    Zasób platformy Azure Typ zasobu Pierwsza dostępna wersja interfejsu API
    Azure Storage Microsoft.Storage/storageAccounts 2020-08-01
    Azure Cosmos DB Microsoft.DocumentDb/databaseAccounts 2020-08-01
    Azure SQL Database Microsoft.Sql/servers 2020-08-01
    Azure Key Vault Microsoft.KeyVault/vaults 2020-08-01
    Azure Database for MySQL (wersja zapoznawcza) Microsoft.DBforMySQL/servers 2020-08-01-Preview
    Azure Functions (wersja zapoznawcza) Microsoft.Web/sites 2020-08-01-Preview
    Azure SQL Managed Instance (wersja zapoznawcza) Microsoft.Sql/managedInstance 2020-08-01-Preview

    Ponadto określona wartość groupId musi być prawidłowa dla określonego typu zasobu. Na przykład groupId "obiekt blob" jest prawidłowy dla typu "Microsoft.Storage/storageAccounts", nie można go używać z żadnym innym typem zasobu. W przypadku danej wersji interfejsu API zarządzania wyszukiwaniem klienci mogą znaleźć obsługiwane groupId i szczegóły typu zasobu, korzystając z interfejsu API obsługiwanego przez listę.

  • Wymuszanie limitu przydziału: usługa wyszukiwania mają przydziały nałożone na odrębną liczbę udostępnionych zasobów łącza prywatnego, które można utworzyć, oraz liczbę różnych używanych zasobów docelowych (na groupIdpodstawie ). Są one udokumentowane w sekcji Limity zasobów udostępnionego łącza prywatnego na stronie Limity usługa wyszukiwania usługi Azure AI.

Błędy wdrażania

Usługa wyszukiwania inicjuje żądanie utworzenia udostępnionego łącza prywatnego, ale usługa Azure Resource Manager wykonuje rzeczywistą pracę. Stan wdrożenia można sprawdzić w portalu lub za pomocą zapytania oraz rozwiązać wszelkie błędy, które mogą wystąpić.

Udostępnione zasoby łącza prywatnego, które zakończyły się niepowodzeniem wdrożenia usługi Azure Resource Manager, zostaną wyświetlone w obszarze Lista i Pobierz wywołania interfejsu FailedAPI, ale będą miały stan aprowizacji . Po ustaleniu przyczyny niepowodzenia wdrażania usługi Azure Resource Manager usuń Failed zasób i utwórz go ponownie po zastosowaniu odpowiedniego rozwiązania z poniższej tabeli.

Przyczyna niepowodzenia wdrożenia opis Rozwiązanie
"LinkedAuthorizationFailed" Komunikat o błędzie informuje, że klient ma uprawnienia do utworzenia udostępnionego łącza prywatnego w usłudze wyszukiwania, ale nie ma uprawnień do wykonania akcji "privateEndpoint Połączenie ionApproval/action" w połączonym zakresie. Sprawdź ponownie identyfikator łącza prywatnego w żądaniu, aby upewnić się, że w identyfikatorze URI nie ma żadnych błędów ani pominięcia. Jeśli usługa Azure AI Search i zasób PaaS platformy Azure znajdują się w różnych subskrypcjach, a jeśli używasz interfejsu REST lub interfejsu wiersza polecenia, upewnij się, że aktywne konto platformy Azure jest przeznaczone dla zasobu PaaS platformy Azure. W przypadku klientów REST upewnij się, że nie używasz wygasłego tokenu elementu nośnego i że token jest prawidłowy dla aktywnej subskrypcji.
Dostawca zasobów sieciowych nie jest zarejestrowany w subskrypcji zasobu docelowego Prywatny punkt końcowy (i skojarzone mapowania DNS) jest tworzony dla zasobu docelowego (konto magazynu, usługa Azure Cosmos DB, usługa Azure SQL) za pośrednictwem Microsoft.Network dostawcy zasobów (RP). Jeśli subskrypcja hostowana zasób docelowy ("subskrypcja docelowa") nie jest zarejestrowana w Microsoft.Network ramach dostawcy zasobów, wdrożenie usługi Azure Resource Manager może zakończyć się niepowodzeniem. Musisz zarejestrować ten dostawca usług w subskrypcji docelowej. Możesz zarejestrować dostawcę zasobów przy użyciu witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia.
Nieprawidłowy groupId dla zasobu docelowego Po utworzeniu kont usługi Azure Cosmos DB można określić typ interfejsu API dla konta bazy danych. Chociaż usługa Azure Cosmos DB oferuje kilka różnych typów interfejsów API, usługa Azure AI Search obsługuje tylko "Sql" jako groupId zasoby udostępnionego łącza prywatnego. Po utworzeniu udostępnionego łącza prywatnego typu "Sql" dla privateLinkResourceId wskazywania konta bazy danych innej niż Sql wdrożenie usługi Azure Resource Manager zakończy się niepowodzeniem z groupId powodu niezgodności. Identyfikator zasobu platformy Azure konta usługi Azure Cosmos DB nie jest wystarczający do określenia używanego typu interfejsu API. Usługa Azure AI Search próbuje utworzyć prywatny punkt końcowy, który jest następnie odrzucany przez usługę Azure Cosmos DB. Upewnij się, że privateLinkResourceId określony zasób usługi Azure Cosmos DB jest przeznaczony dla konta bazy danych typu "Sql" interfejsu API
Nie znaleziono zasobu docelowego Istnienie zasobu docelowego określonego w elemecie privateLinkResourceId jest sprawdzane tylko podczas rozpoczęcia wdrożenia usługi Azure Resource Manager. Jeśli zasób docelowy nie jest już dostępny, wdrożenie zakończy się niepowodzeniem. Upewnij się, że zasób docelowy znajduje się w określonej subskrypcji i grupie zasobów i nie został przeniesiony ani usunięty.
Błędy przejściowe/inne Wdrożenie usługi Azure Resource Manager może zakończyć się niepowodzeniem, jeśli wystąpi awaria infrastruktury lub z innych nieoczekiwanych powodów. Powinno to być rzadkie i zwykle wskazuje stan przejściowy. Spróbuj ponownie utworzyć ten zasób później. Jeśli problem będzie się powtarzać, skontaktuj się z pomocą techniczną platformy Azure.

Problemy z zatwierdzaniem prywatnego punktu końcowego kopii zapasowej

Prywatny punkt końcowy jest tworzony do docelowego zasobu platformy Azure, jak określono w żądaniu utworzenia udostępnionego łącza prywatnego. Jest to jeden z ostatnich kroków w asynchronicznej operacji wdrażania usługi Azure Resource Manager, ale usługa Azure AI Search musi połączyć prywatny adres IP prywatnego punktu końcowego w ramach konfiguracji sieci. Po zakończeniu provisioningState tego linku współużytkowany zasób łącza prywatnego przejdzie do stanu Succeededpowodzenia terminalu . Klienci powinni zatwierdzać lub odrzucać (lub ogólnie modyfikować konfigurację prywatnego punktu końcowego) po przejściu stanu na Succeeded. Modyfikowanie prywatnego punktu końcowego w jakikolwiek sposób, zanim może to spowodować niekompletną operację wdrożenia i może spowodować zakończenie współużytkowanego zasobu łącza prywatnego (natychmiast lub zwykle w ciągu kilku godzin) w Failed stanie.

usługa wyszukiwania zmiana łączności sieciowej utknęła w stanie "Aktualizowanie"

Udostępnione łącza prywatne i prywatne punkty końcowe są używane, gdy dostęp do sieci publicznej usługi wyszukiwania jest wyłączony. Zazwyczaj zmiana łączności sieciowej powinna zakończyć się powodzeniem w ciągu kilku minut po zaakceptowaniu żądania. W niektórych przypadkach wykonanie operacji zmiany łączności w usłudze Azure AI Search może potrwać kilka godzin.

Screenshot of changing public network access to disabled.

Jeśli zauważysz, że operacja zmiany łączności zajmuje znaczną ilość czasu, poczekaj kilka godzin. operacje zmiany Połączenie ivity obejmują operacje, takie jak aktualizowanie rekordów DNS, które mogą trwać dłużej niż oczekiwano.

Jeśli dostęp do sieci publicznej zostanie zmieniony, istniejące udostępnione łącza prywatne i prywatne punkty końcowe mogą nie działać poprawnie. Jeśli istniejące udostępnione łącza prywatne i prywatne punkty końcowe przestaną działać podczas operacji zmiany łączności, zaczekaj kilka godzin na ukończenie operacji. Jeśli nadal nie działają, spróbuj je usunąć i ponownie utworzyć.

Zazwyczaj zasób udostępnionego łącza prywatnego powinien przechodzić stan terminalu (Succeeded lub Failed) w ciągu kilku minut po zaakceptowaniu żądania.

W rzadkich przypadkach usługa Azure AI Search może nie oznaczać poprawnie stanu udostępnionego zasobu łącza prywatnego do stanu terminalu (Succeeded lub Failed). Zwykle występuje to z powodu nieoczekiwanego błędu. Współużytkowane zasoby łącza prywatnego są automatycznie przenoszone do Failed stanu, jeśli jest "zablokowane" w stanie innym niż terminal przez więcej niż kilka godzin.

Jeśli zauważysz, że udostępniony zasób łącza prywatnego nie został przeniesiony do stanu terminalu, poczekaj kilka godzin, aby upewnić się, że stanie się Failed on przed usunięciem i ponownym utworzeniem go. Alternatywnie zamiast czekać możesz spróbować utworzyć inny udostępniony zasób łącza prywatnego o innej nazwie (zachowując wszystkie inne parametry tak samo).

Istniejący udostępniony zasób łącza prywatnego można zaktualizować przy użyciu interfejsu API tworzenia lub aktualizowania. Wyszukiwanie umożliwia tylko zawężenie aktualizacji zasobu udostępnionego łącza prywatnego — tylko komunikat żądania można zmodyfikować za pośrednictwem tego interfejsu API.

  • Nie można zaktualizować żadnych właściwości "podstawowych" istniejącego zasobu udostępnionego łącza prywatnego (na przykład privateLinkResourceId lub groupId), a to zawsze będzie nieobsługiwane. Jeśli jakakolwiek inna właściwość oprócz komunikatu żądania musi zostać zmieniona, zalecamy klientom usunięcie i ponowne utworzenie udostępnionego zasobu łącza prywatnego.

  • Próba zaktualizowania komunikatu żądania zasobu udostępnionego łącza prywatnego jest możliwa tylko wtedy, gdy osiągnęła stan Succeededaprowizacji .

Klienci mogą usunąć istniejący udostępniony zasób łącza prywatnego za pośrednictwem interfejsu API usuwania. Podobnie jak w przypadku procesu tworzenia (lub aktualizacji), jest to również operacja asynchroniczna z czterema krokami:

  1. Zażądasz usługi wyszukiwania, aby usunąć udostępniony zasób łącza prywatnego.

  2. Usługa wyszukiwania sprawdza, czy zasób istnieje i jest w stanie prawidłowym do usunięcia. Jeśli tak, inicjuje operację usuwania usługi Azure Resource Manager w celu usunięcia zasobu.

  3. Wyszukiwanie zapytań w celu ukończenia operacji (zwykle trwa to kilka minut). W tym momencie zasób udostępnionego łącza prywatnego będzie miał stan aprowizacji "Usuwanie".

  4. Po pomyślnym zakończeniu operacji tworzenie kopii zapasowej prywatnego punktu końcowego i wszystkie skojarzone mapowania DNS zostaną usunięte. Zasób nie będzie wyświetlany w ramach operacji lista i próba wykonania operacji Get dla tego zasobu spowoduje wyświetlenie błędu 404 Nie znaleziono.

Steps involved in deleting shared private link resources

Poniżej wymieniono niektóre typowe błędy występujące w fazie usuwania.

Typ błędu opis Rozwiązanie
Zasób jest w stanie nie terminalowym Nie można usunąć udostępnionego zasobu łącza prywatnego, który nie znajduje się w stanie terminalu (Succeeded lub Failed). Istnieje możliwość (rzadko) zasób udostępnionego łącza prywatnego zablokowany w stanie innym niż terminal przez maksymalnie 8 godzin. Poczekaj, aż zasób osiągnie stan terminalu i ponów próbę usunięcia żądania.
Operacja usuwania nie powiodła się z powodu błędu "Konflikt" Operacja usługi Azure Resource Manager w celu usunięcia współużytkowanego zasobu łącza prywatnego dociera do dostawcy zasobów docelowego określonego w privateLinkResourceId ("docelowy dostawca zasobów"), zanim będzie mógł usunąć prywatny punkt końcowy i mapowania DNS. Klienci mogą korzystać z blokad zasobów platformy Azure, aby zapobiec wszelkim zmianom w zasobach . Gdy usługa Azure Resource Manager dociera do docelowego punktu końcowego, wymaga, aby docelowy dostawca zasobów zmodyfikował stan zasobu docelowego (aby usunąć szczegóły dotyczące prywatnego punktu końcowego z jego metadanych). Jeśli zasób docelowy ma skonfigurowaną blokadę (lub jej grupę zasobów/subskrypcję), operacja usługi Azure Resource Manager kończy się niepowodzeniem z komunikatem "Konflikt" (i odpowiednimi szczegółami). Współużytkowany zasób łącza prywatnego nie zostanie usunięty. Klienci powinni usunąć blokadę zasobu docelowego przed ponowieniu próby wykonania operacji usuwania. Uwaga: Ten problem może również wystąpić, gdy klienci próbują usunąć usługę wyszukiwania z udostępnionymi zasobami łącza prywatnego wskazującymi "zablokowane" zasoby docelowe
Operacja usuwania nie powiodła się Asynchroniczna operacja usuwania usługi Azure Resource Manager może zakończyć się niepowodzeniem w rzadkich przypadkach. Gdy ta operacja zakończy się niepowodzeniem, wykonanie zapytania o stan operacji asynchronicznej spowoduje wyświetlenie klientom komunikatu o błędzie i odpowiednich szczegółów. Spróbuj ponownie wykonać operację w późniejszym czasie lub skontaktuj się z pomocą techniczną platformy Azure, jeśli problem będzie się powtarzać.
Zasób zablokowany w stanie "Usuwanie" W rzadkich przypadkach współużytkowany zasób łącza prywatnego może być zablokowany w stanie "Usuwanie" przez maksymalnie 8 godzin, prawdopodobnie z powodu awarii awarii wyszukiwania. Poczekaj 8 godzin, po czym zasób przejdzie do Failed stanu, a następnie ponownie prześlij żądanie.

Następne kroki

Dowiedz się więcej o udostępnionych zasobach łącza prywatnego i sposobach ich używania do bezpiecznego dostępu do chronionej zawartości.