将 Azure 服务总线消息发送到 Blob 或 Azure 数据工厂
Send Azure Service Bus messages to Blob or Azure Data Factory
有人可以告诉我是否可以将 Azure 服务总线消息(尤其是服务总线队列)发送到 Azure 数据工厂或 Blob 存储。
根据以下内容link,没有用于带有 ADF 的服务总线的连接器。但是,它确实声明可以将消息发送到 Blob Store。但不幸的是,我找不到任何关于如何将消息发送到 blob 存储的信息。
有没有人遇到任何 links?
如果您希望将 Azure 服务总线转变为存储 Blob,这可能很容易实现。您需要一个服务总线触发器来检索消息负载及其 ID 以用作 blob 名称,使用您想要的任何机制存储负载(消息正文)。可以使用 Storage SDK 将内容写入 blob。或具有随机 blob 名称的 blob 输出绑定。或者消息 ID 作为 blob 名称。下面是一个函数示例,该函数将由服务总线队列中名为 myqueue
的新消息触发,并将在 messages
容器中生成以消息 ID 命名的 blob。
In-process SDK
public static class MessageTriggeredFunction
{
[FunctionName(nameof(MessageTriggeredFunction))]
public static async Task Run(
[ServiceBusTrigger("myqueue", Connection = "ServiceBusConnectionString")]string payload,
string messageId,
[Blob("messages/{messageId}.txt", FileAccess.Write, Connection = "StorageAccountConnectionString")] Stream output)
{
await output.WriteAsync(Encoding.UTF8.GetBytes(payload));
}
}
独立工作者 SDK
public class MessageTriggeredFunctionIsolated
{
[Function(nameof(MessageTriggeredFunctionIsolated))]
[BlobOutput("messages/{messageId}.txt", Connection = "StorageAccountConnectionString")]
public string Run(
[ServiceBusTrigger("myqueue", Connection = "ServiceBusConnectionString")] string payload,
string messageId)
{
return payload;
}
}
有人可以告诉我是否可以将 Azure 服务总线消息(尤其是服务总线队列)发送到 Azure 数据工厂或 Blob 存储。
根据以下内容link,没有用于带有 ADF 的服务总线的连接器。但是,它确实声明可以将消息发送到 Blob Store。但不幸的是,我找不到任何关于如何将消息发送到 blob 存储的信息。
有没有人遇到任何 links?
如果您希望将 Azure 服务总线转变为存储 Blob,这可能很容易实现。您需要一个服务总线触发器来检索消息负载及其 ID 以用作 blob 名称,使用您想要的任何机制存储负载(消息正文)。可以使用 Storage SDK 将内容写入 blob。或具有随机 blob 名称的 blob 输出绑定。或者消息 ID 作为 blob 名称。下面是一个函数示例,该函数将由服务总线队列中名为 myqueue
的新消息触发,并将在 messages
容器中生成以消息 ID 命名的 blob。
In-process SDK
public static class MessageTriggeredFunction
{
[FunctionName(nameof(MessageTriggeredFunction))]
public static async Task Run(
[ServiceBusTrigger("myqueue", Connection = "ServiceBusConnectionString")]string payload,
string messageId,
[Blob("messages/{messageId}.txt", FileAccess.Write, Connection = "StorageAccountConnectionString")] Stream output)
{
await output.WriteAsync(Encoding.UTF8.GetBytes(payload));
}
}
独立工作者 SDK
public class MessageTriggeredFunctionIsolated
{
[Function(nameof(MessageTriggeredFunctionIsolated))]
[BlobOutput("messages/{messageId}.txt", Connection = "StorageAccountConnectionString")]
public string Run(
[ServiceBusTrigger("myqueue", Connection = "ServiceBusConnectionString")] string payload,
string messageId)
{
return payload;
}
}