使用代码在 Azure Synapse 上发布按钮

Publish button on Azure Synapse using code

大家好,我目前正在使用 Azure Synapse 工作室。我的情况可以这样描述:

我有 3 个环境:Dev、Test 和 Prod,它们每个都有一个 Azure 突触工作区,但我只能访问 Dev 一个。我还需要从 Dev 对其他 2 个环境(sql 脚本、管道等)进行一些更改,然后将它们发布到其他环境而不触及它们。 所以我认为 Azure DevOps 可以成为解决方案。 在 Dev Syanapse studio Workspace 中,我为每个环境创建了 3 个分支 1,所有分支都链接到 Azure DevOps 存储库。 Test 和 Prod 也链接到同一个 repo。 问题是 Test 和 Prod 工作区上的代码可能与 Dev 上的代码不同。所以我不能对所有 3 环境使用相同的 ARM 模板(通过在工作区的发布分支上发布生成)。一个好方法是找到一种方法在不使用门户的情况下也在其他环境中点击 publish button ,例如通过 REST API ?有可能吗?

现在我只设置了 3 分支解决方案,所以我可以直接从 Dev env magae 3 env,但我认为这不是正确的解决方案,更改是否应用于其他 envs?我可以从其他环境手动 运行 SQL 脚本或管道吗? This is my current situation 在其他 envs 上,我要求设置协作并发布与 env 分支名称具有相同值的分支(test-test-test 和 prod-prod-prod)

实现此目的的唯一标准选项是创建 GitHub 存储库,然后创建持续集成并创建 self-hosted Azure DevOps VM 代理或使用 Azure DevOps 托管代理。

然后您可以在 Azure DevOps 中设置发布管道以适应不同的环境。但是您仍然需要为每个环境提交 GitHub 存储库中的更改,没有可用的发布按钮。

参考Continuous integration and delivery for an Azure Synapse Analytics workspace了解更多详情。

我直接与 Microsoft 合作,自己为一家大公司构建 Synapse 仓库。我们有同样的问题,因为必须手动按下发布按钮才能生成 ARM 模板。微软已经确认目前没有可用的自动方法;我们曾希望本月收到预览版 AzDevOps 部署任务,但事实证明它只是允许我们验证 JSON 资产——它仍然使用 ARM 模板进行部署。

我们还研究了使用 Azure 数据工厂工具从 JSON 组件文件进行部署,但我们 运行 遇到了不支持专用池存储过程任务的问题。 :(