You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure政府版Function App密钥操作遇内部服务器错误求助

解决Azure Government中Function App部署及密钥管理的问题

我来帮你一步步排查并解决在Azure Government环境中部署Function App遇到的两个核心问题:

问题回顾

你在部署HTTP触发的Function App时,先遇到了存储Endpoint解析错误:

There was a conflict. The remote name could not be resolved: 'sftestgovstorage.file.core.windows.net'
添加了带;EndpointSuffix=core.usgovcloudapi.net的WEBSITE_CONTENTAZUREFILECONNECTIONSTRING后,又出现了调用API创建/获取密钥时的Internal Server Error,使用的API代码和ARM模板已提供。


第一步:修复存储Endpoint配置(解决初始解析错误)

Azure Government的存储服务使用专属的Endpoint后缀core.usgovcloudapi.net,而你的ARM模板里的AzureWebJobsDashboard和AzureWebJobsStorage连接字符串没指定这个后缀,这是导致初始解析失败的根本原因。

修改ARM模板的存储连接字符串

需要给所有存储相关的连接字符串加上Government专属的Endpoint后缀,同时确保WEBSITE_CONTENTAZUREFILECONNECTIONSTRING也正确配置:

// 在Function App的appSettings数组中更新以下配置
{
    "name": "AzureWebJobsDashboard",
    "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', parameters('storageAccountName'), ';AccountKey=', listKeys(variables('storageAccountid'),'2015-05-01-preview').key1, ';EndpointSuffix=core.usgovcloudapi.net')]"
},
{
    "name": "AzureWebJobsStorage",
    "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', parameters('storageAccountName'), ';AccountKey=', listKeys(variables('storageAccountid'),'2015-05-01-preview').key1, ';EndpointSuffix=core.usgovcloudapi.net')]"
},
{
    "name": "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING",
    "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', parameters('storageAccountName'), ';AccountKey=', listKeys(variables('storageAccountid'),'2015-05-01-preview').key1, ';EndpointSuffix=core.usgovcloudapi.net')]"
}

修复ARM模板的语法小问题

你的模板变量里有多余空格,会导致解析错误,需要修正:

// 原变量(有多余空格)
"storageAccountid": " [concat(resourceGroup().id,'/providers/','Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]",
"storageApiVersion": " [providers('Microsoft.Storage','storageAccounts').apiVersions[0]]",
"ApplicationId": " [parameters('coreFunctionApp_applicationInsightsName')]"

// 修改后(去掉开头的空格)
"storageAccountid": "[concat(resourceGroup().id,'/providers/','Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]",
"storageApiVersion": "[providers('Microsoft.Storage','storageAccounts').apiVersions[0]]",
"ApplicationId": "[parameters('coreFunctionApp_applicationInsightsName')]"

第二步:解决密钥API调用的Internal Server Error

出现这个错误通常和Function App的后台依赖或API调用权限有关,按以下步骤排查:

  1. 确认Function App状态:
    先登录Azure Government门户,检查Function App是否处于运行状态,并且"平台功能"->"存储账户"能正常访问(验证存储连接配置正确)。

  2. 检查API调用的JWT Token权限:
    确保你的JWT Token拥有Microsoft.Web/sites/host/keys/read和Microsoft.Web/sites/host/keys/write的权限,并且Token的受众(audience)是Azure Government的ARM服务(https://management.usgovcloudapi.net/)。

  3. 验证API Endpoint正确性:
    你的API URL格式是对的(https://functionAppName.azurewebsites.us/admin/host/keys/{keyName}),但要确认functionAppName完全匹配部署后的Function App名称,没有拼写错误。


验证流程

  1. 重新部署修改后的ARM模板,确保所有资源成功创建。
  2. 在Azure Government门户中检查Function App的"配置"->"应用程序设置",确认所有存储连接字符串都包含EndpointSuffix=core.usgovcloudapi.net。
  3. 先通过门户手动创建一个函数密钥,验证是否能成功操作。
  4. 再次运行你的API调用代码,检查是否返回正常响应。

内容的提问来源于stack exchange,提问作者Ranjith Eswaran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 15:37:35