Azure.ResourceManager.Dns 和元数据

问题描述 投票:0回答:1

我正在将使用 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。

我可能只是找错了地方。您能提供的任何帮助将不胜感激。

azure metadata azure-dns
1个回答
0
投票

您可以参考此 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}");
    }
}

输出:-

enter image description here

或者您可以直接使用Azure Rest API创建/更新操作并访问properties.metadata。

© www.soinside.com 2019 - 2024. All rights reserved.