скрипт Python для журнала активности Azure

Вы можете использовать dot-notation для доступа и установки полей глубоко внутри объектов, не влияя на другие свойства этих объектов.

Учитывая объект, указанный вами выше:

> db.test.insert({"id": "test_object", "some_key": {"param1": "val1", "param2": "val2", "param3": "val3"}})
WriteResult({ "nInserted" : 1 })

Мы можем обновить только some_key.param2 и some_key.param3:

> db.test.findAndModify({
... query: {"id": "test_object"},
... update: {"$set": {"some_key.param2": "val2_new", "some_key.param3": "val3_new"}},
... new: true
... })
{
    "_id" : ObjectId("56476e04e5f19d86ece5b81d"),
    "id" : "test_object",
    "some_key" : {
        "param1" : "val1",
        "param2" : "val2_new",
        "param3" : "val3_new"
    }
}

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

0
задан Ajay Gupta 17 March 2019 в 22:14
поделиться

1 ответ

Похоже, вам больше не следует использовать UserPassCredentials, оно устарело.

См. Ссылку :

В предыдущей версии SDK ADAL еще не был доступен, и мы предоставили класс UserPassCredentials. Это считается устаревшим и больше не должно использоваться.

Для аутентификации с токенами вы можете попробовать приведенный ниже код.

from azure.common.credentials import ServicePrincipalCredentials

# Tenant ID for your Azure Subscription
TENANT_ID = 'ABCDEFGH-1234-1234-1234-ABCDEFGHIJKL'

# Your Service Principal App ID
CLIENT = 'a2ab11af-01aa-4759-8345-7803287dbd39'

# Your Service Principal Password
KEY = 'password'

credentials = ServicePrincipalCredentials(
    client_id = CLIENT,
    secret = KEY,
    tenant = TENANT_ID
)

Если вам нужно больше контроля, рекомендуется использовать ADAL и оболочку SDK ADAL.

import adal
from msrestazure.azure_active_directory import AdalAuthentication
from msrestazure.azure_cloud import AZURE_PUBLIC_CLOUD

# Tenant ID for your Azure Subscription
TENANT_ID = 'ABCDEFGH-1234-1234-1234-ABCDEFGHIJKL'

# Your Service Principal App ID
CLIENT = 'a2ab11af-01aa-4759-8345-7803287dbd39'

# Your Service Principal Password
KEY = 'password'

LOGIN_ENDPOINT = AZURE_PUBLIC_CLOUD.endpoints.active_directory
RESOURCE = AZURE_PUBLIC_CLOUD.endpoints.active_directory_resource_id

context = adal.AuthenticationContext(LOGIN_ENDPOINT + '/' + TENANT_ID)
credentials = AdalAuthentication(
    context.acquire_token_with_client_credentials,
    RESOURCE,
    CLIENT,
    KEY
)

Подробнее см. По этой ссылке: Аутентификация с помощью библиотек управления Azure для Python .

Если у вас нет приложения AD, перейдите по этой ссылке , чтобы создать его. Чтобы получить идентификатор клиента (идентификатор клиента совпадает с идентификатором приложения) и ключ, перейдите по этой ссылке .

0
ответ дан Joy Wang 17 March 2019 в 22:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: