我正在将使用 Microsoft.Azure.Management.Dns 的应用程序迁移到 Azure.ResourceManager.Dns
一切都已被重写(甚至还没有接近迁移)。无论如何,除了Metadata之外,我一切都正常工作。以下代码在已弃用的 SDK 中运行良好。
RecordSet recordSetParams;
是我在使用已弃用的 SDK 时添加元数据的位置。这是一个示例:
// Add metadata to the record set. Similar to Azure Resource Manager tags, this is optional and you can add multiple metadata name/value pairs
recordSetParams.Metadata = new Dictionary<string, string>
{
{ OUR_HOST_KEY, Environment.MachineName },
{ "Requestor-IPaddress", requestSourceIP },
{ "datetime", $"{DateTime.Now.ToShortDateString()}-{DateTime.Now.ToShortTimeString()}" }
};
...
recordSetParams.ARecords.Add(new ARecord(address));
... }
return recordSetParams;
}
我无法找到可用于在新 SDK 中存储元数据的对象引用。我检查了我能找到的所有课程;有一些公开元数据,但它们只有 getter,没有 setter。 DnsARecordCollection 似乎是添加字典的地方,但我找不到它。 GitHub Copilot 落后了三年,所以没什么帮助。它总是回退到旧的 SDK。
我可能只是找错了地方。您能提供的任何帮助将不胜感激。
您可以参考此 Github 存储库 代码来使用
Azure.ResourceManager.Dns
配置 DNS 记录集元数据
示例代码1:-
using System;
using System.Collections.Generic;
using Azure;
using Azure.ResourceManager.Dns;
using Azure.ResourceManager.Dns.Models;
using Azure.ResourceManager.Models;
class Program
{
static void Main(string[] args)
{
// Define metadata
var metadata = new Dictionary<string, string>
{
{ "OUR_HOST_KEY", Environment.MachineName },
{ "Requestor-IPaddress", "<request-source-ip>" },
{ "datetime", $"{DateTime.Now.ToShortDateString()}-{DateTime.Now.ToShortTimeString()}" }
};
// Call the factory methods to create record data objects with metadata
var dnsAaaaRecordData = ArmDnsModelFactory.DnsAaaaRecordData(metadata: metadata);
var dnsARecordData = ArmDnsModelFactory.DnsARecordData(metadata: metadata);
// Use the created record data objects as needed
// For example:
Console.WriteLine($"DnsAaaaRecordData Metadata Count: {dnsAaaaRecordData.Metadata.Count}");
Console.WriteLine($"DnsARecordData Metadata Count: {dnsARecordData.Metadata.Count}");
}
}
输出:-
或者您可以直接使用Azure Rest API创建/更新操作并访问properties.metadata。