Jeśli ktoś szuka odpowiedzi, oto porady, które otrzymałem od wsparcia biznesowego aws.
Cały kod wdrożony w Elastic Beanstalk musi być „bezstanowy”, tj. Nigdy nie wprowadzaj zmian bezpośrednio w działającej instancji beanstalk przy użyciu protokołu SSH lub FTP.... Ponieważ spowoduje to niespójności lub utratę danych! — Elastic Beanstalk nie jest przeznaczony dla aplikacji, które nie są bezstanowe. na obciążenie sieci / procesora i buduj nowe instancje z podstawowego AMI. Jeśli w instancji występują problemy lub związany z nimi sprzęt, Elastic Beanstalk przerwie te uruchomione instancje i zastąpi je nowymi. W związku z tym, dlaczego żadna modyfikacja kodu nie musi być stosowana lub wykonywana „bezpośrednio” w istniejącej instancji, ponieważ nowe instancje nie będą świadome tych bezpośrednich zmian. WSZYSTKIE zmiany / kod należy przesłać do konsoli Elastic Beanstalk lub narzędzi CLI i przekazać do wszystkich uruchomionych instancji.Więcej informacji na temat koncepcji projektowych Elastic Beanstalk można znaleźć pod następującym linkiemhttp://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.concepts .projekt.html
Sugerowane rozwiązanie:Mając powyższe na uwadze, jeśli używamy MongoDB do przechowywania danych aplikacji, zalecamy oddzielenie środowiska MongoDB od aplikacji Node.js.I.E. Utwórz serwer MongoDB poza Elastic Beanstalk, na przykład uruchamiając MongoDB bezpośrednio na EC2 i nawiąż połączenie aplikacji Elastic Beanstalk Node.js z serwerem MongoDB przy użyciu ustawień połączenia w aplikacji.
-Tworzenie MongoDBBelow to kilka przykładowych linków, które mogą być przydatne w twoim scenariuszu tworzenia serwera MongoDB. Wdróż MongoDB w EC2,https://docs.mongodb.org/ecosystem/platforms/amazon-ec2/ Klient węzła MongoDBhttps://docs.mongodb.org/getting-started/node /klient/ MongoDB w przewodniku szybkiego startu AWS Cloudhttp://docs.aws .amazon.com/quickstart/latest/mongodb/architecture.html
-Dodawanie zmiennych środowiskowych do Elastic Beanstalk, aby odwoływać się do serwera MongoDB Po utworzeniu serwera MongoDB możesz przekazać potrzebne ustawienia połączenia do środowiska Elastic Beanstalk za pomocą zmiennych środowiskowych. itp..
option_settings:- option_name:MONGO_DB_URLvalue:"Twój wewnętrzny adres IP MongoDB EC2"
Informacje na temat korzystania z właściwości środowiska i odczytywania ich z poziomu aplikacji można znaleźć poniżej.http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.container.html#create_deploy_nodejs_custom_procontainer-v Informacje o .ebextensions .config można znaleźć pod następującym linkiemhttp ://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html
Alternatywnie możesz również ustawić zmienną środowiskową za pomocą cli lub za pośrednictwem AWS Consoleeb cli set zmienne środowiskowe można odczytać za pomocą poniższego linku.http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-setenv.html Korzystanie z konsoli AWSAby ustawić właściwości systemu (AWS Management Console)Otwórz konsolę Elastic Beanstalk.Przejdź do konsoli zarządzania dla swojego środowiska.Wybierz konfigurację.W sekcji Konfiguracja oprogramowania wybierz Edytuj.W obszarze Właściwości środowiska utwórz swoją nazwę/wartości...
Uzyskiwanie dostępu do ustawień konfiguracji środowiskaW środowisku Node.js działającym w AWS Elastic Beanstalk można uzyskać dostęp do zmiennych środowiskowych przy użyciu metody process.env.ENV_VARIABLE podobnej do następującego przykładu.process.env.MONGO_DB_URLprocess.env.PARAM2
Podsumowanie:Podsumowując, zalecam wykonanie następujących kroków, aby zintegrować MongoDB ze środowiskami Elastic Beanstalk. Krok 1) Utwórz serwer MongoDB poza Elastic Beanstalk. Krok 2) Utwórz aplikację Node.js w Elastic Beanstalk, która łączy się z serwerem MongoDB