ADF 管道表达式生成器 - 连接参数和函数

问题描述 投票:0回答:1

我需要帮助为我在 ADF 管道中构建的 REST API 连接编写正确的表达式。 我需要根据今天的日期动态更改 URL 中的created_since 和created_before 值以使其处于活动状态。我需要按过去两周进行过滤。

我试图通过在没有这两个值的情况下保持基本 URL 相同,然后在相对 URL 中添加一个表达式来更改这两个过滤器来实现此目的。

结果应该是这样的:

API.API.co.uk/api/get-clients/campaigns?限制=100&偏移={偏移}&created_since=2023-08-18%2007%3A29%3A25&created_before=2023-08-17%2008%3A29%3A25

这可以工作,因为我已经在 ADF 之外对其进行了测试,但是我需要自动更改值而不是硬编码。

我正在使用 Concat 函数来连接两个字符串参数和表达式生成器中可用的 UTCnow 函数,但它不喜欢它。

这是我的表达:

@concat(dataset().{created_before},formatDateTime(utcnow(),'yyyy-MM-dd HH:mm:ss'),dataset().{created_since},formatDateTime(addDays(utcnow(),-1),'yyyy-MM-dd HH:mm:ss'))

这是我设置的两个参数。 parameters

我还尝试了几种不同的方法,将变量直接添加到基本 URL 中,然后使用查询参数和普通参数来更改日期,但我也无法让这些方法工作。 有更好的方法吗?

azure azure-data-factory expression
1个回答
0
投票

API.API.co.uk/api/get-clients/campaigns?限制=100&偏移={偏移}&created_since=2023-08-18%2007%3A29%3A25&created_before=2023-08-17%2008%3A29%3A25

要获取这样的 URL,请按照以下方法操作。

首先为

created_since
created_before
创建数据集参数。

enter image description here

现在,在 URL 中使用这些参数。在这里,为了进行演示,我使用您的 URL,并使用相对 URL 中的数据集参数。

根据您的要求更改基本 URL 和相对 URL,但通过使用字符串插值在日期值处使用参数 (

@{<dataset parameter>}
)。

?limit=100&offset={offset}&created_since=@{dataset().created_since}%2007%3A29%3A25&created_before=@{dataset().created_before}%2008%3A29%3A25

enter image description here

现在,在复制活动中,它将询问数据集参数的值。在这里,使用 utc 函数给出日期。

在这里,为了演示,我给出了昨天的日期

created_before

@adddays(utcNow(),-1,'yyyy-MM-dd')

以及今天的日期

created_before

@utcNow('yyyy-MM-dd')

根据您的要求更改日期。

enter image description here

在这里,忽略我的复制活动失败,因为它不是有效的 URL。但你可以在错误中看到我得到了所需的 URL。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.