开发团队中带有服务总线触发器的 Azure Functions V2
Azure Functions V2 With Service Bus Trigger in Development Team
我们有使用服务总线触发器创建的 Azure Functions (V2)。
[FunctionName("MyFunctionName")]
public static async Task Run(
[ServiceBusTrigger("%MyQueueName%", Connection = "ServiceBusConnectionString")]
byte[] messageBytes,
TraceWriter log)
{
// code to handle message
}
队列名称在local.settings.json
文件中定义:
{
"Values": {
...
"MyQueueName": "local-name-of-my-queue-in-azure",
...
}
}
这非常有效,因为在部署时我们可以将环境变量设置为 dev-queue-name
、live-queue-name
等,用于我们拥有的各种已部署环境。
但是,当本地连接多个开发者时,鉴于local.settings.json
文件在源代码管理中,需要妥善维护环境变量,那么本地功能应用程序运行器将全部连接到相同的队列,并且开发人员的应用程序将拾取和处理消息是随机的。
我们需要的是每个开发人员都有自己的队列,但我们不想从源代码管理中删除 JSON 配置文件,这样我们就可以维护一个不同的文件(因为它包含其他需要更新的信息)。
我们如何让每个开发人员/计算机 运行 我们的应用程序具有唯一的队列名称(但已知以便我们可以在云中创建服务总线队列)?
您可以通过环境变量覆盖设置值。指定为系统环境变量的设置优先于 local.settings.json
文件中的值。只需定义一个名为 MyQueueName
.
的环境变量
话虽如此,我认为通常不建议将 local.settings.json
提交给源代码管理。我想您还将服务总线连接字符串存储在那里,这意味着您将机密存储在源代码管理中。
请注意,默认 .gitignore
文件已将其列出。
如果您在源代码控制中需要它,我会提交一个 local.settings.json
版本,其中所有变量都带有假值,然后让每个开发人员在本地设置正确的值,然后在提交时忽略更改(设置assume-unchanged
).
我们有使用服务总线触发器创建的 Azure Functions (V2)。
[FunctionName("MyFunctionName")]
public static async Task Run(
[ServiceBusTrigger("%MyQueueName%", Connection = "ServiceBusConnectionString")]
byte[] messageBytes,
TraceWriter log)
{
// code to handle message
}
队列名称在local.settings.json
文件中定义:
{
"Values": {
...
"MyQueueName": "local-name-of-my-queue-in-azure",
...
}
}
这非常有效,因为在部署时我们可以将环境变量设置为 dev-queue-name
、live-queue-name
等,用于我们拥有的各种已部署环境。
但是,当本地连接多个开发者时,鉴于local.settings.json
文件在源代码管理中,需要妥善维护环境变量,那么本地功能应用程序运行器将全部连接到相同的队列,并且开发人员的应用程序将拾取和处理消息是随机的。
我们需要的是每个开发人员都有自己的队列,但我们不想从源代码管理中删除 JSON 配置文件,这样我们就可以维护一个不同的文件(因为它包含其他需要更新的信息)。
我们如何让每个开发人员/计算机 运行 我们的应用程序具有唯一的队列名称(但已知以便我们可以在云中创建服务总线队列)?
您可以通过环境变量覆盖设置值。指定为系统环境变量的设置优先于 local.settings.json
文件中的值。只需定义一个名为 MyQueueName
.
话虽如此,我认为通常不建议将 local.settings.json
提交给源代码管理。我想您还将服务总线连接字符串存储在那里,这意味着您将机密存储在源代码管理中。
请注意,默认 .gitignore
文件已将其列出。
如果您在源代码控制中需要它,我会提交一个 local.settings.json
版本,其中所有变量都带有假值,然后让每个开发人员在本地设置正确的值,然后在提交时忽略更改(设置assume-unchanged
).