Azure 函数应用的 listKeys
listKeys for Azure function app
如何使用 listKeys ARM 函数列出 azure 函数应用程序的键?
我的模板:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [],
"outputs": {
"referenceOutput": {
"type": "object",
"value": "[listkeys(resourceId('Microsoft.Web/sites/functions', 'my-function-app','my-function'),'2016-08-01').key]"
}
}
然后 运行 与:
az group deployment create -g my-rg --template-file ./arm.json --mode incremental
错误:
No route registered for '/api/functions/my-function/listkeys?api-version=2016-08-01'
试试下面的模板。
"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]"
}
}
有关此的更多信息,请参阅此 。
您也可以使用 Function App Api 来列出它。
GET /admin/functions/{functionname}/keys
如果你使用bash shell,你可以使用下面的例子。
TENANT=""
CLIENT_ID=""
CLIENT_SECRET=""
SUBSCRIPTION_ID=""
RESOURCE_GROUP="shuiapp"
FUNCTION_APP_NAME="shuifunction"
API_URL="https://$FUNCTION_APP_NAME.scm.azurewebsites.net/api/functions/admin/token"
SITE_URL="https://$FUNCTION_APP_NAME.azurewebsites.net/admin/functions/HttpTriggerPowerShell1/keys"
### Grab a fresh bearer access token.
ACCESS_TOKEN=$(curl -s -X POST -F grant_type=client_credentials -F resource=https://management.azure.com/ -F client_id=$CLIENT_ID -F client_secret=$CLIENT_SECRET https://login.microsoftonline.com/$TENANT/oauth2/token | jq '.access_token' -r)
### Grab the publish data for the Funciton App and output it to an XML file.
PUBLISH_DATA=$(curl -s -X POST -H "Content-Length: 0" -H "Authorization: Bearer $ACCESS_TOKEN" https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Web/sites/$FUNCTION_APP_NAME/publishxml?api-version=2016-08-01)
echo $PUBLISH_DATA > publish_data.xml
### Grab the Kudu username and password from the publish data XML file.
USER_NAME=$(xmlstarlet sel -t -v "//publishProfile[@profileName='$FUNCTION_APP_NAME - Web Deploy']/@userName" publish_data.xml)
USER_PASSWORD=$(xmlstarlet sel -t -v "//publishProfile[@profileName='$FUNCTION_APP_NAME - Web Deploy']/@userPWD" publish_data.xml)
### Generate a JWT that can be used with the Functions Key API.
JWT=$(curl -s -X GET -u $USER_NAME:$USER_PASSWORD $API_URL | tr -d '"')
### Grab the '_master' key from the Functions Key API.
KEY=$(curl -s -X GET -H "Authorization: Bearer $JWT" $SITE_URL | jq -r '.value')
根据 Azure Wiki 上的公告,这种检索密钥的方法现在似乎是一个问题。
我很幸运地使用了一个脚本版本,该版本是围绕与此类似的调用构建的:
az rest --method post --uri "/subscriptions/%subscriptionId%/resourceGroups/%resourceGroup%/providers/Microsoft.Web/sites/%webAppName%/host/default/listKeys?api-version=2018-11-01" --query functionKeys.default --output tsv
我从中获得此信息的原始博客 post 是 here。
这个问题有点老,作者要求用ARM模板找回功能键。尽管我的解决方案不使用 ARM 模板,但我发现只要您使用 Azure DevOps 帐户登录,Microsoft 的这项服务就有助于检索您的功能键。
https://docs.microsoft.com/en-us/rest/api/appservice/web-apps/list-function-keys
如果您需要主机密钥,可以使用此其他服务:
https://docs.microsoft.com/en-us/rest/api/appservice/web-apps/list-host-keys
如何使用 listKeys ARM 函数列出 azure 函数应用程序的键?
我的模板:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [],
"outputs": {
"referenceOutput": {
"type": "object",
"value": "[listkeys(resourceId('Microsoft.Web/sites/functions', 'my-function-app','my-function'),'2016-08-01').key]"
}
}
然后 运行 与:
az group deployment create -g my-rg --template-file ./arm.json --mode incremental
错误:
No route registered for '/api/functions/my-function/listkeys?api-version=2016-08-01'
试试下面的模板。
"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]"
}
}
有关此的更多信息,请参阅此
您也可以使用 Function App Api 来列出它。
GET /admin/functions/{functionname}/keys
如果你使用bash shell,你可以使用下面的例子。
TENANT=""
CLIENT_ID=""
CLIENT_SECRET=""
SUBSCRIPTION_ID=""
RESOURCE_GROUP="shuiapp"
FUNCTION_APP_NAME="shuifunction"
API_URL="https://$FUNCTION_APP_NAME.scm.azurewebsites.net/api/functions/admin/token"
SITE_URL="https://$FUNCTION_APP_NAME.azurewebsites.net/admin/functions/HttpTriggerPowerShell1/keys"
### Grab a fresh bearer access token.
ACCESS_TOKEN=$(curl -s -X POST -F grant_type=client_credentials -F resource=https://management.azure.com/ -F client_id=$CLIENT_ID -F client_secret=$CLIENT_SECRET https://login.microsoftonline.com/$TENANT/oauth2/token | jq '.access_token' -r)
### Grab the publish data for the Funciton App and output it to an XML file.
PUBLISH_DATA=$(curl -s -X POST -H "Content-Length: 0" -H "Authorization: Bearer $ACCESS_TOKEN" https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.Web/sites/$FUNCTION_APP_NAME/publishxml?api-version=2016-08-01)
echo $PUBLISH_DATA > publish_data.xml
### Grab the Kudu username and password from the publish data XML file.
USER_NAME=$(xmlstarlet sel -t -v "//publishProfile[@profileName='$FUNCTION_APP_NAME - Web Deploy']/@userName" publish_data.xml)
USER_PASSWORD=$(xmlstarlet sel -t -v "//publishProfile[@profileName='$FUNCTION_APP_NAME - Web Deploy']/@userPWD" publish_data.xml)
### Generate a JWT that can be used with the Functions Key API.
JWT=$(curl -s -X GET -u $USER_NAME:$USER_PASSWORD $API_URL | tr -d '"')
### Grab the '_master' key from the Functions Key API.
KEY=$(curl -s -X GET -H "Authorization: Bearer $JWT" $SITE_URL | jq -r '.value')
根据 Azure Wiki 上的公告,这种检索密钥的方法现在似乎是一个问题。
我很幸运地使用了一个脚本版本,该版本是围绕与此类似的调用构建的:
az rest --method post --uri "/subscriptions/%subscriptionId%/resourceGroups/%resourceGroup%/providers/Microsoft.Web/sites/%webAppName%/host/default/listKeys?api-version=2018-11-01" --query functionKeys.default --output tsv
我从中获得此信息的原始博客 post 是 here。
这个问题有点老,作者要求用ARM模板找回功能键。尽管我的解决方案不使用 ARM 模板,但我发现只要您使用 Azure DevOps 帐户登录,Microsoft 的这项服务就有助于检索您的功能键。
https://docs.microsoft.com/en-us/rest/api/appservice/web-apps/list-function-keys
如果您需要主机密钥,可以使用此其他服务:
https://docs.microsoft.com/en-us/rest/api/appservice/web-apps/list-host-keys