如何针对不同配置(发布、调试等)为Azure构建不同的启动任务

本文关键字:Azure 构建 任务 启动 何针 配置 发布 调试 | 更新日期: 2023-09-27 17:53:29

我在Azure项目中的ServiceDefinition文件中有这些行:

<Startup>
  <Task commandLine="Tools'Reminder.cmd" executionContext="elevated" taskType="simple" />
</Startup>

但是对于测试服务器和生产服务器,它必须是不同的提醒。cmd文件。我该怎么做呢?我知道我们可以对ServiceConfiguration有不同的配置,但是不知道如何对ServiceDefinition文件有不同的配置。

如何针对不同配置(发布、调试等)为Azure构建不同的启动任务

不幸的是,没有办法将ServiceDefinition文件配置为在已部署环境中运行的Startup Tasks执行此操作。一般的建议是,如果任务本身没有在生产服务器中运行,则将自定义代码/测试放在任务本身中以退出。

但是,您可以在ServiceDefinition中将Startup Task配置为不在本地开发机器上运行。Steve Marx有一篇关于如何做到这一点的好文章。
<Startup>
  <Task executionContext="elevated" commandLine="startup'startup.cmd">
    <Environment>
      <Variable name="EMULATED">
        <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
      </Variable>
    </Environment>
  </Task>
</Startup>

我知道的最简单的方法是为每个环境使用不同的CSDEF文件。这个问题的答案会告诉你如何去做。

这个问题是关于改变VM大小的,但实际上是相同的问题。在您的情况下,您只需更改每个环境的启动任务。