You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移至Azure.ResourceManager.Dns时Metadata设置问题求助

Azure.ResourceManager.Dns 中设置 Metadata 的解决方案

在新版 Azure.ResourceManager.Dns SDK 中,Metadata 不再通过旧版的 RecordSetParams 对象直接设置,而是需要通过对应记录类型的 Data 类(如 DnsARecordData)来配置,再通过创建/更新操作应用到资源。以下是具体实现方式:

1. 创建新记录集时设置 Metadata

构建 DnsARecordData 对象时,直接初始化或赋值 Metadata 字典,再调用 CreateOrUpdateAsync 完成创建:

using Azure.ResourceManager.Dns;
using Azure.ResourceManager.Dns.Models;

// 构建A记录数据,包含Metadata
var aRecordData = new DnsARecordData
{
    TtlInSeconds = 3600,
    // 直接设置Metadata字典
    Metadata = new Dictionary<string, string>
    {
        { OUR_HOST_KEY, Environment.MachineName },
        { "Requestor-IPaddress", requestSourceIP },
        { "datetime", $"{DateTime.Now.ToShortDateString()}-{DateTime.Now.ToShortTimeString()}" }
    },
    // 添加A记录条目
    ARecords = { new DnsARecordInfo(address) }
};

// 调用CreateOrUpdateAsync创建记录集(需提前获取DnsARecordCollection实例)
var createOperation = await dnsARecordCollection.CreateOrUpdateAsync(
    WaitUntil.Completed,
    recordSetName, // 记录集名称
    aRecordData);
var createdRecordSet = createOperation.Value;

2. 更新现有记录集的 Metadata

若要修改已存在记录集的 Metadata,需先获取记录集的 Data 对象,修改后再执行更新操作:

// 获取目标记录集
var existingRecordSet = await dnsARecordCollection.GetAsync(recordSetName);
if (existingRecordSet != null)
{
    var updatedData = existingRecordSet.Value.Data;
    
    // 修改Metadata:添加新键值对或覆盖现有条目
    updatedData.Metadata["Updated-Key"] = "Updated-Value";
    // 也可以直接替换整个字典
    // updatedData.Metadata = new Dictionary<string, string> { { "New-Key", "New-Value" } };
    
    // 执行更新
    var updateOperation = await dnsARecordCollection.CreateOrUpdateAsync(
        WaitUntil.Completed,
        recordSetName,
        updatedData);
}

关键说明

新版 SDK 采用资源数据模型设计:

  • 所有可配置属性(包括 Metadata)都封装在对应记录类型的 DnsRecordSetData 派生类中(如 DnsARecordData、DnsCnameRecordData)
  • 已获取的 DnsARecordResource 实例的 Metadata 属性为只读,仅用于读取当前资源状态,修改需通过 Data 对象重新提交更新

内容的提问来源于stack exchange,提问作者BigTFromAZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 23:25:00