Get-AzureRmApplicationInsightsApiKey cmd返回空主键

时间:2019-05-23 05:32:08

标签: windows azure powershell azure-application-insights

我目前正在与AZURE Resources合作。目标是生成特定的资源API KEY并从powershell访问该密钥。

我先跑了

New-AzureRmApplicationInsightsApiKey -ResourceId {RID}

为我的资源生成API密钥。我手动检查了Azure门户,并且确实生成了密钥。

接下来我运行以下命令,以便从powershell中获取此API密钥。

Get-AzureRmApplicationInsightsApiKey -ResourceId {RID}

我得到了想要的结果(如下所示),但API KEY显示为空或空白。

ApiKey      : 

CreatedDate : Wed, 22 May 2019 23:36:40 GMT

Id          : 7c4c61dc-b392-4aa4-992f-ee92b84e5dee

Permissions : {ReadTelemetry}

Description : test1

我可以访问API密钥及其信息,但没有看到为实际密钥定义的任何内容,它显示为空白。 Microsoft文档似乎显示了相同的结果,但是我还没有找到显示键值的方法。

我需要弄清楚如何发现和访问此键值。我想将此密钥存储在一个对象中以供访问。

执行以下操作时,键的值为空。

$apikeyinfo= Get-AzApplicationInsightsApiKey -ResourceId {RID} 

$apikey = $apikeyinfo.ApiKey

1 个答案:

答案 0 :(得分:0)

我可以重现您的问题。创建密钥后似乎无法获取密钥。如果您在门户中创建密钥,则会发现以下内容。 Azure将不会存储密钥,在关闭此刀片之后,您将无法再次看到它。

enter image description here

此外,它在official doc中也有提及。

enter image description here

因此,您的解决方法是在创建apikey时存储它,例如Out-File

$apikey = New-AzureRmApplicationInsightsApiKey -ResourceGroupName "joywebapp" -Name "joyinsight" -Description "testapiKey1" -Permissions @("ReadTelemetry", "WriteAnnotations")
$apikey.ApiKey | Out-File "C:\Users\joyw\Desktop\apikey.txt"

或者您可以直接存储对象,然后在需要再次使用它时将其导入。

$apikey = New-AzureRmApplicationInsightsApiKey -ResourceGroupName "joywebapp" -Name "joyinsight" -Description "testapiKey2" -Permissions @("ReadTelemetry", "WriteAnnotations")
$apikey | Export-Csv "C:\Users\joyw\Desktop\apikey1.csv"

$key = Import-Csv "C:\Users\joyw\Desktop\apikey1.csv"
$key.ApiKey

此外,如果要将密钥存储在本地,我建议您将其存储在azure密钥库中,然后可以在密钥库中检索密钥,更多详细信息,请参见{{3 }}。