0

我在 azure devops 管道中运行 pulumi。我需要找到管道服务主体 ObjectId

var clientConfig = Output.Create(Pulumi.Azure.Core.Invokes.GetClientConfig());
var clientId = clientConfig.Apply(c => c.ObjectId);

这给了我应用程序 ObjectId 作为输出,现在从这里我如何找到我的服务主体 ObjectId。

我不能这样做,因为 clientId 是Output<string>并且 ObjectId 期待string

var adApp = Output.Create(Pulumi.AzureAD.Invokes.GetApplication(new GetApplicationArgs { ObjectId = clientId}));
var adSp = Output.Create(Pulumi.AzureAD.Invokes.GetServicePrincipal(new GetServicePrincipalArgs { ApplicationId = adApp.App(a => a.ApplicationId)});
4

1 回答 1

1

你应该Apply在这里使用方法:

var adApp = clientId.Apply(id => 
    Pulumi.AzureAD.Invokes.GetApplication(
        new GetApplicationArgs { ObjectId = id }));

var adSp = adApp.ApplicationId.Apply(appid =>
    Pulumi.AzureAD.Invokes.GetServicePrincipal(
        new GetServicePrincipalArgs { ApplicationId = appid }));
于 2020-03-25T15:31:42.983 回答