Ich versuche, eine Web-Anwendung der "Hallo Welt" -Komplexität auf Elastic Beanstalk auszuführen. Ich habe kein Problem mit Spring Boot auf Elastic Beanstalk.Ist es möglich, eine Spring Cloud AWS-Anwendung auf Elastic Beanstalk auszuführen?
Aber wenn ich versuche, Spring Cloud AWS zu verwenden, stoße ich auf eine Vielzahl von Problemen. Der Referenzführer erwähnt nie, dass das Laufen auf Bohnenstange möglich ist, also belle ich vielleicht den falschen Baum auf?
Die Wurzel Problem, das ich zu stoßen scheinen die stackResourceRegistryFactoryBean Sprengung beim Versuch, den „Stapel“ zu identifizieren, verwendet wird - das heißt, die Cloudformation-Stack. Aber ich verwende Elastic Beanstalk, nicht CloudFormation. Die Wurzel Ausnahme ist:
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.aws.core.env.stack.config.StackResourceRegistryFactoryBean]: Factory method 'stackResourceRegistryFactoryBean' threw exception; nested exception is java.lang.IllegalAccessError: tried to access class org.springframework.cloud.aws.core.env.stack.config.AutoDetectingStackNameProvider from class org.springframework.cloud.aws.autoconfigure.context.ContextStackAutoConfiguration$StackAutoDetectConfiguration
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
... 89 more
Caused by: java.lang.IllegalAccessError: tried to access class org.springframework.cloud.aws.core.env.stack.config.AutoDetectingStackNameProvider from class org.springframework.cloud.aws.autoconfigure.context.ContextStackAutoConfiguration$StackAutoDetectConfiguration
at org.springframework.cloud.aws.autoconfigure.context.ContextStackAutoConfiguration$StackAutoDetectConfiguration.stackResourceRegistryFactoryBean(ContextStackAutoConfiguration.java:71)
at org.springframework.cloud.aws.autoconfigure.context.ContextStackAutoConfiguration$StackAutoDetectConfiguration$$EnhancerBySpringCGLIB$$432c7658.CGLIB$stackResourceRegistryFactoryBean$0(<generated>)
at org.springframework.cloud.aws.autoconfigure.context.ContextStackAutoConfiguration$StackAutoDetectConfiguration$$EnhancerBySpringCGLIB$$432c7658$$FastClassBySpringCGLIB$$47c6e7d2.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
...
Es gibt Tags vorhanden auf der erzeugten EC2-Instanz für "aws: Cloudformation: Stack-ID" und "aws: Cloudformation: Stack-namen", wenn es relevant ist, und mein Verständnis ist, dass Bohnenstange verwendet Cloudformation hinter den Kulissen Stacks. Ich habe versucht, den Namen des Stapels manuell über @EnableStackConfiguration anzugeben, aber da der Name generiert wird, würde ich das lieber nicht tun, auch wenn es funktioniert.
Also meine Fragen sind: 1) Ist es möglich, eine Spring Cloud AWS-basierte Anwendung auf Elastic Beanstalk ausführen? 2) Wenn ja, sind spezielle Schritte erforderlich? Zum Beispiel habe ich bereits die Lösung für den Lesezugriff von CloudFormation entdeckt, die für die Rolle erforderlich ist. 3) Gibt es eine Möglichkeit, den Teil von Spring Cloud AWS zu deaktivieren, der versucht, Ressourcennamen vom Stapel zu erhalten? An dieser Stelle benötigt meine App das nicht.
Dank im Voraus, k
Vielen Dank, das war sehr hilfreich für mich. – shawnjohnson