在Pulumi Azure Native中获取StorageAccount的AccessKey咨询
解决方案
Azure Native 版本的 StorageAccount 资源不会直接返回访问密钥作为输出属性,需要调用 Azure 原生的列表存储账户密钥接口来获取对应值,具体实现代码如下:
首先引入必要命名空间(如果未引入的话):
using Pulumi.AzureNative.Storage;
步骤1:获取存储账户主访问密钥
// 调用ListStorageAccountKeys接口获取密钥列表 var accountKeys = ListStorageAccountKeys.Invoke(new ListStorageAccountKeysInvokeArgs { AccountName = account.Name, ResourceGroupName = account.ResourceGroupName }); // 取第一个主访问密钥,如需次访问密钥可替换为keys.Keys[1].Value var primaryAccessKey = accountKeys.Apply(keys => keys.Keys[0].Value);
步骤2:构造完整的存储账户连接字符串
你之前的写法获取的是存储账户的Web终结点,并非完整连接字符串,正确的构造方式如下:
// 公共Azure云环境使用core.windows.net,中国区Azure请替换为core.chinacloudapi.cn var primaryConnectionString = Output.Format($"DefaultEndpointsProtocol=https;AccountName={account.Name};AccountKey={primaryAccessKey};EndpointSuffix=core.windows.net");
逻辑说明
Pulumi Azure Native 完全对齐 Azure ARM API 设计,而 Azure ARM 本身规定存储账户的访问密钥属于敏感信息,需要单独调用接口获取,不会直接包含在存储账户的基础属性返回结果中,因此和经典版Azure Provider直接取属性的逻辑存在差异。
内容的提问来源于stack exchange,提问作者Ole Albers
相关产品推荐
相关产品推荐

