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