我创建了一个Azure数据工厂管道,它有多个管道参数,当管道触发时我需要一直输入这些参数。现在我想从本地系统中的邮递员触发这个管道,我需要将参数从post传递到管道.
你真的需要使用邮递员吗?我已经发布了使用 Powershell 和 Python 执行此操作的示例。
Powershell:如何使用 powershell 将参数传递给 ADF 管道
Python:https://gist.github.com/Gorgoras/1fe534fd9b454412f81c8203c773c483
如果您唯一的选择是使用其余 api,您可以阅读相关内容并在此处获取一些示例:https://learn.microsoft.com/en-us/azure/data-factory/quickstart-create-data-工厂休息 API
希望这有帮助!
Azure Docs 没有提供有关如何传递参数的示例,我觉得这很奇怪,在互联网上的其他地方我也没有找到如何通过 REST API 传递多个参数的示例,我猜大多数人使用 ADF shell 来触发它或python 脚本。
无论如何,如果其他人偶然发现了同样的问题,那么这就是解决方案(非常简单)。
首先,创建 Azure 应用程序注册并生成客户端 ID 和客户端密钥值。
通过 REST API 进行身份验证以获取 Bearer Token
curl --location --request POST 'https://login.microsoftonline.com/${TENANT_ID}/oauth2/token' \
--form 'grant_type="client_credentials"' \
--form 'client_id="${CLIENT_ID}"' \
--form 'client_secret="${CLIENT_SECRET_VALUE}"' \
--form 'resource="https://management.azure.com/"'
响应将包含一个 Bearer 令牌,用它来触发管道。替换订阅 ID、资源组名称和 adf 名称。
curl --location --request POST 'https://management.azure.com/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${RESOURCE_GROUP_NAME}/providers/Microsoft.DataFactory/factories/${ADF_NAME}/pipelines/trigger-pipeline-from-rest/createRun?api-version=2018-06-01' \
--header 'Authorization: Bearer ${BEARER_TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"date":"2022-08-22",
"param1":"param1 value",
"param2":"some-value"
}'
注意:应用程序应具有对 ADF 的贡献者访问权限才能触发管道。
您可以通过 API 管理中的策略触发 Azure 数据工厂。