Получение ошибки при создании хранилища в Azure с помощью скрипта Python. Получение сообщения об ошибке «TypeError: __init __ () принимает ровно 1 аргумент (2 дано)» - PullRequest
0 голосов
/ 30 ноября 2018
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.storage import StorageManagementClient
from azure.mgmt.storage.models import StorageAccountCreateParameters
from azure.mgmt.storage.models import (
    StorageAccountCreateParameters,
    StorageAccountUpdateParameters,
    Sku,
    SkuName,
    Kind
)

#getting credentials
credentials = ServicePrincipalCredentials(clientid="",secret="",tenant="")

#storage
storage_client = StorageManagementClient(credentials, subscription_id)

#creating storage
storage_async_operation = storage_client.storage_accounts.create("testing345","testcode",StorageAccountCreateParameters(sku=Sku("standard_ragrs"),kind=Kind.storage,location='westus'))

Я получаю сообщение об ошибке типа «Ошибка типа: init () принимает ровно 1 аргумент (2 дано)»

1 Ответ

0 голосов
/ 30 ноября 2018

Вероятно, вы перешли с серии 1.x SDK на 2.x или более, поскольку этот синтаксис больше не разрешен:

Sku("standard_ragrs")

Начиная с версии 2.x, каждый аргумент должен использовать только синтаксис ключевого слова.:

Sku(name="standard_ragrs")

Эту информацию можно найти в журнале изменений на PyPI версии 2.0.0rc1: https://pypi.org/project/azure-mgmt-storage/

В частности, этот раздел

Модельподписи теперь используют только синтаксис ключевого слова-аргумента.Все позиционные аргументы должны быть переписаны как ключевые слова-аргументы.Чтобы сохранить автозаполнение в большинстве случаев, модели теперь создаются для Python 2 и Python 3. Python 3 использует синтаксис «*» для аргументов только для ключевых слов.

Чтобы исправить проблему, вам нужнозатем закрепить зависимости вашего приложения или обновить код для последних выпусков.

(я работаю в MS и владею этим кодом)

...