0

私はAWS上で動作するSpring Bootアプリケーションを開発しています。 Spring Cloud AWSスターターをインストールしましたが、ローカルで統合テストを実行しようとすると、ラップトップでこのエラーが発生します。AWS上で動作するSpringブートアプリケーションでローカルで統合テストを実行するにはどうすればよいですか?

「org.springframework.cloud.aws.context.support.io.ResourceLoaderBeanPostProcessor#0」の名前を持つBeanを作成エラー:コンストラクタの引数を設定しながらBeanのamazonS3」への参照を解決できません。ネストされた例外はorg.springframework.beans.factory.BeanCreationExceptionです:名前 'amazonS3'のBeanを作成中にエラーが発生しました: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には行かないでしょう。

AmazonS3をデフォルトプロファイルのBeanに挿入するだけで、作成されません。

私はあなたの質問を正しく理解しました。

関連する問題