В моем приложении java я создаю следующий клиент S3:
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().build();
Мой docker файл:
FROM openjdk:11.0.7-jre-slim
EXPOSE 8080
COPY target/myjar.jar /usr/app/
WORKDIR /usr/app
ENTRYPOINT ["java", "-jar", "myjar.jar"]
Я развернул свое приложение java в локальный контейнер, и я использовал следующую команду запуска:
$ docker run my-image-name --net="host" -e AWS_ACCESS_KEY_ID=XXXXXX -e AWS_SECRET_ACCESS_KEY=XXXXXX -e AWS_DEFAULT_REGION=eu-central-1
Но когда мое приложение springboot запускается, я получаю исключение при инициализации s3Client:
com.amazonaws.SdkClientException: Failed to connect to service endpoint:
......
Caused by: java.net.ConnectException: Connection refused (Connection refused)
.....
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'MyService': Invocation of init method failed; nested exception is com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.
Caused by: com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region.
Как вы Как видите, я передал переменную env AWS_DEFAULT_REGION (пробовал также AWS_REGION), но я все еще получаю эту ошибку.
Я использую следующую версию sdk:
<aws-java-sdk-core.version>1.11.800</aws-java-sdk-core.version>
Когда я ' m запуская приложение из inteliJ, все работает gr8, так как моя конфигурация и учетные данные настроены в. aws dir.
Может мне нужно открыть какие-либо порты снаружи?