【问题标题】:Pulumi: Missing PrimaryAccessKey for EventGrid TopicPulumi:缺少 EventGrid 主题的 PrimaryAccessKey
【发布时间】:2021-09-18 23:55:36
【问题描述】:

我正在使用带有 dotnet/C# 和 AzureNative 堆栈的 Pulumi 1.16。我尝试创建一个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,显然缺少键:

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

【问题讨论】:

    标签: azure azure-eventgrid pulumi


    【解决方案1】:

    Azure API(以及因此 Azure 本机资源)在其输出中自动返回不敏感信息,以最大限度地降低安全风险。您必须进行显式调用才能检索它们。

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

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

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

    【讨论】:

      【解决方案2】:

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

      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 ?? ""));
      

      【讨论】:

        猜你喜欢
        • 2018-11-21
        • 2022-11-11
        • 2012-05-29
        • 2011-12-08
        • 1970-01-01
        • 2015-09-29
        • 2016-09-02
        • 2020-01-08
        • 1970-01-01
        相关资源
        最近更新 更多