5

Próbuję wykonać hak do wdrożenia, więc gdy rozmieszczę moją aplikację PHP na EB, wyśle ​​ona wersję kodu aplikacji lub punkt zatwierdzenia git, ewentualnie nawet tag git, jeśli taki istnieje dla mojej usługi analitycznej.Czy istnieje zmienna środowiskowa dla kontenerów Amazon ElasticBeanstalk dla wdrożonej wersji?

Błąkałem się, czy są jakieś zmienne środowiskowe, które są ustawione na instancjach, aby powiedzieć, jaka jest ich wersja, czy nawet kopiuje jakiekolwiek dane git do instancji, która została wdrożona jako część konfiguracji EB?

Odpowiedz

2

AFAIK, gdy Elastic Beanstalk wdraża aplikację w chmurze, tworzy archiwum z poleceniem git archive. Wynikowy plik archiwum nie zawiera metadanych repozytorium. Chociaż Elastic Beanstalk używa twojego commit sha1 jako części nazwy wersji, jeśli używasz własnego schematu wersjonowania, sha1 może nie być dostępny.

Alternatywnie można utworzyć skrypt powłoki, aby wysłać informacje o zatwierdzeniu do usługi analitycznej. Z aliasem git możesz wykonać swój skrypt i aws.push jako jedno polecenie.

# .git/config 

[alias "custom"] 
     push = !git aws.push $1 && ./custom.sh 


# custom.sh 

commit=$(git rev-parse HEAD) 
echo 'send info to analytics service for commit: ' $commit 

następnie wykonać ją jako $ git custom.push

w powyższym przykładzie, custom.sh będą wykonywane nawet gdy aws.push spowodowało błędu, więc jeśli potrzebujesz bardziej niezawodne rozwiązanie, warto zintegrować go mocniej z .git/AWSDevTools/aws.elasticbeanstalk.push sam skrypt.

Mam nadzieję, że to pomaga.

0

Dla mojej aplikacji Python wdrożonej z Git, zatwierdzenie SHA-1 używane do wersji beanstalk jest przechowywane w polu komentarza źródłowego pliku ZIP aktualnie wdrożonej aplikacji. Podczas uruchamiania aplikacji wyodrębniam tę wartość i udostępniam ją aplikacji.

kod Python jest

with zipfile.ZipFile('/opt/elasticbeanstalk/deploy/appsource/source_bundle') as z: 
    return z.comment 

Można sprawdzić wartość z powłoki z

$ unzip -z /opt/elasticbeanstalk/deploy/appsource/source_bundle 
Archive: /opt/elasticbeanstalk/deploy/appsource/source_bundle 
1049cbed865334a805ae2ae3179339dd... 

Można użyć ZipArchive::getArchiveComment w PHP.

Powiązane problemy