Azure Durable Function:修改Azure存储模拟器端口的问题
修改Azure Durable Function对接自定义端口的存储模拟器
要让Durable Function访问你修改过端口的存储模拟器,核心是通过自定义存储连接字符串指定新端口,具体步骤如下:
1. 构造自定义端口的存储连接字符串
替换默认的UseDevelopmentStorage=true,改用明确指定端口的连接串格式,把Blob、Queue、Table的端口换成你设置的10003、10004、10005:
DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10003/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10004/devstoreaccount1;TableEndpoint=http://127.0.0.1:10005/devstoreaccount1;
注:账号devstoreaccount1和密钥是存储模拟器默认值,无需修改。
2. 更新Durable Function本地配置
打开项目根目录的local.settings.json,在Values节点下更新相关配置项:
- 如果项目没有单独配置Durable Task存储,只需更新
AzureWebJobsStorage - 如果配置了
DurableTaskStorage,需要同时更新该字段
示例配置:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10003/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10004/devstoreaccount1;TableEndpoint=http://127.0.0.1:10005/devstoreaccount1;", "FUNCTIONS_WORKER_RUNTIME": "dotnet", "DurableTaskStorage": "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10003/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10004/devstoreaccount1;TableEndpoint=http://127.0.0.1:10005/devstoreaccount1;" } }
3. 重启服务生效
- 关闭当前运行的Function宿主(VS调试进程或
func start命令窗口) - 重启Azure存储模拟器
- 重新启动Durable Function项目,配置即可生效
补充说明
- 不要使用
UseDevelopmentStorage=true,该值会强制指向默认端口,无法识别你修改后的模拟器配置 - 如果通过环境变量配置,直接将
AzureWebJobsStorage(和DurableTaskStorage)设置为上述连接串即可,效果与local.settings.json一致
内容的提问来源于stack exchange,提问作者Tarun Bhatt
相关产品推荐
相关产品推荐

