gpt4 book ai didi

Azure 数据工厂 - 在存储事件触发器中使用 typeProperties 参数

转载 作者:行者123 更新时间:2023-12-02 23:58:57 24 4
gpt4 key购买 nike

我在 typeProperty“blobPathBeginsWith”的存储事件触发器中使用参数时遇到问题。默认情况下,使用存储事件触发器时,typeProperty“范围”出现在 ARMTemplateParamtersForFactory.json 中,并且可以在不同环境的 CI/CD 流程中正确设置。

但是,当我使用从 Power Apps 到 Data Lake 的标准集成“导出到数据湖”时,Data Lake 中的容器名称会根据环境而有所不同(且无法更改)。例如

<表类=“s-表”><标题>环境容器名称 <正文>开发dataverse-researchdwhd-xxx1测试dataverse-researchdwhd-xxx2

现在,当我创建存储事件触发器并手动填写所有必需信息(包括订阅、存储帐户名称、容器名称、blob 路径开头和结尾)时,将自动创建以下 typeProperties:

        "typeProperties": {
"blobPathBeginsWith": "/dataverse-researchdwhd-xxx1/blobs/apss_project/Snapshot",
"blobPathEndsWith": ".csv",
"ignoreEmptyBlobs": true,
"scope": "/subscriptions/6fxxxb5a/resourceGroups/rdwh-dev/providers/Microsoft.Storage/storageAccounts/datalakerdwhdev",
"events": [
"Microsoft.Storage.BlobCreated"
]
}

发布触发器后,ARMTemplateParametersForFactory.json 中提供以下参数,因此可以在发布管道中进行设置。

        "trigger_snapshot_project_properties_typeProperties_scope": {
"value": "/subscriptions/6fxxxb5a/resourceGroups/rdwh-dev/providers/Microsoft.Storage/storageAccounts/datalakerdwhdev"
}

在我的用例中,不仅 typeProperty“范围”与环境相关,而且 typeProperty“blobPathBeginsWith”也与环境相关,因为通过“导出到数据湖”集成自动创建的容器在​​所有环境中都具有唯一的名称。因此,我必须能够以某种方式参数化 typeProperty“范围”,以便可以根据部署的环境在发布管道中对其进行设置。

到目前为止我尝试过的:

创建了一个名为“container_name”的全局参数,并尝试手动更新触发器 json 以使用此全局参数。

"blobPathBeginsWith": "parameters('container_name')",

但是,无论参数仅包含容器名称(/dataverse-researchdwhd-xxx1/)还是整个以路径(/dataverse-researchdwhd-xxx1/blobs/apss_project/Snapshot/)开头,一旦我保存了json并在 UI 中打开触发器,消息“容器名称未以可接受的格式编写”出现在容器名称下拉列表下方。

根据 Microsoft 文档“存储事件触发器示例”( https://learn.microsoft.com/en-us/azure/data-factory/how-to-create-event-trigger ),格式应该是正确的,但似乎无法在触发器内引用全局参数。

除了“范围”之外,任何专家都可以引导我找到在触发器 json 中参数化 typeProperties 的正确方法吗?

提前致谢!

最佳答案

微软文档中描述了用例,我只是没有看正确的地方:https://learn.microsoft.com/en-us/azure/data-factory/continuous-integration-delivery-resource-manager-custom-parameters

在启用了 GIT 的 Azure 数据工厂中,您可以导航到“管理”>“ARM 模板”>“编辑参数配置”。

这将打开arm-template-parameters-definition.json,您可以在其中添加默认情况下未参数化的属性。对于我的用例,我添加了参数“blobPathBeginsWith”作为触发器的“typeProperties”:

"Microsoft.DataFactory/factories/triggers": {
"properties": {
"pipelines": [
{
"parameters": {
"*": "="
}
},
"pipelineReference.referenceName"
],
"pipeline": {
"parameters": {
"*": "="
}
},
"typeProperties": {
"scope": "=",
"blobPathBeginsWith": "="
}
}
}

发布更改后,这会自动更新 adf_publish-branch 中的文件“ARMTemplateParametersForFactory.json”,并为所有触发器添加一个新的参数模拟以下模式,然后可以在发布管道中使用该参数。

        "trigger_name_properties_typeProperties_blobPathBeginsWith": {
"value": "/container/blobs/folder/Snapshot"
}

关于Azure 数据工厂 - 在存储事件触发器中使用 typeProperties 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67569204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com