当前位置: 首页 > 知识库问答 >
问题:

无法从Fargate连接AWS Elasticsearch。获取java。网未知后异常

贺雅健
2023-03-14

我有一个使用AWS Fargate部署的Spring Boot映像和使用AWS Elasticsearch Service的Elasticsearch集群。两者都在同一个VPC和子网下。以下是Elasticsearch的访问策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:ap-south-1:8655488xxxxx:domain/website-qa/*"
    }
  ]
}

安全组:Fargate:sg-test033f776d5fbed5c0000

子网:
Fargate:subnet-test025f49153cf245a2d11、subnet-test01f19783c005010f122、subnet-test076dfbba51d92d49033
Elasticsearch:ap-South-1a:subnet-test025f49153cf245a2d11

在elasticsearch的安全组下,我允许Fargate的安全组用于端口4439200

下面是application.yml文件:

spring:
  elasticsearch:
    rest:
      connection-timeout: 5000 #milliseconds
      read-timeout: 5000 #milliseconds
      uris: https://vpc-website-qa-xxxxxxxxxxxx.ap-south-1.es.amazonaws.com:9200

因此,Spring boot尝试连接到Elasticsearch,但得到java.net.未知主机异常https://vpc-website-qa-xxxxxxxxxxxx.ap-south-1.es.amazonaws.com:9200

也尝试了port443,但不起作用。为什么主机没有在Fargate集群中解析?我在这里错过了什么?

共有1个答案

唐宇定
2023-03-14

根据评论。

ES不使用9200端口。仅支持超文本传输协议端口80和端口443上的https。来自文档:

Amazon ES仅接受通过端口80(HTTP)或443(HTTPS)的连接。

此外spring-data-elasticsearch只需要域,因此不应使用https

删除https并使用端口443解决了问题。

URI:vpc-website-qa-xxxxxxxxxxx。ap-south-1。锿。amazonaws。com:443

 类似资料:
  • 我收到这个错误消息"java.net.未知主机异常:无法解决主机"api.themoviedb.org":没有与主机名相关联的地址"。我读到的所有stackoverflow帖子都说清单文件可能是错误的,但我认为在这一点上是正确的,所以我不确定如何继续。 AndroidManifest。xml: MainActivity.java: }

  • 尝试更新一个小型实验性Spring Elasticsearch项目,以反映3.2.6版本参考指南中的更改。 如前所述:从Elasticsearch 7开始被弃用,并将在8中被删除。尝试重新配置到高级Rest客户端。 但是得到以下错误 旧设置(有效) 弹性搜索配置 新设置 我错过了什么?

  • 我正在运行一个带有Hibernate和Spring数据的Spring启动应用程序。我有以下方法: 当我第四次运行此方法时,我得到了无法获取 JDBC 连接异常。我怀疑当我调用存储过程“callEncrypt”时,Hibernate在作业完成后不会释放连接,因为如果我删除该行,应用程序就可以完美运行,无法手动关闭连接,因为Hibernate正在处理事务(并且没有理由这样做),所以我已经卡住了一段时间

  • 我需要一些关于我遇到的一些问题的帮助,当尝试连接到redis使用spring Boot。 我正在使用以下重新配置: 和下面的类,我正在尝试创建一个单元测试来测试我的连接: 我知道这里有一个类似的问题,但我还没有要求的分数来评论,我尝试了他们的建议,我仍然得到同样的结果。下面是我的pom.xml: 下面是我的属性文件: redis.clients.jedis.exceptions.jedisconn

  • 问题内容: 我已经在几个线程中看到了答案,但对我却没有解决,而且由于我的问题偶尔发生,因此问这个问题是否有人有任何想法。 我正在使用jedis版本2.8.0,Spring Data Redis版本1.7.5。和redis服务器版本2.8.4用于我们的缓存应用程序。 我有多个缓存保存在redis中,并且从redis获得请求。我正在使用spring数据redis API保存和获取数据。 所有保存和获取

  • 我每5分钟运行一次批处理作业,我不希望其他节点运行同一个作业,因此我使用绝地锁将一个对象锁定5分钟。这样,如果另一个节点试图运行同一个作业,它们就不会得到锁。工作是在获得锁后开始的,当我试图从Redis读取它时,我得到以下异常情况: 这是我的密码 spring启动应用程序。属性文件 作业在开始时执行以下代码以获得锁 之后,redis仓库类试图读取特定模式的值... 这就是我在日志中看到的完全例外。