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,显然缺少密钥:
我怀疑这是偶然发生的,想了解该怎么做。
Azure 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 ?? ""));
我将 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,显然缺少密钥:
我怀疑这是偶然发生的,想了解该怎么做。
Azure 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 ?? ""));