使用订阅在本地测试 Azure 服务总线队列
Test Azure Service Bus Queues Locally with a subscription
如何在本地测试 Azure 服务总线队列?
1.I 必须将我们的队列重命名为其他名称,因为一些其他开发人员或已经 运行 函数可能会使用它
Example:
a) Original Queue: Product
b) Test Queue: Test
2.We 也有 Azure 函数拾取队列,因此也重命名服务总线触发器。
但是,还是不行?
还有什么需要改的吗?
我看到队列消息是用服务总线资源管理器发送的,但它们不是事件句柄或响应我们的流程操作。
[FunctionName(nameof(TestAsync))]
public async Task TestRollAsync(
[ServiceBusTrigger("test", Connection = "ServiceBusConnection", IsSessionsEnabled = false)] Message sbMessage)
{
var cmessage = Encoding.UTF8.GetString(sbMessage.Body);
Test msg = null;
try
{
msg = JsonConvert.DeserializeObject<Test>(cmessage);
}
重命名队列不是最方便的方法,因为它需要在您提交代码时撤消更改,这就是 error-prone。更好的选择是使用 developer-specific Azure 服务总线命名空间,它可以使用 MSDN/company 帐户在标准层上进行配置。您可以根据需要在标准层上拥有任意数量的命名空间。当提供但未使用额外的命名空间时,除了每月 10 美元(或等值的货币)外,该服务不涉及任何费用。
使用每个开发人员的命名空间,您的代码保持 as-is,连接字符串(值)可以在本地的 settings.json
文件中更改,不应提交到存储库.这样队列名称和连接字符串名称保持不变,您可以在本地develop/debug
1.Rename 队列到其他东西,因为一些其他开发人员或已经 运行 功能可能会使用它。 (并且未设置 Azure 命名空间,如此处所列 )
示例:
a) 原始队列:产品
b) 测试队列:测试
2.We 也有 Azure 函数拾取队列,因此也重命名服务总线触发器。
[ServiceBusTrigger("test", Connection = "ServiceBusConnection", IsSessionsEnabled = false)] Message sbMessage)
{
3.Make 当然 Azure Functions 也在解决方案中 运行。
4.Create 一个 Azure 函数 local.settings.json
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet"
},
"Host": {
"LocalHttpPort": 7071,
"CORS": "*"
}
}
如何在本地测试 Azure 服务总线队列?
1.I 必须将我们的队列重命名为其他名称,因为一些其他开发人员或已经 运行 函数可能会使用它
Example:
a) Original Queue: Product
b) Test Queue: Test
2.We 也有 Azure 函数拾取队列,因此也重命名服务总线触发器。
但是,还是不行?
还有什么需要改的吗?
我看到队列消息是用服务总线资源管理器发送的,但它们不是事件句柄或响应我们的流程操作。
[FunctionName(nameof(TestAsync))]
public async Task TestRollAsync(
[ServiceBusTrigger("test", Connection = "ServiceBusConnection", IsSessionsEnabled = false)] Message sbMessage)
{
var cmessage = Encoding.UTF8.GetString(sbMessage.Body);
Test msg = null;
try
{
msg = JsonConvert.DeserializeObject<Test>(cmessage);
}
重命名队列不是最方便的方法,因为它需要在您提交代码时撤消更改,这就是 error-prone。更好的选择是使用 developer-specific Azure 服务总线命名空间,它可以使用 MSDN/company 帐户在标准层上进行配置。您可以根据需要在标准层上拥有任意数量的命名空间。当提供但未使用额外的命名空间时,除了每月 10 美元(或等值的货币)外,该服务不涉及任何费用。
使用每个开发人员的命名空间,您的代码保持 as-is,连接字符串(值)可以在本地的 settings.json
文件中更改,不应提交到存储库.这样队列名称和连接字符串名称保持不变,您可以在本地develop/debug
1.Rename 队列到其他东西,因为一些其他开发人员或已经 运行 功能可能会使用它。 (并且未设置 Azure 命名空间,如此处所列
示例:
a) 原始队列:产品
b) 测试队列:测试
2.We 也有 Azure 函数拾取队列,因此也重命名服务总线触发器。
[ServiceBusTrigger("test", Connection = "ServiceBusConnection", IsSessionsEnabled = false)] Message sbMessage)
{
3.Make 当然 Azure Functions 也在解决方案中 运行。
4.Create 一个 Azure 函数 local.settings.json
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet"
},
"Host": {
"LocalHttpPort": 7071,
"CORS": "*"
}
}