5

Tôi đang cố gắng tạo một móc triển khai để khi triển khai ứng dụng PHP của mình sang EB, nó sẽ gửi phiên bản mã ứng dụng hoặc điểm cam kết git, thậm chí cả thẻ git nếu có trong dịch vụ phân tích của tôi.Có biến môi trường cho các thùng chứa Amazon ElasticBeanstalk cho phiên bản được triển khai không?

Tôi đã lang thang nếu có bất kỳ biến môi trường nào được đặt trên các phiên bản để biết phiên bản nào đang chạy hoặc liệu nó có sao chép bất kỳ dữ liệu git nào vào một cá thể được triển khai như một phần của thiết lập EB không?

Trả lời

2

AFAIK, khi Cây đậu đàn hồi triển khai ứng dụng của bạn lên đám mây, nó tạo bản lưu trữ với lệnh git archive. Tệp lưu trữ kết quả không có bất kỳ siêu dữ liệu kho lưu trữ nào. Mặc dù Elastic Beanstalk đang sử dụng cam kết sha1 của bạn như một phần của tên phiên bản, nếu bạn đang sử dụng lược đồ phiên bản của riêng bạn, sha1 có thể không có sẵn.

Thay vào đó, bạn có thể tạo tập lệnh shell để gửi thông tin cam kết đến dịch vụ phân tích của mình. Với bí danh git, bạn có thể thực thi tập lệnh của mình và aws.push làm một lệnh.

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

Sau đó thực hiện nó như $ git custom.push

Trong ví dụ trên, custom.sh sẽ được thực hiện ngay cả khi aws.push dẫn đến lỗi, vì vậy nếu bạn cần giải pháp đáng tin cậy hơn, bạn có thể muốn tích hợp nó chặt chẽ hơn với .git/AWSDevTools/aws.elasticbeanstalk.push bản thân tập lệnh.

Hy vọng điều đó sẽ hữu ích.

0

Đối với ứng dụng Python được triển khai từ Git, cam kết SHA-1 được sử dụng cho phiên bản beanstalk được lưu trong trường nhận xét của tệp ZIP nguồn của ứng dụng hiện đang được triển khai. Khi khởi động ứng dụng, tôi trích xuất giá trị đó và hiển thị nó cho ứng dụng.

Các Python code đang

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

Bạn có thể kiểm tra giá trị từ vỏ với

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

Bạn có thể sử dụng ZipArchive::getArchiveComment trong PHP.