Введите переменные конвейера в команду popen с Python Azure CLI - PullRequest
0 голосов
/ 06 апреля 2020

Моя текущая проблема - я создаю приложение с python и HTML для использования форм HTML для сбора данных, которые затем превращаются в переменную в Python, а затем я использую подпроцесс POPEN для отправки Команда Azure CLI для azure арендатора. Когда я использую следующий код для команды, она возвращает ошибку.

Python Код

def storageaccountcreate():
    name = request.form['storageaccountname']
    resourcegroup = request.form['resourcegroup']
    subscription = request.form['subscriptionid']
    location = request.form['location']
    sku = request.form['sku']
    command = Popen("az storage account create -n name -g resourcegroup --subscription subscriptionid -l location --sku sku", shell=True ,stdout=subprocess.PIPE)
    text = command.stdout.read().decode("ascii") 
    print(text)
    with open("file.txt","w") as f:
        f.write(text)
    return redirect('/')

Ошибка

Subscription 'subscriptionid' not recognized.
az storage account create: 'sku' is not a valid value for '--sku'. See 'az storage account create --help'.

Я могу четко сказать, что он выглядит как обычный текст без каких-либо переменных. Как я могу добавить переменные в команду? Вот как команда должна выглядеть ниже при передаче на Azure.

az storage account create -n NameVariable -g ResourceGroupVariable --subscription SubscriptionIDVariable -l LocationVariable --sku SkuVariable

1 Ответ

0 голосов
/ 06 апреля 2020

Format ваша строка так:

"az storage account create -n {name} -g {resourcegroup} --subscription {subscriptionid} -l {location} --sku {sku}".format(name=name, resourcegroup=resourcegroup, subscriptionid=subcription, location=location, sku=sku)

Вы также можете использовать f-строки:

f"az storage account create -n {name} -g {resourcegroup} --subscription {subscription} -l {location} --sku {sku}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...