Azure Maps klientbibliotek för geoplatspaket för Python – version 1.0.0b1
Det här paketet innehåller en Python SDK för Azure Maps Services for Geolocation. Läs mer om Azure Maps Services här
Källkod | API-referensdokumentation | Produktdokumentation
Friskrivning
Stöd för Azure SDK Python-paket för Python 2.7 har upphört den 1 januari 2022. Mer information och frågor finns i https://github.com/Azure/azure-sdk-for-python/issues/20691
Komma igång
Förutsättningar
- Python 3.7 eller senare krävs för att använda det här paketet.
- En Azure-prenumeration och ett Azure Maps konto.
- En distribuerad Maps Services-resurs. Du kan skapa resursen via Azure-portalen eller Azure CLI.
Om du använder Azure CLI ersätter <resource-group-name>
och <account-name>
väljer du en lämplig prisnivå baserat på dina behov via parametern <sku-name>
. Mer information finns på den här sidan .
az maps account create --resource-group <resource-group-name> --account-name <account-name> --sku <sku-name>
Installera paketet
Installera Azure Maps Service Geolocation SDK.
pip install azure-maps-geolocation
Skapa och autentisera MapsGeolocationClient
Om du vill skapa ett klientobjekt för att få åtkomst till Azure Maps Geoplats-API:et behöver du ett autentiseringsobjekt. Azure Maps Geolocation-klienten stöder också två sätt att autentisera.
1. Autentisera med en prenumerationsnyckelautentiseringsuppgift
Du kan autentisera med din Azure Maps prenumerationsnyckel.
När Azure Maps prenumerationsnyckel har skapats anger du värdet för nyckeln som miljövariabel: AZURE_SUBSCRIPTION_KEY
.
Skicka sedan en AZURE_SUBSCRIPTION_KEY
som credential
parameter till en instans av 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. Autentisera med en Azure Active Directory-autentiseringsuppgift
Du kan autentisera med AAD-tokenautentiseringsuppgifter (Azure Active Directory) med hjälp av Azure Identity-biblioteket. Autentisering med hjälp av AAD kräver viss inledande konfiguration:
- Installera azure-identity
- Registrera ett nytt AAD-program
- Bevilja åtkomst till Azure Maps genom att tilldela lämplig roll till tjänstens huvudnamn. Se sidan Hantera autentisering.
Efter installationen kan du välja vilken typ av autentiseringsuppgifter du azure.identity
vill använda.
Till exempel kan DefaultAzureCredential användas för att autentisera klienten:
Ange sedan värdena för klient-ID, klient-ID och klienthemlighet för AAD-programmet som miljövariabler: AZURE_CLIENT_ID
, AZURE_TENANT_ID
, AZURE_CLIENT_SECRET
Du måste också ange den Azure Maps resurs som du tänker använda genom att clientId
ange i klientalternativen. Det Azure Maps resursklient-ID:t finns i avsnitten Autentisering i den Azure Maps resursen. Läs dokumentationen om hur du hittar den.
from azure.maps.geolocation import MapsGeolocationClient
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
geolocation_client = MapsGeolocationClient(
client_id="<Azure Maps Client ID>",
credential=credential
)
Viktiga begrepp
Med klientbiblioteket Azure Maps Geoolocation för Python kan du interagera med var och en av komponenterna med hjälp av ett dedikerat klientobjekt.
Synkronisera klienter
MapsGeolocationClient
är den primära klienten för utvecklare som använder klientbiblioteket Azure Maps Geoolocation för Python.
När du har initierat en MapsGeolocationClient
klass kan du utforska metoderna i det här klientobjektet för att förstå de olika funktionerna i den Azure Maps geoplatstjänst som du kan komma åt.
Async-klienter
Det här biblioteket innehåller ett fullständigt asynkront API som stöds i Python 3.5+. Om du vill använda den måste du först installera en asynkron transport, till exempel aiohttp. Mer information finns i dokumentationen om azure-core .
Asynkrona klienter och autentiseringsuppgifter bör stängas när de inte längre behövs. Dessa objekt är asynkrona kontexthanterare och definierar asynkrona close
metoder.
Exempel
Följande avsnitt innehåller flera kodfragment som täcker några av de vanligaste Azure Maps geoplatsuppgifter, inklusive:
Hämta geoplats
Den här tjänsten returnerar ISO-landskoden för den angivna IP-adressen. Utvecklare kan använda den här informationen för att blockera eller ändra visst innehåll baserat på geografiska platser där programmet visas.
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")
Felsökning
Allmänt
Maps Geoplatsklienter genererar undantag som definierats i Azure Core.
Den här listan kan användas som referens för att fånga undantag som genereras. Om du vill hämta den specifika felkoden för undantaget använder du error_code
attributet, t.ex. exception.error_code
.
Loggning
Det här biblioteket använder standardloggningsbiblioteket för loggning. Grundläggande information om HTTP-sessioner (URL:er, rubriker osv.) loggas på INFO-nivå.
Detaljerad loggning på FELSÖKNINGsnivå, inklusive begärande-/svarskroppar och oredigerade huvuden, kan aktiveras på en klient med logging_enable
argumentet :
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)
Ytterligare
Stöter du fortfarande på problem? Om du stöter på buggar eller har förslag kan du ange ett problem i avsnittet Problem i projektet.
Nästa steg
Mer exempelkod
Kom igång med våra Maps Geolocation-exempel (Async-versionsexempel).
Flera Azure Maps Python SDK-exempel för geoplats finns tillgängliga på SDK:s GitHub-lagringsplats. De här exemplen innehåller exempelkod för ytterligare scenarier som ofta påträffas när du arbetar med Maps-geoplats
set AZURE_SUBSCRIPTION_KEY="<RealSubscriptionKey>"
pip install azure-maps-geolocation --pre
python samples/sample_authentication.py
python sample/sample_get_country_code.py
Anmärkningar:
--pre
flaggan kan läggas till om du vill, det är att inkludera förhandsversioner och utvecklingsversioner förpip install
. Som standardpip
hittar endast stabila versioner.
Mer information finns i Exempelintroduktion
Ytterligare dokumentation
Mer omfattande dokumentation om Azure Maps geoplats finns i Azure Maps geoplatsdokumentation om docs.microsoft.com.
Bidra
Det här projektet välkomnar bidrag och förslag. Merparten av bidragen kräver att du godkänner ett licensavtal för bidrag, där du deklarerar att du har behörighet att bevilja oss rättigheten att använda ditt bidrag, och att du dessutom uttryckligen gör så. Mer information finns på https://cla.microsoft.com.
När du skickar en pull-förfrågan avgör en CLA-robot automatiskt om du måste tillhandahålla ett licensavtal för bidrag med lämplig PR (t.ex. etikett eller kommentar). Följ bara robotens anvisningar. Du behöver bara göra detta en gång för alla repor som använder vårt licensavtal för bidrag.
Det här projektet använder sig av Microsofts uppförandekod för öppen källkod. Mer information finns i Vanliga frågor och svar om uppförandekod eller kontakt opencode@microsoft.com med ytterligare frågor eller kommentarer.
Azure SDK for Python