Поделиться через


клиентская библиотека пакета геолокации Azure Maps для Python версии 1.0.0b1

Этот пакет содержит пакет SDK python для служб Azure Maps для геолокации. Дополнительные сведения о службах Azure Maps см. здесь.

Исходный код | Справочная документация по | API Документация по продукту

Заявление об отказе

Поддержка пакетов Python пакета Azure SDK для Python 2.7 завершилась 1 января 2022 г. Дополнительные сведения и вопросы см. на https://github.com/Azure/azure-sdk-for-python/issues/20691

Начало работы

Предварительные требования

Если вы используете Azure CLI, замените <resource-group-name> и <account-name> по своему выбору и выберите соответствующую ценовую категорию в зависимости от ваших потребностей с помощью <sku-name> параметра . Дополнительные сведения см. на этой странице.

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

Установка пакета

Установите пакет SDK для геолокации службы Azure Maps.

pip install azure-maps-geolocation

Создание и проверка подлинности MapsGeolocationClient

Чтобы создать клиентский объект для доступа к API геолокации Azure Maps, потребуется объект учетных данных. Azure Maps клиент геолокации также поддерживает два способа проверки подлинности.

1. Проверка подлинности с помощью учетных данных ключа подписки

Вы можете пройти проверку подлинности с помощью ключа подписки Azure Maps. После создания ключа подписки Azure Maps задайте значение ключа в качестве переменной среды: AZURE_SUBSCRIPTION_KEY. Затем передайте в AZURE_SUBSCRIPTION_KEY качестве credential параметра в экземпляр 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. Проверка подлинности с помощью учетных данных Azure Active Directory

Вы можете пройти проверку подлинности с помощью учетных данных маркера Azure Active Directory (AAD) с помощью библиотеки удостоверений Azure. Для проверки подлинности с помощью AAD требуется некоторая начальная настройка:

После настройки можно выбрать тип учетных данных для azure.identity использования. Например, для проверки подлинности клиента можно использовать DefaultAzureCredential :

Затем задайте значения идентификатора клиента, идентификатора клиента и секрета клиента приложения AAD в качестве переменных среды: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET

Кроме того, необходимо указать Azure Maps ресурс, который вы планируете использовать, указав clientId в параметрах клиента . Идентификатор клиента ресурса Azure Maps можно найти в разделах Проверка подлинности ресурса Azure Maps. Сведения о том, как найти его, см. в документации .

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

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

Основные понятия

Клиентская библиотека геолокации Azure Maps для Python позволяет взаимодействовать с каждым из компонентов с помощью выделенного клиентского объекта.

Синхронизация клиентов

MapsGeolocationClient— это основной клиент для разработчиков, использующих клиент Azure Maps библиотеку геолокации для Python. После инициализации MapsGeolocationClient класса можно изучить методы этого клиентского объекта, чтобы понять различные функции службы геолокации Azure Maps, к которым можно получить доступ.

Асинхронные клиенты

Эта библиотека включает полный асинхронный API, поддерживаемый в Python 3.5 и более поздних версий. Чтобы использовать его, необходимо сначала установить асинхронный транспорт, например aiohttp. Дополнительные сведения см. в документации по azure-core .

Асинхронные клиенты и учетные данные должны быть закрыты, если они больше не нужны. Эти объекты являются диспетчерами асинхронного контекста и определяют асинхронные close методы.

Примеры

В следующих разделах представлено несколько фрагментов кода, охватывающих некоторые из наиболее распространенных задач геолокации Azure Maps, в том числе:

Получение географического положения

Эта служба вернет код страны ISO для указанного IP-адреса. Разработчики могут использовать эти сведения для блокировки или изменения определенного содержимого в зависимости от географических расположений, из которых просматривается приложение.

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")

Устранение неполадок

Общие сведения

Клиенты геолокации Maps вызывают исключения, определенные в Azure Core.

Этот список можно использовать для справки для перехвата вызванных исключений. Чтобы получить конкретный код ошибки исключения, используйте error_code атрибут , т. е exception.error_code. .

Ведение журнала

Эта библиотека использует стандартную библиотеку ведения журнала для ведения журнала. Основные сведения о сеансах HTTP (URL-адреса, заголовки и т. д.) регистрируются на уровне INFO.

Подробное ведение журнала на уровне DEBUG, включая тексты запросов и ответов и неотредактированные заголовки, можно включить на клиенте с помощью аргумента 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)

Дополнительно

По-прежнему возникают проблемы? Если вы столкнулись с ошибками или у вас есть предложения, сообщите о проблеме в разделе Проблемы проекта.

Дальнейшие действия

Больше примеров кода

Начните работу с примерами геолокации Карт (примеры асинхронных версий).

Несколько Azure Maps примеров пакета SDK для Python для геолокации доступны в репозитории GitHub пакета SDK. В этих примерах приведен пример кода для дополнительных сценариев, часто встречающихся при работе с геолокацией Карт.

set AZURE_SUBSCRIPTION_KEY="<RealSubscriptionKey>"

pip install azure-maps-geolocation --pre

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

Примечания. --pre Флаг можно добавить при необходимости, он должен включать предварительные версии и версии разработки для pip install. По умолчанию pip находит только стабильные версии.

Дополнительные сведения см. в разделе Общие сведения о примерах.

Дополнительная документация

Более подробную документацию по географическому расположению Azure Maps см. в документации по геолокации Azure Maps на docs.microsoft.com.

Участие

На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Для получения подробных сведений посетите веб-страницу https://cla.microsoft.com.

При отправке запроса на включение внесенных изменений CLA-бот автоматически определит необходимость предоставления соглашения CLA и соответствующего оформления запроса на включение внесенных изменений (например, добавление метки, комментария). Просто следуйте инструкциям бота. Будет достаточно выполнить их один раз для всех репозиториев, поддерживающих соглашение CLA.

В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения см. в разделе часто задаваемых вопросов о правилах поведения или обратитесь к opencode@microsoft.com с любыми дополнительными вопросами или комментариями.