如何使用ARM模板为注释创建Application Insights API密钥

时间:2019-12-19 10:25:04

标签: azure azure-application-insights azure-resource-manager arm-template

我正在尝试从ARM模板创建Application Insights API密钥。我需要具有在资源部署期间创建的用于编写注释的API密钥,才能使发行注释在从Azure Devops进行应用程序部署期间正常工作。

我试图找到有关如何使其工作的信息,但是我只能找到有关如何使用PowerShell或Azure REST API创建密钥的示例。

我需要开始的工作是使用ARM模板创建API密钥。 我已经尝试过很多类似的尝试,但都没有成功;

 {
  "name": "[variables('applicationInsightsName')]",
  "type": "Microsoft.Insights/components",
  "location": "[resourceGroup().location]",
  "apiVersion": "2014-04-01",
  "tags": {
    "displayName": "[concat('Component ', variables('applicationInsightsName'))]"
  },
  "properties": {
    "applicationId": "[variables('applicationInsightsName')]"
  },
  "resources": [
    {
      "name": "action",
      "type": "apikeys",
      "location": "[resourceGroup().location]",
      "apiVersion": "2015-05-01",
      "properties": {
        "name": "Azure Devops Release Annotations",
        "linkedWriteProperties": [
          "[concat(resourceId('Microsoft.Insights/components', variables('applicationName')), '/annotations')]"
        ],
        "linkedReadProperties": []
      },
      "dependsOn": [
        "[resourceId('Microsoft.Insights/components', variables('applicationInsightsName'))]"
      ]
    }
  ]
}

到目前为止,我发现的最好的信息是this,但这并没有太大帮助。

是否可以使用ARM模板创建API密钥?

2 个答案:

答案 0 :(得分:0)

这是不可能的,ARM模板仅模仿PUT请求,而Microsoft.Insights/Components/ApiKeys/ActionPOST请求。

答案 1 :(得分:0)

我建议一种简单的方法。您可以使用参考值为 InstrumentationKey 的输出。然后,您可以在任何地方使用它:另一个资源,链接的模板,或者将输出用于Azure DevOps的下一步。

.required

我使用了很多次。