gpt4 book ai didi

Azure 事件中心 SAS token 不会过期

转载 作者:行者123 更新时间:2023-12-03 03:13:22 25 4
gpt4 key购买 nike

我创建了一个 Azure 事件中心 SAS token ,例如

let token =
SharedAccessSignatureTokenProvider.GetSharedAccessSignature(
"{myPolicyName}",
"{myPolicyKey}",
"https://{serviceBusName}.servicebus.windows.net/{eventHubName}/publishers/{publisherName}",
(TimeSpan(0, 0, 5)))

然后是 .NET SDK 的连接字符串:-

let connectionString =
ServiceBusConnectionStringBuilder.CreateUsingSharedAccessSignature(
Uri "sb://{serviceBusName}.servicebus.windows.net/",
"{eventHubName}",
"{publisherName}",
token)
EventHubSender.CreateFromConnectionString(connectionString).Send(myData)

但是,即使 5 秒过去了,我仍然可以使用 token 发送数据。

最佳答案

这是预期的。 Azure 服务总线服务基于 SaS token 的授权不支持 token 生命周期少于 5 分钟。这意味着, token 不保证在 5 分钟内过期。一般来说 - 机器之间的时钟偏差会改变这个问题的动态。

但是,为了实现上述场景,由于您将完全控制时钟 - 您可以发出 RevokePublisher 5 秒后调用 - 立即生效。使用该特定 PublisherID 的所有现有客户端都将被服务关闭。

这里的一个问题是 - 每个撤销发布者调用实际上都会向该事件中心的撤销列表添加一个条目。每个发送调用都会对该列表进行最佳比较 - 因此,请务必定期清理撤销列表 - 否则,如果变得非常大,将影响 EventHub 发送延迟。

在这种方法中 - 请记住,您正在使用第二个访问控制旋钮 - 即 Publisher 以及第一个 - SaSToken。无论 token 生命周期如何 - 一旦您对发布者调用撤销 - 来自该发布者的所有发送调用都将被拒绝。一旦 token 生命周期到期 - 删除已删除的发布者(以清理 ReplicationList)。

哈!斯雷

关于Azure 事件中心 SAS token 不会过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33874637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com