0

創建模板時,是否可以使用常量字符串連接數組的每個元素?以下是我創建的參數和我嘗試創建的資源。Arm模板:使用常量值連接數組中的每個元素

"parameters": { 

    "servicesNames": { 
     "type": "array", 
     "defaultValue": [ 
     "test-api-content", 
     "test-svc-content" 
     ] 
    } 
    } 

    { 
     "apiVersion": "2016-03-30", 
     "type": "Microsoft.Network/publicIPAddresses", 
     "name": "[concat(parameters('servicesNames'),'pip')]", 
     "location": "[resourceGroup().location]", 
     "copy": { 
     "name": "PIPaddresscopy", 
     "count": "[length(parameters('servicesNames'))]" 
     }, 
     "tags": { 
     "displayName": "PublicIPAddress" 
     } 
    } 

我想資源名稱的輸出與

「測試API-contentpip」

我如何過收到以下錯誤

創建

語言函數'concat'提供的參數無效。 或者都不參數必須是一個數組

請建議我如何可以連接元素的每個值

回答

1

只是添加到現有的答案(因爲它有點不清楚在我看來)。

你正在試圖用你的代碼做什麼 - 用數組連接數組,你需要做的是用數組連接數組的每個元素。

有一個copyIndex()函數代表循環的當前迭代。您可以使用array[number]訪問陣列的特定成員。所以

parameters('servicesNames')[copyIndex()] 

意味着你的情況parameters('servicesNames')[0]parameters('servicesNames')[1]。這實際上意味着你已經迭代了這個數組。

0

您可以通過修改你的屬性拼接元素的每個值的publicIpAddress資源如下。

"name": "[concat(parameters('servicesNames')[copyIndex()], 'pip')]", 

copyIndex

此功能總是與複製對象使用。

如果沒有提供偏移值,則返回當前迭代值。迭代值從零開始。

相關問題