首页 > 解决方案 > ARM TTK 工具的问题

问题描述

在此处输入图像描述我正在尝试使用 ARM TTK 工具包运行 ARM 模板的测试。我正在使用 YAML 管道作为代码。我正在关注此链接https://azurehangout.com/infrastructure-as-code-security-for-azure-part-2-arm-template-test-toolkit-arm-ttk/

但不知何故,我的管道在任务中失败了:Run deploymentTemplate tests from ARM Template Tester Toolkit

请查看任务的输出,我没有看到带有绿色复选标记的 Publish Artifacts 阶段

  [+] DependsOn Best Practices (74 ms)
    [+] Deployment Resources Must Not Be Debug (27 ms)
    [+] DeploymentTemplate Must Not Contain Hardcoded Uri (23 ms)
    [+] DeploymentTemplate Schema Is Correct (9 ms)
    [+] Dynamic Variable References Should Not Use Concat (10 ms)
D:\a\1\s\arm-template-toolkit\arm-ttk\testcases\deploymentTemplate\IDs-Should-Be-Derived-From-ResourceIDs.test.ps1 : Property: "id" must use one of the following expressions for an resourceId property:
            extensionResourceId,resourceId,subscriptionResourceId,tenantResourceId,if,parameters,reference,variables,subscription,guid
At D:\a\1\s\arm-template-toolkit\arm-ttk\Test-AzTemplate.ps1:246 char:21
+                     . $myModule $TheTest @testInput 2>&1 3>&1
+                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (@{id=[variables('su…NetworkRules[0].id}:PSObject) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : ResourceId.Should.Contain.Proper.Expression,IDs-Should-Be-Derived-From-ResourceIDs.test.ps1
##[debug]Exit code: 1
##[debug]Leaving Invoke-VstsTool.
##[error]PowerShell exited with code '1'.
##[debug]Processed: ##vso[task.logissue type=error]PowerShell exited with code '1'.
##[debug]Processed: ##vso[task.complete result=Failed]Error detected
##[debug]Leaving D:\a\_tasks\PowerShell_e213ff0f-5d5c-4791-802d-52ea3e7be1f1\2.186.0\powershell.ps1.
Finishing: Run deploymentTemplate tests from ARM Template Tester Toolkit

标签: azureazure-devopsazure-pipelinesazure-resource-manager

解决方案


不确定您用于运行它的任务,但您希望确保在出错时继续 - 否则您从 TTK 获得的第一次失败将是最后一次失败,因为任务将停止。

这是我们用于设置的内容(我们使用 json):

https://github.com/Azure/azure-quickstart-templates/blob/master/test/pipeline/pipeline.import.azure.master.json#L838-L863

只需在通用 PowerShell 核心任务中运行它即可。


推荐阅读