【问题标题】:Azure Scheduler: Put Message to a Storage QueueAzure 调度程序:将消息放入存储队列
【发布时间】:2016-11-30 12:02:43
【问题描述】:

我正在 Azure 调度程序作业集合中创建一个作业。这个想法是在预定的时间将消息放入队列。我按照this 链接配置了 https 作业,但我被困在需要添加请求标头 x-ms-date(或日期)的点上,该请求头需要“不超过 15 分钟”根据 MS 文档。

我必须使用 https 操作类型,因为 Azure 调度程序门户不支持 ARM 创建的队列。虽然这可以使用 Scheduler SDK 来实现,但我们可能会选择它作为最后的手段。

请通过 Azure 门户告诉我这是否可行。

谢谢

【问题讨论】:

    标签: azure azure-storage-queues azure-scheduler


    【解决方案1】:

    您可以在至少具有Add 权限的队列上创建Shared Access Signature (SAS) 并使用该SAS URL,而不是使用队列URL。您可以使用如下 URL:

    https://{account-name}.queue.core.windows.net/{queue-name}/messages?messagettl=3600&se=2016-11-30T18%3A30%3A00Z&sp=raup&sv=2015-12-11&sig={sas-signature}
    

    您需要指定Content-Type 请求标头,您可以将其设置为application/xml

    完成此操作后,您应该会看到消息显示在队列中。

    【讨论】:

    • 谢谢。共享访问签名成功了。我还必须删除我放置的身份验证设置。这要简单得多。
    • 在另一个但并非完全不相关的注释上,您能否帮助我了解为什么 Azure 调度程序解析我在请求消息中传递的 XML 消息?例如,请求消息中的 Sample 作为“Sample”到达队列。我想要整个 xml 消息。提前非常感谢。
    • 消息正文应该是 XML 安全的。一种方法是将< 替换为<,将> 替换为>。所以消息内容是<a><b>Sample</b></a>。您可以这样做的其他方法是将消息正文转换为 base64 编码字符串并使用它。在接收器端,您需要解码编码的字符串。 HTH。
    • 它现在为我工作。我想知道为什么我提到的 Microsoft 文档中没有提到这一点。非常感谢。
    • 关于您对丢失文档的第一条评论,确实在docs.microsoft.com/en-us/rest/api/storageservices/fileservices/…To include markup in the message, the contents of the message must either be XML-escaped or Base64-encode. 中提到。关于您的第二条评论,这取决于您用于查看消息的工具。一些工具会假设消息总是经过 Base64 编码并总是转换它们(如果您发送未编码的文本,则会失败),而一些工具很聪明并且会进行转换。
    猜你喜欢
    • 2015-12-13
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    • 2011-02-11
    • 2014-01-28
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    相关资源
    最近更新 更多