listKeys()

时间:2017-06-06 08:36:45

标签: azure-resource-manager azure-stream-analytics

我们正在尝试部署一个ARM模板,该模板根据输入参数部署具有 n 事件中心输出的Stream Analytics作业。 现在,除了listKeys()属性复制循环函数中的outputs函数之外,我们取得了成功,它获取了每个Event Hub的主键:

"sharedAccessPolicyKey": "[listKeys(resourceId('Microsoft.EventHub/namespaces/eventhubs/authorizationRules', variables('clientEventHubNamespace'), parameters('clients')[copyIndex('outputs')].id, variables('clientEventHubClientSharedAccessName')), '2015-08-01').primaryKey]"

我们收到错误:

  

17:44:31 - 错误:Code = InvalidTemplate; Message =部署模板   验证失败:'模板资源   第'129'行的'tailor-router-axgf7t3gtspue'和第'10'列不是   有效:模板函数'copyIndex'不在此处   地点。该功能只能在具有副本的资源中使用   指定。有关使用详情,请参阅https://aka.ms/arm-copy。   有关用法,请参阅https://aka.ms/arm-template-expressions   的信息。'。

但是,如果我们将其更改为特定索引:

"sharedAccessPolicyKey": "[listKeys(resourceId('Microsoft.EventHub/namespaces/eventhubs/authorizationRules', variables('clientEventHubNamespace'), parameters('clients')[0].id, variables('clientEventHubClientSharedAccessName')), '2015-08-01').primaryKey]"

它有效。

copyIndex('propertyName')listKeys()支持的功能吗? 如果没有,是否有一种可以达到同样效果的解决方法?

亲切的问候,

尼克

Stream Analytics作业资源定义:

{
  "apiVersion": "2016-03-01",
  "type": "Microsoft.StreamAnalytics/StreamingJobs",
  "name": "[variables('routerStreamAnalyticsName')]",
  "location": "[variables('location')]",
  "dependsOn": [ "clientsEventHubCopy" ],
  "tags": {
    "boundedContext": "[variables('boundedContextName')]"
  },
  "properties": {
    "sku": {
      "name": "[parameters('routerStreamAnalyticsSkuTier')]"
    },
    "outputErrorPolicy": "drop",
    "eventsOutOfOrderPolicy": "adjust",
    "eventsOutOfOrderMaxDelayInSeconds": 0,
    "eventsLateArrivalMaxDelayInSeconds": 5,
    "dataLocale": "en-US",
    "compatibilityLevel": "1.0",
    "inputs": [
      {
        "name": "input0",
        "properties": {
          "type": "stream",
          "serialization": {
            "type": "Avro"
          },
          "datasource": {
            "type": "Microsoft.ServiceBus/EventHub",
            "properties": {
              "serviceBusNamespace": "[parameters('input0EventHubNamespace')]",
              "sharedAccessPolicyName": "[parameters('input0EventHubSharedAccessPolicyName')]",
              "sharedAccessPolicyKey": "[parameters('input0EventHubSharedAccessPolicyKey')]",
              "eventHubName": "[parameters('input0EventHubName')]"
            }
          }
        }
      }
    ],
    "transformation": {
      "name": "routing",
      "properties": {
        "streamingUnits": "[parameters('routerStreamAnalyticsSkuTier')]",
        "query": "omitted"
      }
    },
    "copy": [
      {
        "name": "outputs",
        "count": "[length(parameters('clients'))]",
        "input": {
          "name": "[parameters('clients')[copyIndex('outputs')].id]",
          "properties": {
            "datasource": {
              "type": "Microsoft.ServiceBus/EventHub",
              "properties": {
                "serviceBusNamespace": "[variables('clientEventHubNamespace')]",
                "sharedAccessPolicyName": "[variables('clientEventHubClientSharedAccessName')]",
                "sharedAccessPolicyKey": "[listKeys(resourceId('Microsoft.EventHub/namespaces/eventhubs/authorizationRules', variables('clientEventHubNamespace'), parameters('clients')[copyIndex('outputs')].id, variables('clientEventHubClientSharedAccessName')), '2015-08-01').primaryKey]",
                "eventHubName": "[parameters('clients')[copyIndex('outputs')].id]"
              }
            },
            "serialization": {
              "type": "Avro"
            }
          }
        }
      }
    ]
  }
},

1 个答案:

答案 0 :(得分:1)

感谢您举报并对此给您带来的不便表示歉意。 我刚刚和ARM团队谈过,当copyindex在索引标签内部时我们遇到了问题,例如'array [copyindex()]'。现在应该修复。

让我们知道它是怎么回事。

谢谢,

JS - Azure流分析