Pulumi Azure: получить идентификатор объекта службы - PullRequest
0 голосов
/ 25 марта 2020

Я использую pulumi внутри azure devops конвейера. Мне нужно найти идентификатор объекта службы конвейера 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)});

1 Ответ

1 голос
/ 25 марта 2020

Вы должны использовать 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 }));
...