在 Powershell 函数应用程序中获取 Azure 存储帐户密钥

Get Azure Storage Account Key inside Powershell Function App

我正在尝试从同一资源组“rg-mobileplans”下的 Powershell 函数应用程序中获取存储帐户的密钥。

我确定我有正确的 Azure 上下文,并且在列出所有存储帐户时,我看到我正在尝试从中检索密钥的帐户 - “stmobileplansstaging”。

Write-Host ((Get-AzContext).Subscription)
Write-Host (Get-AzStorageAccount -ResourceGroupName rg-mobileplans).StorageAccountName

输出:

<Subscription ID Hidden for Privacy>
stmobileplansstaging storageaccountrgmob83d8

但是当我尝试获取密钥本身时,我收到一条错误消息,提示找不到存储帐户。

Get-AzStorageAccountKey -ResourceGroupName rg-mobileplans -AccountName stmobileplansstaging

输出:

ERROR: Get-AzStorageAccountKey : The Resource 'Microsoft.Storage/storageAccounts/stmobileplansstaging ' under resource group 'rg-mobileplans' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix

请记住,我 运行 这些命令来自 Function App。 运行 它们来自 Powershell 作品。

我已经为 Function App 创建了一个系统托管标识,并授予它对整个“rg-mobileplans”资源组和“stmobileplansstaging”存储帐户的“所有者”访问权限。

我错过了什么?

我才意识到问题出在哪里。在脚本中,存储帐户名称是通过标记给出的。该名称末尾有一个 space。当 运行 get / list storage account 命令时它没问题并且命令成功,因为帐户的名称可能在末尾,但是为了获取密钥,正在调用 POST 下面并且URL 看起来像“http://.../storage/stmobileplansstaging /rest-of-the-uri”。请注意 URI 中间的 space,它破坏了所有内容。