0

AWS에서 실행되는 Spring Boot 애플리케이션을 개발 중입니다. 스프링 클라우드 AWS 스타터를 설치했지만 로컬에서 통합 테스트를 실행하려고하면 랩톱에서이 오류가 발생합니다.AWS에서 실행되는 Spring Boot 애플리케이션에서 로컬로 통합 테스트를 실행할 수 있습니까?

'org.springframework.cloud.aws.context.support.io.ResourceLoaderBeanPostProcessor # 0'이름을 가진 bean을 생성 오류 : 생성자 인수를 설정하는 동안 빈 'amazonS3'에 대한 참조를 확인할 수 없습니다; 중첩 예외는 org.springframework.beans.factory.BeanCreationException입니다 : 'amazonS3'이라는 이름으로 빈 생성 오류 : init 메소드 호출 실패. 중첩 예외는 java.lang.IllegalStateException입니다. 응용 프로그램이 EC2 환경에서 실행되고 있지 않기 때문에 사용 가능한 EC2 메타 데이터가 없습니다. 응용 프로그램이 EC2 인스턴스에서 실행중인 경우에만 영역 감지 가능

AWS없이 응용 프로그램을 실행할 수 있습니까? 로컬 통합 테스트 목적으로 만 사용됩니다.

+1

AWS 환경에서 애플리케이션을 실행하는 경우. 이 오류를 피하려면 다음과 같이 application.properties 파일에서 region manual을 지정하십시오.'cloud.aws.region.static = eu-west-1' – GVArt

+0

이 문제가 해결되었습니다. – abierto

답변

0

외부 API를 사용하는 클래스의 가짜 구현을 추가하는 것이 좋습니다. 테스트 프로파일에서만 사용할 수 있습니다. 예를 들어 :

@Component 
@Profile("default") 
public class FakePhotosUploader implements Photos { 

    @Override 
    public String uploadPhoto(byte[] bytes, String name, Integer receiptId) { 
    return UUID.randomUUID().toString(); 
    //you can write here some implementation, suitable for your tests 

    } 
} 

그리고 당신은 기본 프로필에 AWS를 해제 할 수 있습니다.

그래서 AWS에는 가지 않습니다.

기본 프로파일에있는 Bean에 AmazonS3을 삽입하지 마십시오. 생성되지 않습니다.

희망 사항 귀하의 질문을 올바르게 이해했습니다.