使用Python Azure CLI将管道变量发布到popen命令中



我目前的问题是,我正在使用python和HTML创建一个应用程序,以使用HTML表单收集数据,然后将数据转换为python中的变量,然后使用子进程POPEN向Azure租户发送Azure CLI命令。当我将以下代码用于该命令时,它将返回一个错误。

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

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-string:

f"az storage account create -n {name} -g {resourcegroup} --subscription {subscription} -l {location} --sku {sku}"

最新更新