Search code examples
azureazure-eventgridpulumi

Pulumi: Missing PrimaryAccessKey for EventGrid Topic


I'm using Pulumi 1.16 with dotnet/C# and the AzureNative stack. I try to create an EventGridTopic. To access the created resource's properties later I pull some output values.

Example code:

      var topic = new Topic("eventgrid-topic-status", new TopicArgs
      {
        TopicName = "egt-status-dev",
        ResourceGroupName = "rg-testapp-dev",
        Location = "westeurope"
      });
      var endPointOutput = topic.Endpoint;
      var endPointAccessKey = ""; // missing output property

The resource is being created. I found no way to get the access key properties:

  • PrimaryAccessKey
  • SecondaryAccessKey

In the former (elder) Azure stack the properties exist. But in Azure Native stack not. Is that on purpose, just work in progress, has been forgotten or is there some other way to retrieve these properties on this object?

This is output on Azure (old stack):

EventgridTopic Output (old stack)

This is Azure Native, clearly the keys are missing:

enter image description here

I doubt that this happens accidentally and would like to understand what to do.


Solution

  • Azure API (and therefore Azure Native resources) return no sensitive information in their outputs automatically to minimize security risks. You have to make an explicit call to retrieve those.

    In this case, you likely need to invoke the function listTopicSharedAccessKeys.

    You will want to call the function from within an Apply to make sure that it's triggered only after the topic is created (e.g., not during preview):

    var keys = topic.Name.Apply(topicName => ListTopicSharedAccessKeys.InvokeAsync(
        new ListTopicSharedAccessKeysArgs
        {
            ResourceGroupName = "rg-testapp-dev",
            TopicName = topicName
        }));