使用参数设置Azure Factory管道

使用参数设置Azure Factory管道,azure,azure-devops,Azure,Azure Devops,我现在很沮丧,因为我没有得到想要的结果 我试图做的是创建一个管道,该管道根据数据工厂的名称动态设置参数 因此,我有3个数据工厂,除了实例名称外,所有数据工厂的名称都完全相同 显然,我可以通过使用命令@pipeline().DataFactory获得这些信息。然而,我仍然找到了一种方法,告诉我什么是帮助 由此我可以得到一个实例,例如,数据工厂的名称如下: 数据工厂 数据工厂 数据工厂 如果我可以使用子字符串(@pipeline().DataFactory,13,1)这应该给我'd','t'或'

我现在很沮丧,因为我没有得到想要的结果

我试图做的是创建一个管道,该管道根据数据工厂的名称动态设置参数

因此,我有3个数据工厂,除了实例名称外,所有数据工厂的名称都完全相同

显然,我可以通过使用命令
@pipeline().DataFactory
获得这些信息。然而,我仍然找到了一种方法,告诉我什么是帮助

由此我可以得到一个实例,例如,数据工厂的名称如下:

  • 数据工厂
  • 数据工厂
  • 数据工厂
如果我可以使用
子字符串(@pipeline().DataFactory,13,1)
这应该给我'd','t'或'p'作为实例。根据数组是否基于0,我同样不知道如何阅读指南

所以一旦我有了这些信息,我就有了一些东西,我可以用来确定连接使用哪种结构

我创建了一个管道,它使用多个数据集,所以我正试图使这些数据集成为动态的

我已经设置了这些,以便它们使用链接服务,我可以手动填写这些值,连接工作正常。例如:-

  • DomainName=domainDev
  • 用户名=userDev
  • SecretName=sectretDev
因此,我现在要做的是设置以下参数:
if(等于({dataset().Instance}),'p'),'db_prod',等于({dataset().Instance}),'t'),'db_test','db_dev')

然后,我应该能够设置链接服务参数==动态参数

这种方法似乎不起作用。我得到这个错误:

检查链接服务配置是否正确,并确保SQL数据库防火墙允许集成运行时访问

我猜这与我如何传递参数有关,但我不知道如何绕过这一点,因为我还没有找到一种方法来查看这些参数的值,除非它们被硬编码为链接服务的值,否则该方法可以工作

首先,这听起来可行吗?还有其他人这样做过吗?他们是如何绕过这个问题的


这里有几点建议,也许你可以考虑作为参考:

  • 您可以尝试有条件地动态设置变量

    • 在管道作业中添加一个shell脚本任务,以有条件地动态设置一个变量(这里以Bash为例)。
      Instance=@{dataset().Instance}
      如果[[$Instance=p]];然后
      echo“##vso[task.setvariable=database]db#u prod”
      elif[[$Instance=t]];然后
      echo“##vso[task.setvariable=database]db#u测试”
      其他的
      echo“##vso[task.setvariable=database]db#u dev”
      fi
      
    • 完成上述任务后,在同一作业的后续步骤(任务)中,您可以访问变量
      $(数据库)
  • 如果您使用的是YAML管道,并且动态参数用作任务的输入,则可以尝试使用
    If
    子句来执行

    例如:

    步骤:
    -任务:{task name}@{version}
    投入:
    . . .
    ${if(等于(@{dataset().Instance}),'p')}:
    数据库:“db_prod”
    ${if(等于(@{dataset().Instance}),'t')}:
    数据库:“db_测试”
    ${if(等于(@{dataset().Instance}),'d')}:
    数据库:“db_dev”
    

  • 嗨@GavCheal,事情进展如何?你试过我回答中的建议了吗?它们对你有帮助吗?请试一试。有任何进展,请随时告诉我。你好@BrightRan MSFT,我很好,谢谢,你呢?非常感谢您的建议,我已经采纳了这一点,我有一位同事可以研究您所说的内容,因为他在ADF方面的经验比我略多,但不多。不幸的是,目前我们还没有进一步解决这个问题。您好@GavCheal,谢谢您的回复。在您的情况下,对于有关Azure DevOps上Azure管道的问题,我的答案中的建议都是我目前能想到的。如果现在阻碍您的问题是关于Azure Data Factory的,我建议您可以打开一个标签为“
    Azure Data Factory
    ”的新主题,以报告您在Azure Data Factory上面临的问题。当然,如果您仍然对Azure DevOps有疑问,您可以直接添加对当前主题的评论,我将尽可能提供帮助。