我们正在尝试使用此处提供的文档设置DevOps的CI/部署:https://learn.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment。我们使用的是在部署前已在目标环境中设置的共享IR。
如果部署模式设置设置为仅验证,则发布成功;如果选择增量或完整,则发布失败。使用覆盖模板参数时,会出现以下错误:
2018年9月21日T17:07:43.2936188Z ##[错误]请求错误:{
“错误”:{
“代码”:“错误请求”,
“message”:“无法加密子资源有效负载
6条答案
按热度按时间lvjbypge1#
请确保您的共享IR在进行部署时处于联机状态,否则您可能会遇到此问题,因为自托管IR将用于加密您的负载。
如果您确认上述操作已完成,但仍然存在此错误,请将请求活动ID共享给我们,以便我们进行进一步调查。
rta7y2nd2#
确保你已经为你正在使用的任何链接服务在你的参数JSON中输入了正确的连接字符串。这为我修复了这个错误,尽管我没有一个完整的CI/CD环境和IR。
mo49yndu3#
我可以使用Azure密钥库解决它。
我将连接字符串添加为Secret。在连接字符串中,我还包含了身份验证数据(用户名和密码)。
这种方法的局限性在于无法传递参数。例如:动态值,如数据库或用户的名称。
oiopk7p54#
我会请求您查看已附加IR的各个链接服务的连接字符串。对于我的基于ASQL的链接服务,我不得不使用类似这样的内容,简单的服务器名称是不够的,您将获得
"message": "Failed to encrypt sub-resource payload
lndjwyie5#
我重写参数,因为连接字符串是安全的。如果没有原始值,请使用伪值(用户名、密码、连接字符串),然后部署。
n3h0vuf26#
完全部署ADF示例时,已在运行的IR没有意义。IR密钥是在您部署的ADF示例中生成的,这意味着您创建了循环逻辑:在ADF部署完成之前,您无法部署IR,但在部署IR之前,您无法完成ADF的部署。
到目前为止,我们的答案是让arm模板在这一点上失败,这是在模板中注册IR之后,然后生成IR密钥。我们使用它来部署IR,然后重新运行模板,它成功了...这是愚蠢和黑客,必须有一个比故意失败/重试更明智的方法来做到这一点。