2

我目前正在尝试更改项目中的部署模型,以便可以使用 ARM 模板部署现有的 Service Fabric 应用程序并在 Azure 中启用托管标识。

在此过程中,我必须在应用程序清单上配置托管标识:

<ManagedIdentities>
  <ManagedIdentity Name="SystemAssigned" />
</ManagedIdentities>

并向每个服务添加身份绑定策略,如下所示:

<Policies>
  <IdentityBindingPolicy ServiceIdentityRef="KeyVaultUser" ApplicationIdentityRef="SystemAssigned" />
</Policies>

如果我将此应用程序清单部署到 Azure,我没有问题。但是,本地情况完全不同,因为现在我无法部署到本地开发集群,这是部署脚本的日志:

>Application package is registered.
>Removing application package from image store...
>Remove application package succeeded
>Creating application...
>New-ServiceFabricApplication : Application managed identity PrincipalId cannot be null or empty.
>FileName: ManagedApplicationIdentity
>At C:\Program Files\Microsoft SDKs\Service 
>Fabric\Tools\PSModule\ServiceFabricSDK\Publish-NewServiceFabricApplication.ps1:466 char:3
>+         New-ServiceFabricApplication -ApplicationName $ApplicationNam ...
>+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>    + CategoryInfo          : InvalidOperation: (Microsoft.Servi...usterConnection:ClusterConnection) [New-ServiceFabr 
>   icApplication], FabricException
>    + FullyQualifiedErrorId : CreateApplicationInstanceErrorId,Microsoft.ServiceFabric.Powershell.NewApplication
> 
>Finished executing script 'Deploy-FabricApplication.ps1'.

据我调查,无法使用服务 ARM 定义添加身份绑定策略,因此需要在清单中。

关于如何克服这个问题并能够同时部署到 Azure 和本地集群的任何想法?

4

0 回答 0