¿Hay una variable de entorno para los contenedores Amazon ElasticBeanstalk para la versión implementada?

Estoy tratando de crear un enganche de deployment así que cuando implemente mi aplicación PHP en EB, enviaré la versión del código de la aplicación o el punto de confirmación de git, posiblemente incluso la label git si existe en mi service de análisis.

Estaba deambulando si hay variables de entorno establecidas en las instancias para decir qué versión están ejecutando o si incluso copy cualquiera de los datos de git a una instancia que se ha implementado como parte de una configuration de EB.

AFAIK, cuando Elastic Beanstalk despliega su aplicación en la nube, crea un file con el command git archive . El file de file resultante no tiene ningún metadato de repository. Aunque Elastic Beanstalk está utilizando su commit sha1 como parte del nombre de la versión, si está utilizando su propio esquema de control de versiones, sha1 podría no estar disponible.

Como alternativa, puede crear un script de shell para enviar la información de compromiso a su service de análisis. Con git alias puede ejecutar su script y aws.push como un solo command.

 # .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 

A continuación, ejecútelo como $ git custom.push

En el ejemplo anterior, custom.sh se ejecutará incluso cuando aws.push producido un error, por lo que si necesita una solución más confiable, es posible que desee integrarlo más estrictamente con el .git/AWSDevTools/aws.elasticbeanstalk.push .

Espero eso ayude.

Para mi aplicación Python implementada desde Git, la confirmación SHA-1 que se usa para la versión Beanstalk se almacena en el campo de comentario del file ZIP fuente de la aplicación implementada actualmente. Al iniciar la aplicación, extraigo ese valor y lo expongo a la aplicación.

El código de Python es

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

Puede verificar el valor del shell con

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

Puede usar ZipArchive :: getArchiveComment en PHP.