Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure service fabric 服务结构策略的条件标记_Azure Service Fabric - Fatal编程技术网

Azure service fabric 服务结构策略的条件标记

Azure service fabric 服务结构策略的条件标记,azure-service-fabric,Azure Service Fabric,对于生产环境,我们在gMSA帐户下运行我们的Service Fabric应用程序 <ApplicationManifest> <ServiceManifestImport> <Policies> <RunAsPolicy CodePackageRef="Code" UserRef="MyUser" /> </Policies> </ServiceManifestImport> <

对于生产环境,我们在gMSA帐户下运行我们的Service Fabric应用程序

<ApplicationManifest>
  <ServiceManifestImport>
    <Policies>
      <RunAsPolicy CodePackageRef="Code" UserRef="MyUser" />
    </Policies>
  </ServiceManifestImport>
  <Principals>
    <Users>
      <User Name="MyUser" AccountType="ManagedServiceAccount" AccountName="<some account>"
      </User>
    </Users>
  </Principals>
</ApplicationManifest>


VS developer的右键单击和发布体验,为本地或云中的独立环境提供了高效的开发/测试周期。为了避免与本地计算机的差异或问题,您始终可以直接在Azure中部署和调试(因此无需更改清单):


您自然应该有不同的环境(Dev、Staging、Prod、etc),这些环境将具有特定于环境的配置,并且您需要使用一个部署管道(如Azure DevOps)来修改目标环境的清单;即,在部署到prod环境时,将用户帐户属性添加到清单中。

您可以通过更改部署FabricApplication.ps1来修改本地部署。添加以下内容将允许您在本地开发中使用自定义应用程序清单,这对于需要为本地开发/测试提供宽松安全策略的场景非常有用

$ProfileFileName = $(Get-ChildItem $PublishProfileFile).BaseName
$AppManifestBase = "$ApplicationPackagePath\ApplicationManifest"

if ($ProfileFileName.StartsWith("Local") -and (Test-Path "$AppManifestBase.Local.*"))
{
    $localName = if (Test-Path "$AppManifestBase.Local.$ProfileFileName.xml") {"$ProfileFileName"} else {"Local"}

    Write-Host "Copying ""$AppManifestBase.$localName.xml"" to ""$AppManifestBase.xml"""
    Copy-Item "$AppManifestBase.$localName.xml" -Destination "$AppManifestBase.xml" -Force
}

答案对我没有帮助。我有一个applicationmanifest.xml。参数是根据环境传递给它的(Local.xml或Cloud.xml),但清单中有policies标记,我不希望为本地调试执行该标记。您提到重新写入/修改清单文件。如何做到这一点?@FrankQ。我认为@aljo microsoft的意思是,您需要在CI中添加一个额外的任务来修改ApplicationManifest.xml,并通过添加此用户特定的配置。关于这种情况,我要说的是,没有内置的方法来添加/更新ApplicationManifest.xml文件。您可以尝试使用参数-
,并针对每个环境对其进行不同的配置(但我不确定这是否可行,因为AFAIK无法替换ApplicationManifest.xml中的所有参数)。