Azure开发人员:AzurePowerShell@5无法调用其他函数

enxuqcxy  于 2023-03-12  发布在  Shell
关注(0)|答案(1)|浏览(100)

我有一个powershell脚本MyScript.ps1,它在我的本地计算机上运行没有任何问题。

$var1 = "var1"
$var2 = "var2"

$result = Function-A -var1 $var1 -var2 $var2



Function-A{
    param(
        [string] $var1, 
        [string] $var2
    )

   #some logics here.
}

我在Azure DevOps Yaml脚本中通过任务AzurePowerShell@5调用此脚本

steps: 
          - task: AzurePowerShell@5 
            displayName: 'Execute PS script'
            env:
                SYSTEM_ACCESSTOKEN: $(System.AccessToken)
            inputs:
              azureSubscription: '${{ variables.azureConnection }}'
              scriptType: 'FilePath'
              scriptPath: '$(Build.SourcesDirectory)/MyScript.ps1'
              azurePowerShellVersion: 'LatestVersion'

我不断收到以下错误:

[error]术语“Function-A”未被识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写;如果包含路径,请验证路径是否正确,然后重试。

[调试]已处理:##vso[task.logissue type=error]术语“Function-A”未被识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写;如果包含路径,请验证路径是否正确,然后重试。

[debug]退出代码:1

阅读了一下,我想我可以通过将它们分组到一个模块中,然后以这种方式调用它们来解决这个问题。然而,对于像这样简单的事情来说,这是一个很大的开销...请给我指出正确的方向。

cbjzeqam

cbjzeqam1#

/咯咯笑
愚蠢的ADO,所以所有的函数都必须在调用之前在文件中声明。

$var1 = "var1"
$var2 = "var2"

Function-A{
    param(
        [string] $var1, 
        [string] $var2
    )

   #some logics here.
}


$result = Function-A -var1 $var1 -var2 $var2

相关问题