# Microsoft.Azure.WebJobs.Extensions.Storage：'AzureWebJobsStorage' 的值缺失或为空。请设置此应用程序设置。

- **ID:** `cloud/azure-function-storage-account-missing`
- **领域:** cloud
- **类别:** config_error
- **验证级别:** ai_generated
- **修复率:** 95%

## 根因

Azure Functions 需要在 AzureWebJobsStorage 应用设置中提供存储帐户连接字符串，用于触发器和状态管理等内部操作。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| Azure Functions Runtime 4.x | active | — | — |
| Azure Functions Core Tools 4.0.5907 | active | — | — |

## 解决方案

1. ```
   在 Azure 门户或通过 CLI 设置 AzureWebJobsStorage 应用设置：az functionapp config appsettings set --name <function-app> --resource-group <rg> --settings AzureWebJobsStorage="DefaultEndpointsProtocol=https;AccountName=<storage-account>;AccountKey=<key>;EndpointSuffix=core.windows.net"
   ```
2. ```
   本地开发时，将连接字符串添加到 local.settings.json：{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true" } } 并确保 Azure 存储模拟器或 Azurite 正在运行。
   ```
3. ```
   使用托管标识代替连接字符串：设置 AzureWebJobsStorage__accountName=<storage-account> 并为函数应用的托管标识分配 'Storage Blob Data Contributor' 和 'Storage Queue Data Contributor' 角色。
   ```

## 无效尝试

- **** — Setting AzureWebJobsStorage to a non-existent storage account name causes a different error later. (90% 失败率)
- **** — Using a SAS token without proper permissions (e.g., missing Table/Queue service) leads to '403 Forbidden' on runtime start. (85% 失败率)
- **** — Disabling the Storage extension in host.json is not supported and breaks triggers. (100% 失败率)
