亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

AWS Java SDK v2 應將哪個區域終端節點用于 Route 53?

AWS Java SDK v2 應將哪個區域終端節點用于 Route 53?

滄海一幻覺 2023-08-16 15:58:42
在 Windows 10 上,我使用 AWS Java SDK v2 (?software.amazon.awssdk:route53:2.8.3),并且我只是嘗試連接并列出所有 Route 53 托管區域。我已us-west-1在我的用戶配置(在我的.aws/config文件中)中指定為默認區域。我Route53Client使用以下命令創建一個:Route53Client?route53Client?=?Route53Client.builder().build();請注意,我沒有指出區域,因為在在線文檔中它說:當您使用 AWS CLI 或開發工具包提交請求時,請不指定區域和終端節點,或指定 us-east-1 作為區域。然后我嘗試使用如下方式列出托管區域:Set<HostedZone>?hostedZones?=?client.listHostedZonesPaginator().stream() ??.flatMap(response?->?response.hostedZones().stream()) ??.collect(Collectors.toSet());在日志中我看到這樣的調試消息:[DEBUG] Unable to load region from software.amazon.awssdk.regions.providers.SystemSettingsRegionProvider@...:Unable to load region from system settings. Region must be specified either via environment variable (AWS_REGION) or ?system property (aws.region).然后它拋出一個java.net.UnknownHostExceptionfor?route53.us-west-1.amazonaws.com。當然,我現在的互聯網連接不穩定。這是正確的終點嗎?如果是,為什么該端點沒有在https://docs.aws.amazon.com/general/latest/gr/rande.html中列出?如果不是,us-west1如果我遵循在線文檔(如我上面引用的),它為什么要嘗試連接到端點,這表明不需要指示區域?或者問題僅僅是我的互聯網連接和目前不穩定的 DNS 查找?
查看完整描述

2 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

AWS SDK 開發團隊決定要求 Route53 請求明確指示Region.AWS_GLOBAL或 請求不起作用,

要訪問 Route53,您當前需要指定 AWS_GLOBAL 區域。這樣做是為了防止客戶使用全球服務,而沒有意識到對于此服務,您的呼叫可能不會停留在該地區,而可能會跨越全球。

不幸的是,亞馬遜沒有在 SDK 中記錄這一點(我可以找到),也沒有提供有用的錯誤消息,而是假設開發人員在 SDK 嘗試訪問不存在的端點時會以某種方式猜測到問題,即使SDK 是根據 API 和在線文檔使用的。

簡而言之,Route53 客戶端必須像這樣創建:

route53Client?=?Route53Client.builder().region(Region.AWS_GLOBAL).build();


查看完整回答
反對 回復 2023-08-16
?
慕容森

TA貢獻1853條經驗 獲得超18個贊

以下是列出托管區域的 AWS Route 53 V2 代碼示例:


package com.example.route;


//snippet-start:[route.java2.list_zones.import]

import software.amazon.awssdk.regions.Region;

import software.amazon.awssdk.services.route53.Route53Client;

import software.amazon.awssdk.services.route53.model.HostedZone;

import software.amazon.awssdk.services.route53.model.Route53Exception;

import software.amazon.awssdk.services.route53.model.ListHostedZonesResponse;

import java.util.List;

//snippet-end:[route.java2.list_zones.import]


public class ListHostedZones {

    public static void main(String[] args) {


        Region region = Region.AWS_GLOBAL;

        Route53Client route53Client = Route53Client.builder()

                .region(region)

                .build();


        listZones(route53Client);

    }


    //snippet-start:[route.java2.list_zones.main]

    public static void listZones(Route53Client route53Client) {


        try {


            ListHostedZonesResponse zonesResponse = route53Client.listHostedZones();

            List<HostedZone> checklist = zonesResponse.hostedZones();


            for (HostedZone check: checklist) {

                System.out.println("The name is : "+check.name());

            }


        } catch (Route53Exception e) {

            System.err.println(e.getMessage());

            System.exit(1);

        }

    }

    //snippet-end:[route.java2.list_zones.main]

}


查看完整回答
反對 回復 2023-08-16
  • 2 回答
  • 0 關注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號