1

我正在尝试使用逻辑应用从 Azure blob 存储中检索 csv 文件。我在参数中设置了天蓝色存储资源管理器路径,并在我使用该参数的获取 blob 内容操作中。 参数截图

在参数中,我将值设置为:

concat('Directory1/','Year=',string(int(substring(utcNow(),0,4))),'/Month=',string(int(substring(utcnow(),5,2))),'/Day=',string(int(substring(utcnow(),8,2))),'/myfile.csv')

因此,在运行时,此路径应形成为:

Directory1/Year=2019/Month=12/Day=30/myfile.csv

但在执行操作期间失败并出现以下错误消息

{
  "status": 400,
  "message": "The specifed resource name contains invalid characters.\r\nclientRequestId: 1e2791be-8efd-413d-831e-7e2cd89278ba",
  "error": {
    "message": "The specifed resource name contains invalid characters."
  },
  "source": "azureblob-we.azconn-we-01.p.azurewebsites.net"
}

所以我的问题是:如何编写从时间序列分区路径中获取数据的路径。

4

2 回答 2

1

Joy Wang 的回答是部分正确的。
逻辑应用中的参数将仅将值视为字符串,并且无法识别任何函数,例如 concat()。
使用 concat 函数的正确方法是使用表达式。

表情截图 我对这个问题的解决方案是:

concat('container1/','Directory1/','Year=',string(int(substring(utcNow(),0,4))),'/Month=',string(int(substring(utcnow(),5,2))),'/Day=',string(int(substring(utcnow(),8,2))),'/myfile.csv')
于 2020-01-02T06:28:56.237 回答
0

不能在参数中使用,当你在参数中使用这一行时concat('Directory1/','Year=',string(int(substring(utcNow(),0,4))),'/Month=',string(int(substring(utcnow(),5,2))),'/Day=',string(int(substring(utcnow(),8,2))),'/myfile.csv'),它的类型是String,逻辑应用会识别为String,然后函数不会生效。

并且您需要在 中包含容器名称concat(),也不需要使用string(int()), 因为utcNow()andsubstring()都返回String.

要解决此问题,请直接在Blob选项中使用下面的行,我的容器名称是container1.

concat('container1/','Directory1/','Year=',substring(utcNow(),0,4),'/Month=',substring(utcnow(),5,2),'/Day=',substring(utcnow(),8,2),'/myfile.csv')

在此处输入图像描述

在此处输入图像描述

更新:

如@Stark 的回答中所述,如果您想从左侧删除前导 0。

您可以将其从字符串转换为 int,然后将其转换回字符串。

concat('container1/','Directory1/','Year=',string(int(substring(utcNow(),0,4))),'/Month=',string(int(substring(utcnow(),5,2))),'/Day=',string(int(substring(utcnow(),8,2))),'/myfile.csv')
于 2020-01-01T10:15:41.683 回答