python - 如何将 storageaccount key 传递给 Linux VM?

标签 python linux azure azure-virtual-machine azure-resource-manager

我有一个创建 VM 和一些存储的 ARM 模板,然后在我的 VSTS 发布过程中运行一个存储在源代码管理中的安装脚本,该脚本在 Linux VM 上安装 Python 服务;所有这些都来自构建工件。这一切都很好,但是该服务需要读取作为 ARM 模板的一部分创建的存储帐户上的队列。

我知道模板中的 ListKeys 函数,但不确定如何使用它以某种方式将该信息传递给 Linux VM,以便我可以更新 Python 的脚本配置文件。

干杯。

最佳答案

如果我的理解是正确的,你可以使用 Azure Custom Script Extension来实现你的需要。您可以编写一个脚本来接收存储帐户名称和存储帐户 key 。您可以编写如下脚本:

#!/bin/sh
accountname=$1
accountkey=$2
...............

您可以使用以下脚本获取存储 key 并传递给您的脚本。

 {
      "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')), 
        },

      }

关于python - 如何将 storageaccount key 传递给 Linux VM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45044676/

相关文章:

azure - Terraform 如何跳过 1 个工作区的参数

python - 使用 Python 从 JSON 获取值

python - 如何从日期中减去一天?

python - 从图的顶部到底部更改 matshow xticklabel 位置

python - 为什么 1//0.1 == 9.0?

python - CentOS 6.5 上的 mod_wsgi 错误

c - 如何检查消息是否传递到任何单个队列

Linux 上的 Java 服务 - 如何确保持续正常运行时间。守护进程、Shell 脚本还是 Wrapper?

azure - Windows Azure 云服务 : recover lost source code

facebook - Azure 逻辑应用程序 Facebook 连接器给出空响应