2017-04-06 64 views
1

我已經使用Arm模板部署了Azure函數。我需要功能密鑰&在Powershell中部署的Azure功能的主機密鑰。 目前,我想拿到鑰匙從ARM模板獲取Azure函數的函數和主鍵在Powershell中

"outputs": { 
"FunctionAppName": { 
    "type": "string", 
    "value": "[variables('functionAppName')]" 
}, 
"Key": { 
    "type": "string", 
    "value": "[listKeys(resourceId('Microsoft.Web/sites', '[variables('functionAppName')]'),'2015-08-01').keys]" 
} 

}的輸出部分

我嘗試了不同的組合,但它失敗。 有什麼方法可以在Powershell中檢索密鑰?

+0

是的。它拋出錯誤的請求作爲錯誤 –

回答

3

我得到它的工作通過以下:

"outputs": { 
    "FunctionAppName": { 
     "type": "string", 
     "value": "[parameters('functionName')]" 
    }, 
    "Key": { 
     "type": "string", 
     "value": "[listsecrets(resourceId('Microsoft.Web/sites/functions', parameters('existingFunctionAppName'), parameters('functionName')),'2015-08-01').key]" 
    },   
    "Url": { 
     "type": "string", 
     "value": "[listsecrets(resourceId('Microsoft.Web/sites/functions', parameters('existingFunctionAppName'), parameters('functionName')),'2015-08-01').trigger_url]" 
    }   
} 

我找不到任何的例子無論是。 但是,通過使用上述,在GitHub快速入門示例和resource functions的文檔以及一些試驗和錯誤,我把它拿出來。

請注意變量/參數和名稱已更改。

+0

謝謝。有用。做得好..! –

+0

ARM模板如何知道函數應用程序中存在哪些函數?如果代碼在ARM模板運行之後才部署(爲了將其部署到某處)? –

+0

@DanielEarwicker在函數的服務級別設置了一個「默認」主機級密鑰。這不會讓你回到個人功能的關鍵,只是普通的主機級別(適用於應用程序中的所有功能)。 – technophile

0

首先,你必須在你的語法錯誤:

"value": "[listKeys(resourceId('Microsoft.Web/sites', variables('functionAppName')),'2015-08-01').keys]" 

但不會幫助,我不認爲它對於Azure的功能實現的,我不是這肯定100% ,但我的努力以檢索鍵是徒勞

+0

我也試過,但沒有運氣。 –