当我在AWS Elastic Beanstalk上运行的应用程序尝试通过AWS JAVA SDK调用quicksight时,我得到java.net.UnknownHostException: quicksight.ca-central-1.amazonaws.com
。
当我进入基础EC2实例时,ping
也无法解析主机
[ec2-user@ip-xx-xx-xx-xx ~]$ ping quicksight.ca-central-1.amazonaws.com
ping: unknown host quicksight.ca-central-1.amazonaws.com
我无法通过编辑/etc/hosts
解决此问题,因为这是一个自动缩放环境。
我检查了VPC,但是启用了DNS解析和主机名,并且VPC中的beantalk环境可以解析主机。
有人知道这还有什么吗?
谢谢!
问题是我在创建Quicksight客户端时未指定区域
quickSightClient = QuickSightClient.create() // this was the problem
因此,它默认为经过身份验证的用户的默认区域,该区域本地为US-East-1
,但EC2 prod实例位于CA-Central-1
中,该实例没有Quicksight端点。因为主机实际上不存在,所以它没有解决。
我试图在Elastic Beanstalk控制台中定义以下环境变量AWS_REGION=us-east-1
;但我无法使它正常工作。似乎没有什么改变
因此,我改为在代码中显式设置区域。
quickSightClient = QuickSightClient.builder().region(Region.US_EAST_1).build()
问题已解决!