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
- Do korzystania z tego pakietu jest wymagany język Python w wersji 3.7 lub nowszej.
- Subskrypcja platformy Azure i konto Azure Maps.
- Wdrożony zasób usług Maps Services. Zasób można utworzyć za pomocą witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.
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:
- Instalowanie tożsamości platformy Azure
- Rejestrowanie nowej aplikacji usługi AAD
- Udziel dostępu do Azure Maps, przypisując odpowiednią rolę do jednostki usługi. Zapoznaj się ze stroną Zarządzanie uwierzytelnianiem.
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_ID
AZURE_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
MapsGeolocationClient
jest 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 programupip install
. Domyślniepip
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.
Azure SDK for Python