首页 > 解决方案 > Azure 发布管道未从 nestedStack.yml 文件中获取变量

问题描述

我正在配置我们的发布管道,以便在拉取请求合并到主服务器并部署到开发环境后自动运行集成测试。

我目前遇到连接错误,特别是java.net.UnknownHostException:看起来我的nestedStack.yml 代码中的一个输出变量没有被正确导入/读取:

我的回购/云形成/nestedStack.yml 在此处输入图像描述

您可以看到那里有一个属性“ApiGatewayInvokeUrl”,它被标记为输出。它在 Azure DevOps 上用于我的“部署到开发”阶段的“集成测试”任务。它被写成 $(ApiGatewayInvokeUrl),因为这就是 Azure DevOps 上变量的使用方式。

在此处输入图像描述

此 Deploy to Dev 将“成功”,但是当我进一步检查集成测试时,我发现没有实际运行,并且立即出现连接错误。我可以看到它正在将变量输出为 $(ApiGatewayInvokeUrl) ,因此看起来它只是将其作为字符串读取,并且从不将其替换为正确的 URL 值: 在此处输入图像描述

我偏离了另一个团队在类似管道上设置集成测试的方式,但我可能错过了一些东西。我是否需要在我的代码库或 Azure 的某个地方定义 $(ApiGatewayInvokeUrl)?还是我错过了什么?我检查了其他团队的代码,并没有看到他们在其他任何地方定义它,这就是我非常困惑的原因。

更新:我进入 AWS API Gateway 并复制了调用 URL 并将其硬编码到 Azure DevOps Maven(集成测试)目标路径中,现在它正在连接。因此,出于某种原因,它 100% 只是不导入该变量。

标签: javaazureapiazure-devopsazure-pipelines

解决方案


你需要定义\创建变量来使用它(除非它是一个自动变量,而且这个绝对不是一个自动变量)。该变量没有被替换,因为它不存在(afaik)。


推荐阅读