Service FabricManifest参数化Traefik反向代理

时间:2018-04-18 12:38:15

标签: azure-service-fabric traefik

在我的ServiceManifest中,我有以下配置:

<ServiceTypes>
    <!-- This is the name of your ServiceType. 
         This name must match the string used in RegisterServiceType call in Program.cs. -->
    <StatelessServiceType ServiceTypeName="Web1Type">
      <Extensions>
        <Extension Name="Traefik">
          <Labels xmlns="http://schemas.microsoft.com/2015/03/fabact-no-schema">
            <Label Key="traefik.frontend.rule.hostname">Host: test.staal-it.nl#</Label>
            <Label Key="traefik.expose">true</Label>
            <Label Key="traefik.frontend.passHostHeader">true</Label>
          </Labels>
        </Extension>
      </Extensions>
    </StatelessServiceType>
  </ServiceTypes>

我希望能够将Application.staal-it.nl替换为ApplicationParameters文件中的参数,以便在将此应用程序部署到其他环境时进行更改。但是,据我所知,没有可用于扩展的覆盖xml元素。如何才能做到这一点。有关架构定义,请参阅https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-service-model-schema

2 个答案:

答案 0 :(得分:1)

AFAIK,无法在扩展名上使用替换值,可能在将来的版本中使用。

Extensions是将Traefik与服务结构集成的解决方法。

根据Traefik documentation,您可以通过SF REST API

设置这些值

This blog帖子也很好地概述了如何在SF上使用traefik

您可以采用的另一种方法是使用traefik REST API:如果您可以控制您的服务,您的服务启动可以调用traefik api并注册自己,然后您可以将设置添加到您的服务配置中你可以正常设置。

答案 1 :(得分:1)

作为使用参数文件的解决方法,如果您使用VSTS等发布工具,则可以使用tokenizer替换不同环境的内容。或者,在Linux上,您可以使用类似sed +环境变量的内容。