我有一个创建VM和一些存储的ARM模板,然后在我的VSTS发布过程中,我运行一个存储在源控件中的安装脚本,该脚本在Linux VM上安装Python服务;所有这些都来自构建工件。这一切都很好,但服务需要读取作为ARM模板的一部分创建的存储帐户的队列。
我知道模板中的ListKeys功能,但不确定如何使用它以某种方式将该信息传递给Linux VM,以便我可以更新Python的脚本配置文件。
干杯。
答案 0 :(得分:1)
如果我的理解是正确的,您可以使用Azure Custom Script Extension来满足您的需求。您可以编写脚本来接收存储帐户名和存储帐户密钥。您可以编写如下脚本:
#!/bin/sh
accountname=$1
accountkey=$2
...............
您可以使用以下脚本获取存储密钥并传递给您的脚本。
{
"type": "Microsoft.Compute/virtualMachines/extensions",
"name": "[concat(variables('vmName'),'/', variables('extensionName'))]",
"apiVersion": "[variables('apiVersion')]",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', variables('vmName'))]"
],
"properties": {
"publisher": "Microsoft.Azure.Extensions",
"type": "CustomScript",
"typeHandlerVersion": "2.0",
"autoUpgradeMinorVersion": true,
"settings": {
"fileUris": "[split(parameters('fileUris'), ' ')]",
"commandToExecute": "[concat('sh ', parameters('scriptName'), ' ' ,parameters('StorageAccountName''), ' ', listKeys(concat('Microsoft.Storage/storageAccounts/', variables('StorageAccountName')),
},
}