You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署SpringBoot连接AWS SQS时出现hostname cannot be null错误

问题分析与解决方案

核心错误为java.lang.IllegalArgumentException: hostname cannot be null,根源是Spring Cloud AWS的端点配置项名称错误,导致应用无法正确读取SQS服务地址,进而无法初始化AmazonSQSAsync Bean。

1. 修正application.yml配置

你的配置中cloud.aws.end-point是错误的命名,Spring Cloud AWS的正确配置项为cloud.aws.endpoint(无连字符),修正后的完整配置如下:

cloud:
  aws:
    stack:
      auto: false
    region:
      static: eu-central-1
    credentials:
      access-key: MyAPIKEY
      secret-key: MySecretKey
    endpoint:  # 修正此处,去掉连字符
      uri: http://172.18.0.3:4566
sqs:
  history:
    url: http://172.18.0.3:4566/000000000000/local_material_deportivo_fitness_history
    name: local_fitness_history

2. 网络连通性验证

确保你的API容器与SQS服务(如LocalStack)处于同一Docker网络:

  • 使用docker network ls查看现有网络,docker network inspect <网络名>确认容器IP或名称
  • 启动容器时加入同一网络:docker run --network <网络名> ...
  • 可直接使用SQS服务的容器名称作为地址(如http://localstack:4566),避免IP变动问题

3. 检查SQSConfig配置类

如果自定义了SQSConfig,需确保正确读取配置中的端点地址,示例代码如下:

import com.amazonaws.services.sqs.AmazonSQSAsync;
import com.amazonaws.services.sqs.AmazonSQSAsyncClientBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SQSConfig {

    @Value("${cloud.aws.endpoint.uri}")
    private String sqsEndpoint;

    @Value("${cloud.aws.region.static}")
    private String region;

    @Bean
    public AmazonSQSAsync amazonSQSAsync() {
        return AmazonSQSAsyncClientBuilder.standard()
                .withEndpointConfiguration(new com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration(sqsEndpoint, region))
                .build();
    }
}

4. 启动验证

重新构建Docker镜像并启动容器,检查日志是否还存在hostname cannot be null错误,若仍有问题:

  • 确认容器内是否能ping通SQS服务地址(进入容器:docker exec -it <容器ID> sh,执行ping 172.18.0.3)
  • 检查SQS服务是否正常运行,端口4566是否对外开放

内容的提问来源于stack exchange,提问作者Daviel Sánchez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 14:10:27