【问题标题】:Azure Logic App Create Blob gives Http 404 Object reference not set to an instance of an objectAzure Logic App Create Blob 提供 Http 404 Object reference not set to an object of an instance
【发布时间】:2017-01-08 09:41:48
【问题描述】:

我在尝试在现有存储帐户/容器中创建 blob 文件时遇到严重问题。

为了缩小问题范围,我将 blob 的内容强制为固定字符串(我有另一个示例,它适用于固定字符串)。我看不出我的连接有什么问题,因为访问策略是“容器”(为所有人和所有事物敞开大门),而且我很确定我使用的是正确的密钥(已经尝试过 azure 提供的两个密钥)。

我什至使用 c# 控制台应用程序和 Microsoft Azure 存储资源管理器进行了测试,并且都可以正常工作。

我的逻辑应用的简单示意图

  1. *收到 HTTP 请求时
  2. *解码 AS2 消息
  3. *需要检查 MDN [如果是,请转到 4,否则 6]
  4. *检查 MDN 类型 [如果是,请转到 5,否则 6]
  5. *响应
  6. 响应
  7. *创建文件 [结束逻辑应用]
  8. 响应 [结束逻辑应用]

注意:带有的步骤是运行的,其他的被跳过

【问题讨论】:

  • 我无法从上面的内容中判断您是否包含帐户访问密钥(但您不在这里包含它是对的)。看起来它在对话框中是必需的,所以我猜你做到了。但是,“容器”公共访问设置仅用于读取访问。为了写入容器,您必须使用帐户访问密钥或使用共享访问签名。
  • 这只是一个澄清。我不确定它会解决你的问题。您能否为此添加标签,以便 Azure 逻辑应用人员也能看到?
  • 我可以重现这个问题。请更正文件名。
  • 嗨@Tamra,您确定容器选项仅供阅读吗?使用此选项,我可以使用自定义 c# 项目(我只提供容器名称和密钥)发送文件。此外,在另一个示例中,它适用于这种配置。

标签: azure azure-blob-storage azure-logic-apps


【解决方案1】:

blob 名称不能包含“


你可以用这个

@substring('blobname with ',1,sub(length('blobname with '),2))

或者只是使用 guid 函数来获取一个唯一的文件名,内容可以是 AS2MessageId

@guid()

来自LogicApp WDL 的函数来实现这一点。

【讨论】:

  • 嗨@TusharJ。您知道如何访问子字符串中的 AS2MessageId 吗?我正在尝试以下 @substring(string(@{body('Decode_AS2_message')?['AS2Message']?['AS2MessageId']}),1 .... 但它给了我一个错误说@(之前正文)无效。
  • @FEST 尝试在您的表达式中仅使用 1 个符号“@”。
  • 抱歉耽搁了。只有第一个 @ 会引发错误
猜你喜欢
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
  • 2012-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多