Pulumi:缺少 EventGrid 主题的 PrimaryAccessKey

Pulumi: Missing PrimaryAccessKey for EventGrid Topic

我将 Pulumi 1.16 与 dotnet/C# 和 AzureNative 堆栈一起使用。我尝试创建一个 EventGridTopic。为了稍后访问创建的资源的属性,我提取了一些输出值。

示例代码:

      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

正在创建资源。我找不到获取访问密钥属性的方法:

在前(旧)Azure 堆栈中存在属性。但在 Azure Native 堆栈中则不然。这是故意的,只是在进行中,已被遗忘,还是有其他方法可以检索此对象的这些属性?

这是 Azure(旧堆栈)上的输出:

这是 Azure Native,显然缺少密钥:

我怀疑这是偶然发生的,想了解该怎么做。

A​​zure API(因此 Azure 本机资源)return 其输出中没有敏感信息会自动将安全风险降至最低。您必须显式调用才能检索这些内容。

在这种情况下,您可能需要调用函数 listTopicSharedAccessKeys

您需要从 Apply 中调用该函数以确保它仅在主题创建后触发(例如,不在预览期间):

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

如果您不想硬编码资源组名称:

let keys = pulumi.all([rg.name, topic.name]).apply(arr => 
    azn.eventgrid.listTopicSharedAccessKeys(
        {
            resourceGroupName: arr[0],
            topicName: arr[1]
        }
    )
);

keys.apply(x => pulumi.log.info(x.key1 ?? ""));