如何使用脚本验证 Azure EventGrid API 连接?

How to authenticate an Azure EventGrid API Connection using a script?

我正在使用 ARM 模板创建 EventGrid API 连接。它已成功创建,但是,我仍然必须通过 Azure 门户手动对其进行身份验证。

这是我的 ARM 模板:

    "resources": [
    {
        "type": "Microsoft.Web/connections",
        "apiVersion": "2016-06-01",
        "name": "[parameters('azureEventGridConnectionAPIName')]",
        "location": "[resourceGroup().location]",
        "properties": {
            "api": {
                "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', resourceGroup().location, '/managedApis/', 'azureeventgrid')]"
            },
            "displayName": "[parameters('azureEventGridConnectionAPIName')]"
        },
        "dependsOn": []
    }
]
  1. 我是否遗漏了模板中负责立即验证连接的内容?

  2. 有没有办法使用 Azure PowerShell 来验证该连接,以便我可以自动执行该过程?

Am i missing something in the template that is responsible for authenticating the Connection right away?

是的,我们可以在部署期间创建服务主体身份验证。以下是演示代码。

"resources": [
    {
      "type": "Microsoft.Web/connections",
      "apiVersion": "2016-06-01",
      "name": "[parameters('azureEventGridConnectionAPIName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "api": {
          "id": "[concat('/subscriptions/subscriptionId', '/providers/Microsoft.Web/locations/', 'eastasia', '/managedApis/', 'azureeventgrid')]"

        },
        "parameterValues": {
          "token:clientId": "[parameters('clientId')]",
          "token:clientSecret": "[parameters('clientSecret')]",
          "token:TenantId": "[parameters('TenantId')]",
          "token:grantType": "[parameters('grantType')]"
        },
        "displayName": "[parameters('azureEventGridConnectionAPIName')]"

      },
      "dependsOn": []
    }
  ]

Parameters.json

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "azureEventGridConnectionAPIName": {
      "value": "azureEventGridConnectionAPIName"
    },
    "clientId": {
      "value": "clientId"
    },
    "clientSecret": {
      "value": "secret key"
    },
    "TenantId": {
      "value": "tenant id"
    },
    "grantType": {
      "value": "client_credentials"
    }
  }
}