0

我正在開發一個在AWS上運行的Spring Boot應用程序。我已經安裝了Spring Cloud AWS啓動器,但是當我嘗試在本地運行集成測試時,在我的筆記本電腦上出現此錯誤。如何在AWS上運行的Spring Boot應用程序本地運行集成測試?

錯誤創建名稱爲豆「org.springframework.cloud.aws.context.support.io.ResourceLoaderBeanPostProcessor#0」:無法解析參考豆「amazonS3」,同時設置構造函數的參數;嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建名爲'amazonS3'的bean時出錯:init方法的調用失敗;嵌套異常是java.lang.IllegalStateException:由於應用程序未在EC2環境中運行,因此沒有可用的EC2元數據。只有當應用程序在EC2實例上運行時,區域檢測纔有可能

有沒有在沒有AWS的情況下運行我的應用程序的方法?僅用於本地集成測試目的。

+1

如果您從AWS環境運行應用程序。爲了避免這個錯誤,請在application.properties文件中指定region手冊,如下所示: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。

只是不要將AmazonS3注入到默認配置文件中的Bean,並且它不會被創建。

希望我能正確理解你的問題。

相關問題