5

Bir dağıtım kancası yapmaya çalışıyorum, böylece PHP uygulamamı EB'ye dağıttığımda, uygulama kodu sürümünü veya git taahhüt noktasını, belki de analytics hizmetime bir tane varsa git etiketini gönderecek.Dağıtılan sürüm için Amazon ElasticBeanstalk kapsayıcıları için ortam değişkeni var mı?

Örneklerde hangi sürümün çalışmakta olduğunu bildiren herhangi bir ortam değişkeni var mı, yoksa git verilerini bir EB kurulumunun parçası olarak dağıtılmış bir örneğe kopyalarsa dolaşıyordum?

cevap

2

AFAIK, Elastic Beanstalk uygulamanızı buluta dağıtırken, git archive komutuyla bir arşiv oluşturur. Ortaya çıkan arşiv dosyasında herhangi bir depo meta verisi yok. Elastic Beanstalk, commit sha1'ini sürüm adının bir parçası olarak kullanmasına rağmen, kendi sürüm şemanızı kullanıyorsanız, sha1 mevcut olmayabilir.

Alternatif olarak, işlem bilgilerini analitik servisinize göndermek için bir kabuk komut dosyası oluşturabilirsiniz. Git takma adlarıyla komut dosyanızı ve aws.push tek komut olarak çalıştırabilirsiniz.

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

Sonra Yukarıdaki örnekte $ git custom.push

olarak yürütmek aws.push hata ile sonuçlandı zaman, custom.sh bile idam edilecek, böylece daha güvenilir bir çözüm gerekiyorsa, birlikte daha sıkı entegre etmek isteyebilirsiniz .git/AWSDevTools/aws.elasticbeanstalk.push komut dosyasının kendisi.

Yardım edin.

0

Git'ten dağıtılan Python uygulamam için, beanstalk sürümü için kullanılan SHA-1 işlemi, o anda dağıtılan uygulamanın kaynak ZIP dosyasının yorum alanında saklanır. Uygulama açılışında, bu değeri alıp uygulamaya geçiriyorum.

Python kodu

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

Sen PHP'de ZipArchive::getArchiveComment kullanabilirsiniz

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

ile kabuğundan değerini kontrol edebilirsiniz olduğunu.

İlgili konular