Azure Logic App HTTP操作授权失败

时间:2018-09-05 04:32:47

标签: azure http azure-logic-apps

因此,我试图为Logic App中的Blob设置一些自定义元数据。不幸的是,目前尚无能够在Blob上设置自定义数据的操作。

因此,作为一种解决方法,我尝试使用REST API设置元数据并配置以下操作(SharedKey的格式为StorageAccountName:AccessKey1):

Configuration of HTTP Action to set meta-data

因此,对于x-ms-date标头,我使用表达式utcNow(),但由于收到以下错误消息,因此似乎无法完成工作:

“ x-ms-date”:“ 2018-09-04T14:20:01.1767834Z”

  

AuthenticationFailed服务器无法验证请求。确保包括签名在内的Authorization标头的值正确形成。   RequestId:0c5c817f-101e-00b5-7c5a-44ca3c000000   时间:2018-09-04T14:20:01.2206329Z请求中的Date标头不正确。

奇怪的是,除了x-ms-date标头之外,日期标头似乎已经以正确的格式自动包含在内:

Output of the finished action

那么有人在这里看到错误吗(例如错误的utc-date表达式)?也许甚至不是错误的x-ms-date标头,而且我走在错误的轨道上。

2 个答案:

答案 0 :(得分:0)

问题可能与Authorization标头获得的最终值的格式有关。

看看this post on MSDN forums

答案 1 :(得分:0)

我遇到了一个silimar问题,并且想出了如何进行身份验证。也许您可以将其用于您的解决方案:

这对我有用:

  1. 在Logic App上启用了“托管身份”。

  2. 在存储队列上添加了Storage-Queue-Contributor权限。

  3. 使用utcnow('R')来获取此日期格式(“星期二,2020年9月8日12:03:08 GMT”)用于x-ms-date HTTP标头(MS对此没有相关文档)。

  4. 内部插入JSON数据

    <QueueMessage> 
        <MessageText>
        {
          "car": "Audi",
          "year": 1983
        }
       </MessageText>  
    </QueueMessage>
    

Logic App设计器中的最终结果: enter image description here