Udostępnij za pośrednictwem


biblioteka klienta pakietu geolokalizacji Azure Maps dla języka Python — wersja 1.0.0b1

Ten pakiet zawiera zestaw PYTHON SDK dla usług Azure Maps Services for Geolocation. Dowiedz się więcej o usługach Azure Maps tutaj

Kod | źródłowy Dokumentacja referencyjna interfejsu | API Dokumentacja produktu

Zrzeczenie odpowiedzialności

Obsługa pakietów języka Python dla zestawu Azure SDK dla języka Python 2.7 zakończyła się 1 stycznia 2022 r. Aby uzyskać więcej informacji i pytań, zapoznaj się z artykułem https://github.com/Azure/azure-sdk-for-python/issues/20691

Wprowadzenie

Wymagania wstępne

Jeśli używasz interfejsu wiersza polecenia platformy Azure, zastąp <resource-group-name> elementy i <account-name> wybierz odpowiednią warstwę cenową w zależności od potrzeb za pośrednictwem parametru <sku-name> . Aby uzyskać więcej informacji, zapoznaj się z tą stroną .

az maps account create --resource-group <resource-group-name> --account-name <account-name> --sku <sku-name>

Instalowanie pakietu

Zainstaluj zestaw SDK geolokalizacji usługi Azure Maps.

pip install azure-maps-geolocation

Tworzenie i uwierzytelnianie elementu MapsGeolocationClient

Aby utworzyć obiekt klienta w celu uzyskania dostępu do interfejsu API geolokalizacji Azure Maps, potrzebny jest obiekt poświadczeń. Azure Maps klient geolokalizacji obsługuje również dwa sposoby uwierzytelniania.

1. Uwierzytelnianie przy użyciu poświadczeń klucza subskrypcji

Możesz uwierzytelnić się przy użyciu klucza subskrypcji Azure Maps. Po utworzeniu klucza subskrypcji Azure Maps ustaw wartość klucza jako zmienną środowiskową: AZURE_SUBSCRIPTION_KEY. Następnie przekaż element AZURE_SUBSCRIPTION_KEY jako credential parametr do wystąpienia obiektu AzureKeyCredential.

from azure.core.credentials import AzureKeyCredential
from azure.maps.geolocation import MapsGeolocationClient

credential = AzureKeyCredential(os.environ.get("AZURE_SUBSCRIPTION_KEY"))

geolocation_client = MapsGeolocationClient(
    credential=credential,
)

2. Uwierzytelnianie przy użyciu poświadczeń usługi Azure Active Directory

Możesz uwierzytelnić się przy użyciu poświadczeń tokenu usługi Azure Active Directory (AAD) przy użyciu biblioteki tożsamości platformy Azure. Uwierzytelnianie przy użyciu usługi AAD wymaga konfiguracji początkowej:

Po skonfigurowaniu można wybrać typ poświadczeńazure.identity do użycia. Na przykład wartość DefaultAzureCredential może służyć do uwierzytelniania klienta:

Następnie ustaw wartości identyfikatora klienta, identyfikatora dzierżawy i klucza tajnego klienta aplikacji usługi AAD jako zmienne środowiskowe: AZURE_CLIENT_ID, , AZURE_TENANT_IDAZURE_CLIENT_SECRET

Należy również określić zasób Azure Maps, którego zamierzasz użyć, określając wartość clientId w opcjach klienta. Identyfikator klienta zasobu Azure Maps można znaleźć w sekcjach Uwierzytelnianie w zasobie Azure Maps. Zapoznaj się z dokumentacją dotyczącą tego, jak go znaleźć.

from azure.maps.geolocation import MapsGeolocationClient
from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
geolocation_client = MapsGeolocationClient(
    client_id="<Azure Maps Client ID>",
    credential=credential
)

Kluczowe pojęcia

Biblioteka klienta geolokalizacji Azure Maps dla języka Python umożliwia interakcję z poszczególnymi składnikami za pomocą dedykowanego obiektu klienta.

Synchronizowanie klientów

MapsGeolocationClientjest podstawowym klientem dla deweloperów korzystających z biblioteki klienta geolokalizacji Azure Maps dla języka Python. Po zainicjowaniu MapsGeolocationClient klasy można zapoznać się z metodami w tym obiekcie klienta, aby poznać różne funkcje usługi Azure Maps Geolokalizacji, do której można uzyskać dostęp.

Klienci asynchroniczny

Ta biblioteka zawiera kompletny asynchroniczny interfejs API obsługiwany w języku Python 3.5 lub nowszym. Aby go używać, należy najpierw zainstalować transport asynchroniczny, taki jak aiohttp. Aby uzyskać więcej informacji, zobacz dokumentację platformy azure-core .

