使用 java 访问 AWS ECS 负载均衡器端点

Posted

技术标签:

【中文标题】使用 java 访问 AWS ECS 负载均衡器端点【英文标题】:Hit AWS ECS load balancer endpoint using java 【发布时间】:2021-07-02 09:55:36 【问题描述】:

我正在尝试使用适用于 java 的 AWS 开发工具包访问负载均衡器端点,但是我在 AmazonECSClient 类中没有看到任何 API。我看到了设置端点、区域、凭据等的选项。

AmazonECSClient.builder()
  .withCredentials(new DefaultAWSCredentialsProviderChain())
  .withRegion(region)
  .withEndPoint()
  .build();

使用 curl 命令测试端点并且它可以工作 - curl http://elb-dummy-endpoint.us-east-1.elb.domain.com:80/invocations -d '"query": "some query"' -H 'Content-Type: application/json'

我是否必须进行常规 API 调用?

【问题讨论】:

【参考方案1】:

我正在尝试使用 AWS SDK for java 访问负载均衡器端点

您不会使用 AWS 开发工具包来访问负载均衡器端点。 AWS 开发工具包用于与 AWS API 交互以执行创建负载均衡器等操作。负载均衡器服务于您的 API,而不是 AWS API,因此您不会使用 AWS 开发工具包与负载均衡器交互。

您尝试使用的AmazonECSClient 类用于创建/更新/删除 ECS 集群、服务和任务等操作。它不是您在 ECS 上运行的应用程序的客户端。

使用 curl 命令测试端点并且它可以工作 - curl http://elb-dummy-endpoint.us-east-1.elb.domain.com:80/invocations-d '"query": "some query"' -H 'Content-Type: application/json'

您在此处使用 curl 对其进行测试以进行基本的 HTTP 调用,您没有使用 AWS CLI 工具。在 Java 中,你会做同样的事情,make a basic HTTP call 针对端点。

【讨论】:

以上是关于使用 java 访问 AWS ECS 负载均衡器端点的主要内容,如果未能解决你的问题,请参考以下文章

aws 如何从生产环境中的 lambda 函数访问 ECS 服务

ECS 服务的 AWS 网络负载均衡器运行状况检查失败

我是不是需要 AWS ECS 中带有 nginx 的 AWS 负载均衡器?

在网络负载均衡器 + 目标组后面运行 SSH 的 AWS ECS 服务使用 CodeDeploy 部署缓慢

AWS - ECS + Application Load Balancer的思考

用于微服务的私有子网 ecs 连接上负载均衡器的 AWS API 网关