Azure.ResourceManager.Dns パッケージを使って DNS ゾーンを操作できる。
A レコードを追加するサンプルコードは次の通り。既存のパブリックIPアドレスリソースのエイリアスにしている。
using Azure; using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManager.Dns; using Azure.ResourceManager.Network; const string dnsZoneSubscriptionId = "DNS ゾーンリソースがあるサブスクリプションの ID"; const string dnsZoneResourceGroupName = "DNS ゾーンリソースがあるリソースグループの名前"; const string zoneName = "DNS ゾーンりそーずの名前"; const string aRecordName = "A レコードの名前"; const string publicIPAddressSubscriptionId = "IP アドレスリソースがあるサブスクリプションの ID"; const string publicIPAddressResourceGroupName = "IP アドレスリソースがあるリソースグループの名前"; const string publicIPAddressName = "IP アドレスリソースの名前"; var armClient = new ArmClient(new DefaultAzureCredential()); var dnsZoneId = DnsZoneResource.CreateResourceIdentifier( subscriptionId: dnsZoneSubscriptionId, resourceGroupName: dnsZoneResourceGroupName, zoneName: zoneName); var dnsZoneResponse = await armClient.GetDnsZoneResource(dnsZoneId).GetAsync(); var dnsZone = dnsZoneResponse.Value; Console.WriteLine(dnsZone.Data.Name); var dnsARecords = dnsZone.GetDnsARecords(); DnsARecordResource dnsARecord; if (await dnsARecords.ExistsAsync(aRecordName)) { var dnsARecordResponse = await dnsARecords.GetAsync(aRecordName); dnsARecord = dnsARecordResponse.Value; } else { var publicIPAddressId = PublicIPAddressResource.CreateResourceIdentifier( subscriptionId: publicIPAddressSubscriptionId, resourceGroupName: publicIPAddressResourceGroupName, publicIPAddressName: publicIPAddressName); var dnsARecordOperation = await dnsARecords.CreateOrUpdateAsync( waitUntil: WaitUntil.Completed, aRecordName: aRecordName, data: new DnsARecordData { TtlInSeconds = 60 * 60, TargetResourceId = publicIPAddressId, }); var dnsARecordResponse = await dnsARecordOperation.WaitForCompletionAsync(); dnsARecord = dnsARecordResponse.Value; } Console.WriteLine($"Name: {dnsARecord.Data.Name}"); Console.WriteLine($"Fqdn: {dnsARecord.Data.Fqdn}"); Console.WriteLine($"TtlInSeconds: {dnsARecord.Data.TtlInSeconds}"); Console.WriteLine($"TargetResourceId: {dnsARecord.Data.TargetResourceId}"); Console.ReadLine();