本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用适用于 Java 2.x 的 SDK 的 Route 53 域注册示例
以下代码示例向您展示了如何使用AWS SDK for Java 2.x带有 Route 53 域注册来执行操作和实现常见场景。
操作是大型程序的代码摘录,必须在上下文中运行。虽然操作向您展示了如何调用单个服务函数,但您可以在其相关场景和跨服务示例中查看操作的上下文。
场景是展示如何通过在同一服务中调用多个函数来完成特定任务的代码示例。
每个示例都包含一个链接GitHub,您可以在其中找到有关如何在上下文中设置和运行代码的说明。
开始使用
以下代码示例说明如何开始使用 Route 53 域注册。
- SDK for Java 2.x
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 /** * Before running this Java V2 code example, set up your development environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html * * This Java code examples performs the following operation: * * 1. Invokes ListPrices for at least one domain type, such as the “com” type and displays the prices for Registration and Renewal. * */ public class HelloRoute53 { public static final String DASHES = new String(new char[80]).replace("\0", "-"); public static void main(String[] args) { final String usage = "\n" + "Usage:\n" + " <hostedZoneId> \n\n" + "Where:\n" + " hostedZoneId - The id value of an existing hosted zone. \n"; if (args.length != 1) { System.out.println(usage); System.exit(1); } String domainType = args[0]; Region region = Region.US_EAST_1; Route53DomainsClient route53DomainsClient = Route53DomainsClient.builder() .region(region) .credentialsProvider(ProfileCredentialsProvider.create()) .build(); System.out.println(DASHES); System.out.println("Invokes ListPrices for at least one domain type."); listPrices(route53DomainsClient, domainType); System.out.println(DASHES); } public static void listPrices(Route53DomainsClient route53DomainsClient, String domainType) { try { ListPricesRequest pricesRequest = ListPricesRequest.builder() .maxItems(10) .tld(domainType) .build(); ListPricesResponse response = route53DomainsClient.listPrices(pricesRequest); List<DomainPrice> prices = response.prices(); for (DomainPrice pr: prices) { System.out.println("Name: "+pr.name()); System.out.println("Registration: "+pr.registrationPrice().price() + " " +pr.registrationPrice().currency()); System.out.println("Renewal: "+pr.renewalPrice().price() + " " +pr.renewalPrice().currency()); System.out.println("Transfer: "+pr.transferPrice().price() + " " +pr.transferPrice().currency()); System.out.println("Transfer: "+pr.transferPrice().price() + " " +pr.transferPrice().currency()); System.out.println("Change Ownership: "+pr.changeOwnershipPrice().price() + " " +pr.changeOwnershipPrice().currency()); System.out.println("Restoration: "+pr.restorationPrice().price() + " " +pr.restorationPrice().currency()); System.out.println(" "); } } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } } }
-
有关 API 的详细信息,请参阅 ListPricesAWS SDK for Java 2.xAPI 参考文档。
-
操作
以下代码示例显示了如何检查域的可用性。
- SDK for Java 2.x
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 public static void checkDomainAvailability(Route53DomainsClient route53DomainsClient, String domainSuggestion) { try { CheckDomainAvailabilityRequest availabilityRequest = CheckDomainAvailabilityRequest.builder() .domainName(domainSuggestion) .build(); CheckDomainAvailabilityResponse response = route53DomainsClient.checkDomainAvailability(availabilityRequest); System.out.println(domainSuggestion +" is "+response.availability().toString()); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } }
-
有关 API 的详细信息,请参阅 CheckDomainAvailabilityAWS SDK for Java 2.xAPI 参考文档。
-
以下代码示例显示了如何检查域名的可转让性。
- SDK for Java 2.x
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 public static void checkDomainTransferability(Route53DomainsClient route53DomainsClient, String domainSuggestion){ try { CheckDomainTransferabilityRequest transferabilityRequest = CheckDomainTransferabilityRequest.builder() .domainName(domainSuggestion) .build(); CheckDomainTransferabilityResponse response = route53DomainsClient.checkDomainTransferability(transferabilityRequest); System.out.println("Transferability: "+response.transferability().transferable().toString()); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } }
-
有关 API 的详细信息,请参阅 CheckDomainTransferabilityAWS SDK for Java 2.xAPI 参考文档。
-
以下代码示例显示了如何获取域的详细信息。
- SDK for Java 2.x
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 public static void getDomainDetails(Route53DomainsClient route53DomainsClient, String domainSuggestion){ try { GetDomainDetailRequest detailRequest = GetDomainDetailRequest.builder() .domainName(domainSuggestion) .build(); GetDomainDetailResponse response = route53DomainsClient.getDomainDetail(detailRequest); System.out.println("The contact first name is " + response.registrantContact().firstName()); System.out.println("The contact last name is " + response.registrantContact().lastName()); System.out.println("The contact org name is " + response.registrantContact().organizationName()); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } }
-
有关 API 的详细信息,请参阅 GetDomainDetailAWS SDK for Java 2.xAPI 参考文档。
-
以下代码示例显示了如何获取操作的详细信息。
- SDK for Java 2.x
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 public static void getOperationalDetail(Route53DomainsClient route53DomainsClient, String operationId) { try { GetOperationDetailRequest detailRequest = GetOperationDetailRequest.builder() .operationId(operationId) .build(); GetOperationDetailResponse response = route53DomainsClient.getOperationDetail(detailRequest); System.out.println("Operation detail message is "+response.message()); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } }
-
有关 API 的详细信息,请参阅 GetOperationDetailAWS SDK for Java 2.xAPI 参考文档。
-
以下代码示例显示了如何获取域名建议。
- SDK for Java 2.x
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 public static void listDomainSuggestions(Route53DomainsClient route53DomainsClient, String domainSuggestion) { try { GetDomainSuggestionsRequest suggestionsRequest = GetDomainSuggestionsRequest.builder() .domainName(domainSuggestion) .suggestionCount(5) .onlyAvailable(true) .build(); GetDomainSuggestionsResponse response = route53DomainsClient.getDomainSuggestions(suggestionsRequest); List<DomainSuggestion> suggestions = response.suggestionsList(); for (DomainSuggestion suggestion: suggestions) { System.out.println("Suggestion Name: "+suggestion.domainName()); System.out.println("Availability: "+suggestion.availability()); System.out.println(" "); } } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } }
-
有关 API 的详细信息,请参阅 GetDomainSuggestionsAWS SDK for Java 2.xAPI 参考文档。
-
以下代码示例显示了如何列出域名价格。
- SDK for Java 2.x
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 public static void listPrices(Route53DomainsClient route53DomainsClient, String domainType) { try { ListPricesRequest pricesRequest = ListPricesRequest.builder() .tld(domainType) .build(); ListPricesIterable listRes = route53DomainsClient.listPricesPaginator(pricesRequest); listRes.stream() .flatMap(r -> r.prices().stream()) .forEach(content -> System.out.println(" Name: " + content.name() + " Registration: " + content.registrationPrice().price() + " " + content.registrationPrice().currency() + " Renewal: "+ content.renewalPrice().price() + " " + content.renewalPrice().currency() )); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } }
-
有关 API 的详细信息,请参阅 ListPricesAWS SDK for Java 2.xAPI 参考文档。
-
以下代码示例显示了如何列出已注册的域。
- SDK for Java 2.x
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 public static void listDomains(Route53DomainsClient route53DomainsClient) { try { ListDomainsIterable listRes = route53DomainsClient.listDomainsPaginator(); listRes.stream() .flatMap(r -> r.domains().stream()) .forEach(content -> System.out.println("The domain name is " + content.domainName())); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } }
-
有关 API 的详细信息,请参阅 ListDomainsAWS SDK for Java 2.xAPI 参考文档。
-
以下代码示例显示了如何列出操作。
- SDK for Java 2.x
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 public static void listOperations(Route53DomainsClient route53DomainsClient) { try { Date currentDate = new Date(); LocalDateTime localDateTime = currentDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); ZoneOffset zoneOffset = ZoneOffset.of("+01:00"); localDateTime = localDateTime.minusYears(1); Instant myTime = localDateTime.toInstant(zoneOffset); ListOperationsRequest operationsRequest = ListOperationsRequest.builder() .submittedSince(myTime) .build(); ListOperationsIterable listRes = route53DomainsClient.listOperationsPaginator(operationsRequest); listRes.stream() .flatMap(r -> r.operations().stream()) .forEach(content -> System.out.println(" Operation Id: " + content.operationId() + " Status: " + content.statusAsString() + " Date: "+content.submittedDate())); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } }
-
有关 API 的详细信息,请参阅 ListOperationsAWS SDK for Java 2.xAPI 参考文档。
-
以下代码示例显示了如何注册域。
- SDK for Java 2.x
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 public static String requestDomainRegistration(Route53DomainsClient route53DomainsClient, String domainSuggestion, String phoneNumber, String email, String firstName, String lastName, String city) { try { ContactDetail contactDetail = ContactDetail.builder() .contactType(ContactType.COMPANY) .state("LA") .countryCode(CountryCode.IN) .email(email) .firstName(firstName) .lastName(lastName) .city(city) .phoneNumber(phoneNumber) .organizationName("My Org") .addressLine1("My Address") .zipCode("123 123") .build(); RegisterDomainRequest domainRequest = RegisterDomainRequest.builder() .adminContact(contactDetail) .registrantContact(contactDetail) .techContact(contactDetail) .domainName(domainSuggestion) .autoRenew(true) .durationInYears(1) .build(); RegisterDomainResponse response = route53DomainsClient.registerDomain(domainRequest); System.out.println("Registration requested. Operation Id: " +response.operationId()); return response.operationId(); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } return ""; }
-
有关 API 的详细信息,请参阅 RegisterDomainAWS SDK for Java 2.xAPI 参考文档。
-
以下代码示例显示了如何查看账单记录。
- SDK for Java 2.x
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 public static void listBillingRecords(Route53DomainsClient route53DomainsClient) { try { Date currentDate = new Date(); LocalDateTime localDateTime = currentDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); ZoneOffset zoneOffset = ZoneOffset.of("+01:00"); LocalDateTime localDateTime2 = localDateTime.minusYears(1); Instant myStartTime = localDateTime2.toInstant(zoneOffset); Instant myEndTime = localDateTime.toInstant(zoneOffset); ViewBillingRequest viewBillingRequest = ViewBillingRequest.builder() .start(myStartTime) .end(myEndTime) .build(); ViewBillingIterable listRes = route53DomainsClient.viewBillingPaginator(viewBillingRequest); listRes.stream() .flatMap(r -> r.billingRecords().stream()) .forEach(content -> System.out.println(" Bill Date:: " + content.billDate() + " Operation: " + content.operationAsString() + " Price: "+content.price())); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } }
-
有关 API 的详细信息,请参阅 ViewBillingAWS SDK for Java 2.xAPI 参考文档。
-
场景
以下代码示例显示了如何:
列出当前域名,并列出过去一年的操作。
查看过去一年的账单,并查看域名类型的价格。
获取域名建议。
检查域名的可用性和可转让性。
(可选)申请域名注册。
获取操作细节。
(可选)获取域名详细信息。
- SDK for Java 2.x
-
注意
还有更多GitHub。查找完整示例,学习如何在 AWS 代码示例存储库
中进行设置和运行。 /** * Before running this Java V2 code example, set up your development environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html * * This example uses pagination methods where applicable. For example, to list domains, the * listDomainsPaginator method is used. For more information about pagination, * see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/pagination.html * * This Java code example performs the following operations: * * 1. List current domains. * 2. List operations in the past year. * 3. View billing for the account in the past year. * 4. View prices for domain types. * 5. Get domain suggestions. * 6. Check domain availability. * 7. Check domain transferability. * 8. Request a domain registration. * 9. Get operation details. * 10. Optionally, get domain details. */ public class Route53Scenario { public static final String DASHES = new String(new char[80]).replace("\0", "-"); public static void main(String[] args) { final String usage = "\n" + "Usage:\n" + " <domainType> <phoneNumber> <email> <domainSuggestion> <firstName> <lastName> <city>\n\n" + "Where:\n" + " domainType - The domain type (for example, com). \n" + " phoneNumber - The phone number to use (for example, +91.9966564xxx) "+ " email - The email address to use. "+ " domainSuggestion - The domain suggestion (for example, findmy.accountants). \n" + " firstName - The first name to use to register a domain. \n" + " lastName - The last name to use to register a domain. \n" + " city - the city to use to register a domain. "; if (args.length != 7) { System.out.println(usage); System.exit(1); } String domainType = args[0]; String phoneNumber = args[1]; String email = args[2] ; String domainSuggestion = args[3] ; String firstName = args[4] ; String lastName = args[5] ; String city = args[6] ; Region region = Region.US_EAST_1; Route53DomainsClient route53DomainsClient = Route53DomainsClient.builder() .region(region) .credentialsProvider(ProfileCredentialsProvider.create()) .build(); System.out.println(DASHES); System.out.println("Welcome to the Amazon Route 53 domains example scenario."); System.out.println(DASHES); System.out.println(DASHES); System.out.println("1. List current domains."); listDomains(route53DomainsClient); System.out.println(DASHES); System.out.println(DASHES); System.out.println("2. List operations in the past year."); listOperations(route53DomainsClient); System.out.println(DASHES); System.out.println(DASHES); System.out.println("3. View billing for the account in the past year."); listBillingRecords(route53DomainsClient); System.out.println(DASHES); System.out.println(DASHES); System.out.println("4. View prices for domain types."); listPrices(route53DomainsClient, domainType); System.out.println(DASHES); System.out.println(DASHES); System.out.println("5. Get domain suggestions."); listDomainSuggestions(route53DomainsClient, domainSuggestion); System.out.println(DASHES); System.out.println(DASHES); System.out.println("6. Check domain availability."); checkDomainAvailability(route53DomainsClient, domainSuggestion); System.out.println(DASHES); System.out.println(DASHES); System.out.println("7. Check domain transferability."); checkDomainTransferability(route53DomainsClient, domainSuggestion); System.out.println(DASHES); System.out.println(DASHES); System.out.println("8. Request a domain registration."); String opId = requestDomainRegistration(route53DomainsClient, domainSuggestion, phoneNumber, email, firstName, lastName, city); System.out.println(DASHES); System.out.println(DASHES); System.out.println("9. Get operation details."); getOperationalDetail(route53DomainsClient, opId); System.out.println(DASHES); System.out.println(DASHES); System.out.println("10. Get domain details."); System.out.println("Note: You must have a registered domain to get details."); System.out.println("Otherwise, an exception is thrown that states " ); System.out.println("Domain xxxxxxx not found in xxxxxxx account."); getDomainDetails(route53DomainsClient, domainSuggestion); System.out.println(DASHES); } public static void getDomainDetails(Route53DomainsClient route53DomainsClient, String domainSuggestion){ try { GetDomainDetailRequest detailRequest = GetDomainDetailRequest.builder() .domainName(domainSuggestion) .build(); GetDomainDetailResponse response = route53DomainsClient.getDomainDetail(detailRequest); System.out.println("The contact first name is " + response.registrantContact().firstName()); System.out.println("The contact last name is " + response.registrantContact().lastName()); System.out.println("The contact org name is " + response.registrantContact().organizationName()); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } } public static void getOperationalDetail(Route53DomainsClient route53DomainsClient, String operationId) { try { GetOperationDetailRequest detailRequest = GetOperationDetailRequest.builder() .operationId(operationId) .build(); GetOperationDetailResponse response = route53DomainsClient.getOperationDetail(detailRequest); System.out.println("Operation detail message is "+response.message()); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } } public static String requestDomainRegistration(Route53DomainsClient route53DomainsClient, String domainSuggestion, String phoneNumber, String email, String firstName, String lastName, String city) { try { ContactDetail contactDetail = ContactDetail.builder() .contactType(ContactType.COMPANY) .state("LA") .countryCode(CountryCode.IN) .email(email) .firstName(firstName) .lastName(lastName) .city(city) .phoneNumber(phoneNumber) .organizationName("My Org") .addressLine1("My Address") .zipCode("123 123") .build(); RegisterDomainRequest domainRequest = RegisterDomainRequest.builder() .adminContact(contactDetail) .registrantContact(contactDetail) .techContact(contactDetail) .domainName(domainSuggestion) .autoRenew(true) .durationInYears(1) .build(); RegisterDomainResponse response = route53DomainsClient.registerDomain(domainRequest); System.out.println("Registration requested. Operation Id: " +response.operationId()); return response.operationId(); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } return ""; } public static void checkDomainTransferability(Route53DomainsClient route53DomainsClient, String domainSuggestion){ try { CheckDomainTransferabilityRequest transferabilityRequest = CheckDomainTransferabilityRequest.builder() .domainName(domainSuggestion) .build(); CheckDomainTransferabilityResponse response = route53DomainsClient.checkDomainTransferability(transferabilityRequest); System.out.println("Transferability: "+response.transferability().transferable().toString()); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } } public static void checkDomainAvailability(Route53DomainsClient route53DomainsClient, String domainSuggestion) { try { CheckDomainAvailabilityRequest availabilityRequest = CheckDomainAvailabilityRequest.builder() .domainName(domainSuggestion) .build(); CheckDomainAvailabilityResponse response = route53DomainsClient.checkDomainAvailability(availabilityRequest); System.out.println(domainSuggestion +" is "+response.availability().toString()); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } } public static void listDomainSuggestions(Route53DomainsClient route53DomainsClient, String domainSuggestion) { try { GetDomainSuggestionsRequest suggestionsRequest = GetDomainSuggestionsRequest.builder() .domainName(domainSuggestion) .suggestionCount(5) .onlyAvailable(true) .build(); GetDomainSuggestionsResponse response = route53DomainsClient.getDomainSuggestions(suggestionsRequest); List<DomainSuggestion> suggestions = response.suggestionsList(); for (DomainSuggestion suggestion: suggestions) { System.out.println("Suggestion Name: "+suggestion.domainName()); System.out.println("Availability: "+suggestion.availability()); System.out.println(" "); } } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } } public static void listPrices(Route53DomainsClient route53DomainsClient, String domainType) { try { ListPricesRequest pricesRequest = ListPricesRequest.builder() .tld(domainType) .build(); ListPricesIterable listRes = route53DomainsClient.listPricesPaginator(pricesRequest); listRes.stream() .flatMap(r -> r.prices().stream()) .forEach(content -> System.out.println(" Name: " + content.name() + " Registration: " + content.registrationPrice().price() + " " + content.registrationPrice().currency() + " Renewal: "+ content.renewalPrice().price() + " " + content.renewalPrice().currency() )); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } } public static void listBillingRecords(Route53DomainsClient route53DomainsClient) { try { Date currentDate = new Date(); LocalDateTime localDateTime = currentDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); ZoneOffset zoneOffset = ZoneOffset.of("+01:00"); LocalDateTime localDateTime2 = localDateTime.minusYears(1); Instant myStartTime = localDateTime2.toInstant(zoneOffset); Instant myEndTime = localDateTime.toInstant(zoneOffset); ViewBillingRequest viewBillingRequest = ViewBillingRequest.builder() .start(myStartTime) .end(myEndTime) .build(); ViewBillingIterable listRes = route53DomainsClient.viewBillingPaginator(viewBillingRequest); listRes.stream() .flatMap(r -> r.billingRecords().stream()) .forEach(content -> System.out.println(" Bill Date:: " + content.billDate() + " Operation: " + content.operationAsString() + " Price: "+content.price())); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } } public static void listOperations(Route53DomainsClient route53DomainsClient) { try { Date currentDate = new Date(); LocalDateTime localDateTime = currentDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); ZoneOffset zoneOffset = ZoneOffset.of("+01:00"); localDateTime = localDateTime.minusYears(1); Instant myTime = localDateTime.toInstant(zoneOffset); ListOperationsRequest operationsRequest = ListOperationsRequest.builder() .submittedSince(myTime) .build(); ListOperationsIterable listRes = route53DomainsClient.listOperationsPaginator(operationsRequest); listRes.stream() .flatMap(r -> r.operations().stream()) .forEach(content -> System.out.println(" Operation Id: " + content.operationId() + " Status: " + content.statusAsString() + " Date: "+content.submittedDate())); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } } public static void listDomains(Route53DomainsClient route53DomainsClient) { try { ListDomainsIterable listRes = route53DomainsClient.listDomainsPaginator(); listRes.stream() .flatMap(r -> r.domains().stream()) .forEach(content -> System.out.println("The domain name is " + content.domainName())); } catch (Route53Exception e) { System.err.println(e.getMessage()); System.exit(1); } } }
-
有关 API 详细信息,请参阅《AWS SDK for Java 2.x API 参考》中的以下主题。
-