有没有一种方法可以在用户单击创建之前通过 ARM 模板为用户创建存储帐户?

Is there a way we can create a storage account for a user through ARM Templates before user clicks create?

我的部署模板中目前有存储帐户创建资源,但我需要用户提供的存储访问密钥。是否可以创建存储帐户并获取访问密钥?

此部署是在 Azure 门户上完成的。我目前正在使用自定义模板进行部署。

更新

我在 CreateUIDefinition 文件中有一个部分要求用户创建一个新的存储帐户,如下所示 screenshot of preview

现在,一旦我在验证后移至“查看 + 创建”选项卡并点击“创建”,就会创建此存储帐户。

但我需要用户正在创建的此存储帐户的访问密钥,以便我可以将其值存储到 Key Vault Secret 中供以后使用。

这可能吗?

如果您只是想确保您的存储帐户已创建,以便您可以通过以下方式获取其访问密钥:

[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value]

对于您的子序列资源,您可以通过 dependsOn 元素在您的 ARM 模板中定义其创建顺序。详情 see here.

更新:

如果您想先创建一个存储帐户,以便您可以获取其访问密钥并将其保存到密钥保管库,我认为您可以做 that.First 您应该定义您的密钥保管库是dependson Azure 存储帐户。因此将首先创建 Azure 存储帐户。基于 this doc,我们可以从第一个创建的 Azure 存储帐户读取访问密钥并将其保存到您的 Azure Key Vault 中。当然在 Microsoft.KeyVault/vaults/secrets 你还需要设置 :

"dependsOn": [
        "[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
      ]

以确保您的密钥保管库已创建。