【问题标题】:Is it possible to create a public queue in Windows Azure?是否可以在 Windows Azure 中创建公共队列?
【发布时间】:2011-06-16 10:38:03
【问题描述】:

在 Windows Azure 中,可以创建公共 Blob 容器。匿名客户端可以通过 REST API 访问这样的容器。

是否也可以创建可公开访问的队列?

documentation for the Create Container operation 解释了如何为 Blob 容器指定公共访问级别(使用 x-ms-blob-public-access HTTP 标头)。但是,documentation for the Create Queue operation 没有列出类似的选项,这让我相信这是不可能的 - 但我真的很想得到纠正:)

【问题讨论】:

    标签: azure azure-storage azure-queues


    【解决方案1】:

    目前,无法公开 Azure 队列。

    正如您所指出的,这种“隐私”是通过要求在 RE: 中对队列进行的所有存储 API 调用来强制执行的,以使用来自您的密钥的签名请求进行身份验证。没有类似于 blob 存储中的公共容器的“公共”概念。

    这将遵循最佳实践,即使在云中,您也不希望将基础架构的内部结构暴露给外部世界。如果您想实现此功能,您可以在队列顶部公开一个非常薄/简单的“层”应用程序。 Web 角色中的简单 WCF REST 应用程序可以向您的消费者公开排队操作,但在内部处理 api 请求的签名,因此您不需要公开队列。

    【讨论】:

    • 是的,但是仅出于身份验证的目的而运行一层薄薄的 Web 角色是浪费金钱(您知道,计算实例需要花钱)。如果您可以直接发布到队列中,而不是从中读取,那会好得多。这相当于访问一个公开的网站。
    • 请记住,您可以在任何地方托管该 WCF REST 应用程序,包括在 Azure 中处理队列的辅助角色,从而避免您创建另一个角色(和其他实例)。然后,您可以根据需要扩大您的工作人员角色,但希望您可以通过与队列处理代码一起运行的托管薄层实现规模经济。
    【解决方案2】:

    您是对的,Azure 存储队列不会像 blob (Uris) 那样公开访问。但是,您仍然可以使用 appfabric 服务总线实现可公开使用的消息传递基础架构。

    【讨论】:

      【解决方案3】:

      我认为最好的选择是设置一个工作角色并以这种方式公开提供对队列的访问权限。可能使用 AppFabric 服务总线实现与外部源的额外连接/交互。

      ?否则 - 不太清楚范围可能是什么。此时队列本身似乎已被锁定。 :(

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-21
        • 2019-01-16
        • 2021-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多