Kubernetes中LocalStack与Spring Boot SQS连接403错误排查
正确的LocalStack SQS端点URL配置方案
首先,LocalStack所有AWS兼容API的默认核心服务端口是4566,你需要将端点URL调整为包含该端口的地址:http://localstack.localstack.svc.cluster.local:4566
针对你遇到的403错误+域名解析失败提示的矛盾问题,补充说明和配置建议:
- 虽然
nc能连通80和4566端口,但Spring Boot的AWS客户端(无论用Spring Cloud AWS还是原生AWS SDK)对SQS端点格式有严格要求,仅使用80端口的URL不符合LocalStack的API规范,会导致服务端返回403,日志可能误报为域名解析失败。 - Spring Boot配置文件示例(适配Spring Cloud AWS):
spring.cloud.aws.sqs.endpoint=http://localstack.localstack.svc.cluster.local:4566 spring.cloud.aws.region.static=us-east-1 spring.cloud.aws.credentials.access-key=test spring.cloud.aws.credentials.secret-key=test - 原生AWS SDK代码配置示例:
SqsClient sqsClient = SqsClient.builder() .endpointOverride(URI.create("http://localstack.localstack.svc.cluster.local:4566")) .region(Region.US_EAST_1) .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("test", "test"))) .build(); - 快速验证端点可用性:在应用容器内执行
curl http://localstack.localstack.svc.cluster.local:4566/health,若返回健康状态JSON,说明端点配置有效。
内容的提问来源于stack exchange,提问作者Mister_L
相关产品推荐
相关产品推荐