Klienci asynchroniczne i poświadczenia powinny być zamykane, gdy nie są już potrzebne. Te obiekty są menedżerami kontekstu asynchronicznego i definiują metody asynchroniczne close .

Przykłady

W poniższych sekcjach przedstawiono kilka fragmentów kodu obejmujących niektóre z najczęstszych zadań geolokalizacji Azure Maps, w tym:

Uzyskiwanie geolokalizacji

Ta usługa zwróci kod kraju ISO dla podanego adresu IP. Deweloperzy mogą używać tych informacji do blokowania lub zmieniania określonej zawartości na podstawie lokalizacji geograficznych, z których jest oglądana aplikacja.

from azure.maps.geolocation import MapsGeolocationClient

BLOCK_COUNTRY_LIST = ['US', 'TW', 'AF', 'AX', 'DL']
INCOME_IP_ADDRESS = "2001:4898:80e8:b::189"
geolocation_result = client.get_country_code(ip_address=INCOME_IP_ADDRESS)

result_country_code = geolocation_result.iso_code

if result_country_code in BLOCK_COUNTRY_LIST:
    raise Exception("These IP address is from forebiden country")

Rozwiązywanie problemów

Ogólne

Klienci geolokalizacji map zgłaszają wyjątki zdefiniowane w usłudze Azure Core.

Ta lista może służyć do przywoływania zgłaszanych wyjątków. Aby uzyskać określony kod błędu wyjątku, użyj atrybutu error_code , tj exception.error_code. .

Rejestrowanie

Ta biblioteka używa standardowej biblioteki rejestrowania do rejestrowania. Podstawowe informacje o sesjach HTTP (adresach URL, nagłówkach itp.) są rejestrowane na poziomie INFORMACJI.

Szczegółowe rejestrowanie na poziomie DEBUG, w tym treści żądań/odpowiedzi i nieredagowanych nagłówków, można włączyć na kliencie z argumentem logging_enable :

import sys
import logging
from azure.maps.geolocation import MapsGeolocationClient

# Create a logger for the 'azure.maps.geolocation' SDK
logger = logging.getLogger('azure.maps.geolocation')
logger.setLevel(logging.DEBUG)

# Configure a console output
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)

Dodatkowe

Nadal występują problemy? Jeśli napotkasz jakiekolwiek usterki lub masz sugestie, zgłoś problem w sekcji Problemy w projekcie.

Następne kroki

Więcej przykładów kodu

Rozpocznij pracę z przykładami geolokalizacji map (przykłady wersji asynchronicznych).

Kilka Azure Maps przykładów zestawu SDK geolokalizacji geograficznej dla języka Python jest dostępnych w repozytorium GitHub zestawu SDK. Te przykłady zawierają przykładowy kod dla dodatkowych scenariuszy, które są często napotykane podczas pracy z geolokalizacją map

set AZURE_SUBSCRIPTION_KEY="<RealSubscriptionKey>"

pip install azure-maps-geolocation --pre

python samples/sample_authentication.py
python sample/sample_get_country_code.py

Uwagi: --pre można opcjonalnie dodać flagę. Ma ona obejmować wersje wstępne i programistyczne dla programu pip install. Domyślnie pip program znajduje tylko stabilne wersje.

Więcej szczegółów można znaleźć w temacie Wprowadzenie do przykładów

Dodatkowa dokumentacja

Aby uzyskać bardziej obszerną dokumentację dotyczącą geolokalizacji Azure Maps, zobacz dokumentację geolokalizacji Azure Maps dotyczącą docs.microsoft.com.

Współtworzenie

W tym projekcie zachęcamy do współtworzenia i zgłaszania sugestii. Współtworzenie w większości przypadków wymaga zgody na umowę licencyjną dotyczącą współautorów (CLA, Contributor License Agreement), zgodnie z którą współautor ma prawo udzielić i faktycznie udziela nam praw do używania wytworzonej przez siebie zawartości. Aby uzyskać szczegółowe informacje, odwiedź stronę https://cla.microsoft.com.

Po przesłaniu żądania ściągnięcia robot CLA automatycznie określi, czy musisz przekazać umowę CLA, i doda odpowiednie informacje do tego żądania (na przykład etykietę czy komentarz). Po prostu postępuj zgodnie z instrukcjami robota. Wystarczy zrobić to raz dla wszystkich repozytoriów, w przypadku których jest używana nasza umowa CLA.

W tym projekcie przyjęto Kodeks postępowania oprogramowania Open Source firmy Microsoft. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące kodeksu postępowania lub skontaktuj się z opencode@microsoft.com dodatkowymi pytaniami lub komentarzami.