このトピックでは、API を使用して、有料の Cloud DNS インスタンスを購入、更新、自動更新の有効化、およびアップグレードする方法について説明します。デモ内の一部の パラメーター値 は参照用です。実際に API を呼び出すときは、ドメイン や InstanceId などの実際のデータを提供する必要があります。
SDK
Maven 依存関係:
<dependencies>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-bssopenapi</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.4.6</version>
</dependency>
</dependencies>他の言語については、「SDK リスト」をご参照ください。
クライアント初期化リファレンス: 新しい Java SDK をインストールする。
中国サイトの場合、RegionId は cn-hangzhou に固定されています。国際サイトの場合、RegionId は ap-southeast-1 に固定されています。
1. 有料の Cloud DNS インスタンスを作成する
説明: CreateInstance を使用して、有料の Cloud DNS インスタンスを作成します。
API 名: CreateInstance
API リファレンス: インスタンス作成サービス。
API パラメーター | デモインスタンスパラメーター | パラメーター値の範囲 | 値の説明 |
Parameter.1.Code | parameters1.setCode | DNSSecurity | DNS セキュリティ。 |
Parameter.1.Value | parameters1.setValue | no; basic; advanced | 不要。基本的な DNS 攻撃防御。完全な DNS 攻撃防御。 |
Parameter.2.Code | parameters2.setCode | DomainNumbers | ドメインの数。 |
Parameter.2.Value | parameters2.setValue | 1-100 | ドメイン数の値の範囲。 |
Parameter.3.Code | parameters3.setCode | Version | Cloud DNS バージョンの選択。 |
Parameter.3.Value | parameters3.setValue | version_personal;version_enterprise_advanced | パーソナル版。 エンタープライズ アルティメット版。 |
Parameter.4.Code | parameters4.setCode | Domain | バインドされたドメイン名。 |
Parameter.4.Value | parameters4.setValue | example.com | インスタンスにバインドする実際のドメイン名を入力します。複数のドメインの場合は、コンマで区切ります。 |
Parameter.5.Code | parameters5.setCode | InstanceType | インスタンスタイプ。 |
Parameter.5.Value | parameters5.setValue | HostedPublicZone; CachedPublicZone | 権威 DNS ホストドメイン。 権威 DNS プロキシドメイン。 |
よくある質問:
(1) ドメイン情報をバインドするパラメーター parameters4.setCode("Domain") については、最初の文字を大文字にする必要があります。そうでない場合、ドメインバインディングは失敗します。
(2) バインドされたドメインは、インスタンスを購入するアカウントに存在する必要があります。Alibaba Cloud ドメインでない場合は、事前に Cloud DNS コンソールでドメインを追加するか、AddDomain API を呼び出して追加する必要があります。詳細については、「ドメイン名を追加する」をご参照ください。
デモリファレンス:
package alidnstest.domainmanager;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.bssopenapi.model.v20171214.CreateInstanceRequest;
import com.aliyuncs.bssopenapi.model.v20171214.CreateInstanceResponse;
import com.aliyuncs.exceptions.ClientException;
import org.testng.annotations.Test;
import org.testng.collections.Lists;
import utils.AlidnsTestBase;
public class InstanceCreateRenewUpgrade extends AlidnsTestBase {
@Test
public void createInstanceTest() {
CreateInstanceRequest request = new CreateInstanceRequest();
request.setProductCode("dns");
request.setProductType("dns_dns_public_intl");
request.setSubscriptionType("Subscription");
request.setPeriod(1);
CreateInstanceRequest.Parameter parameters1 = new CreateInstanceRequest.Parameter();
parameters1.setCode("DNSSecurity");
parameters1.setValue("no");
CreateInstanceRequest.Parameter parameters2 = new CreateInstanceRequest.Parameter();
parameters2.setCode("DomainNumbers");
parameters2.setValue("1");
CreateInstanceRequest.Parameter parameters3 = new CreateInstanceRequest.Parameter();
parameters3.setCode("Version");
parameters3.setValue("version_personal");
CreateInstanceRequest.Parameter parameters4 = new CreateInstanceRequest.Parameter();
parameters4.setCode("Domain");
parameters4.setValue("example.taobao");
CreateInstanceRequest.Parameter parameters5 = new CreateInstanceRequest.Parameter();
parameters5.setCode("InstanceType");
parameters5.setValue("HostedPublicZone");
request.setParameters(Lists.newArrayList(parameters1,parameters2,parameters3,parameters4,parameters5));
try {
CreateInstanceResponse response = client.getAcsResponse(request);
System.out.println(JSON.toJSON(response));
} catch (ClientException e) {
e.printStackTrace();
}
}
}2. 有料の Cloud DNS インスタンスを更新する
説明: RenewInstance を使用して、有料の Cloud DNS インスタンスを更新します。
API 名: RenewInstance
API リファレンス: インスタンス更新サービス。
デモリファレンス:
package alidnstest.domainmanager;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.bssopenapi.model.v20171214.CreateInstanceRequest;
import com.aliyuncs.bssopenapi.model.v20171214.CreateInstanceResponse;
import com.aliyuncs.bssopenapi.model.v20171214.RenewInstanceRequest;
import com.aliyuncs.bssopenapi.model.v20171214.RenewInstanceResponse;
import com.aliyuncs.exceptions.ClientException;
import org.testng.annotations.Test;
import org.testng.collections.Lists;
import utils.AlidnsTestBase;
public class OrderCreateRenewUpgrade extends AlidnsTestBase {
/**
* Cloud DNS インスタンスを更新する
*/ //日本語コメント
@Test
public void renewInstanceTest() {
RenewInstanceRequest request = new RenewInstanceRequest();
// 実際に作成されたインスタンス ID を入力します
request.setInstanceId("dns-cn-oew21y7****");
request.setProductCode("dns");
request.setRenewPeriod(3);
try {
RenewInstanceResponse response = client.getAcsResponse(request);
System.out.println(JSON.toJSON(response));
} catch (ClientException e) {
e.printStackTrace();
}
}
}3. Cloud DNS インスタンスの自動更新
説明: SetRenewal を使用して、有料の Cloud DNS インスタンスの更新方法 (手動更新、自動更新、または更新なし) を設定します。
API 名: SetRenewal
API リファレンス: インスタンスの自動更新サービスを設定する。
自動更新サイクルパラメーターの説明:
API パラメーター | 値の範囲 | 説明 |
RenewalPeriodUnit | 値: M: 月。Y: 年。 | 自動更新サイクル単位。 |
RenewalPeriod | RenewalPeriodUnit が年の場合、値の範囲: 1、2、3。RenewalPeriodUnit が月の場合、値の範囲: 1、2、3、6。 | 自動更新期間。 |
よくある質問:
(1) ProductCode は必須パラメーターです。
(2) RenewalStatus = AutoRenewal の場合、RenewalPeriodUnit と RenewalPeriod が必須です。
デモリファレンス:
package alidnstest.domainmanager;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.bssopenapi.model.v20171214.*;
import com.aliyuncs.exceptions.ClientException;
import org.testng.annotations.Test;
import org.testng.collections.Lists;
import utils.AlidnsTestBase;
public class OrderCreateRenewUpgrade extends AlidnsTestBase {
/**
* Cloud DNS インスタンスの自動更新
*/ //日本語コメント
@Test
public void setRenewalTest() {
SetRenewalRequest request = new SetRenewalRequest();
// 実際に作成されたインスタンス ID を入力します
request.setInstanceIDs("dns-cn-oew21y7****");
request.setRenewalStatus("AutoRenewal");
request.setProductCode("dns");
request.setRenewalPeriodUnit("M");
request.setRenewalPeriod(1);
try {
SetRenewalResponse response = client.getAcsResponse(request);
System.out.println(JSON.toJSON(response));
} catch (ClientException e){
e.printStackTrace();
}
}
}4. Cloud DNS インスタンスをアップグレードする
説明: ModifyInstance を使用して、有料の Cloud DNS インスタンスをアップグレードします。現在、Cloud DNS は有料インスタンスのダウングレードをサポートしていません。
API 名: ModifyInstance
API リファレンス: インスタンス変更サービス。
Parameter.N.Code と Parameter.N.Value の説明:
Parameter.N.Code には、Version を入力します。
Parameter.N.Value (Cloud DNS 有料インスタンスバージョン) の値の範囲:
version_personal: パーソナル版。
version_enterprise_advanced: エンタープライズ アルティメット版。
よくある質問:
(1) Cloud DNS 有料インスタンスは現在、ダウングレードをサポートしていません。
(2) InstanceId と ProductType は必須パラメーターです。
デモリファレンス:
package alidnstest.domainmanager;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.bssopenapi.model.v20171214.*;
import com.aliyuncs.exceptions.ClientException;
import org.testng.annotations.Test;
import org.testng.collections.Lists;
import utils.AlidnsTestBase;
public class OrderCreateRenewUpgrade extends AlidnsTestBase {
/**
* Cloud DNS インスタンスのアップグレード
*/ //日本語コメント
@Test
public void modifyInstanceTest() {
ModifyInstanceRequest request = new ModifyInstanceRequest();
request.setModifyType("Upgrade");
ModifyInstanceRequest.Parameter parameters = new ModifyInstanceRequest.Parameter();
parameters.setCode("Version");
parameters.setValue("version_enterprise_advanced");
request.setParameters(Lists.newArrayList(parameters));
request.setProductCode("dns");
request.setProductType("dns_dns_public_intl");
request.setSubscriptionType("Subscription");
// 実際に作成されたインスタンス ID を入力します
request.setInstanceId("dns-cn-oew21y7****");
try {
ModifyInstanceResponse response = client.getAcsResponse(request);
System.out.println(JSON.toJSON(response));
} catch (ClientException e) {
e.printStackTrace();
}
}
}5. 有料 DNS 製品インスタンスの詳細を取得する
有料 DNS 製品インスタンスの詳細を取得する を使用して、インスタンス ID によって上記で作成された有料 Cloud DNS 製品インスタンスの詳細情報を取得します。
デモリファレンス:
package alidnstest.domainmanager;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.alidns.model.v20150109.DescribeDnsProductInstanceRequest;
import com.aliyuncs.alidns.model.v20150109.DescribeDnsProductInstanceResponse;
import com.aliyuncs.bssopenapi.model.v20171214.*;
import com.aliyuncs.exceptions.ClientException;
import org.testng.annotations.Test;
import org.testng.collections.Lists;
import utils.AlidnsTestBase;
public class OrderCreateRenewUpgrade extends AlidnsTestBase {
/**
* Cloud DNS 有料インスタンスの詳細を取得する
*/ //日本語コメント
@Test
public void describeDnsProductInstanceTest() {
DescribeDnsProductInstanceRequest request = new DescribeDnsProductInstanceRequest();
// 実際に作成されたインスタンス ID を入力します
request.setInstanceId("dns-cn-oew21y7****");
try {
DescribeDnsProductInstanceResponse response = client.getAcsResponse(request);
System.out.println(JSON.toJSON(response));
} catch (ClientException e) {
e.printStackTrace();
}
}
}