2016-04-05 16 views

Trả lời

8

Đối tượng context được chuyển đến hàm Lambda của bạn có thuộc tính được gọi là invokedFunctionArn. Các ARN là các định dạng:

arn:aws:<service>:<region>:<account_id>:<resource>

Vì vậy, bạn có thể chia chuỗi này theo tính chất : và tìm ra khu vực gắn liền với chức năng Lambda.

Lưu ý: Trong java, bạn sẽ gọi số getInvokedFunctionArn() getter của đối tượng ngữ cảnh.

+0

này hoạt động rất tốt. Cảm ơn bạn! –

+1

Biến môi trường 'AWS_DEFAULT_REGION' cũng có sẵn. Điều này có sẵn bên ngoài trình xử lý và không cần phân tích cú pháp. Xem câu trả lời của tôi cho mã. – sihil

+1

Lưu ý rằng biến môi trường này không có trong tất cả các môi trường thời gian chạy. Như bạn thấy, nó làm việc cho Java. – garnaat

20

Bạn có thể đọc biến môi trường AWS_DEFAULT_REGION và sử dụng hàm Regions.fromName để phân tích cú pháp đó thành vùng có thể sử dụng được.

Regions.fromName(System.getenv("AWS_DEFAULT_REGION")) 

Ưu điểm của phương pháp phân tích ARN này là bạn không cần đối tượng Ngữ cảnh có nghĩa là bạn có thể sử dụng nó bên ngoài chức năng xử lý của mình.

Nguồn: AWS's Lambda environment variables docs.

+1

Điều này được ghi lại trong https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html#lambda-environment-variables – pba

+0

Cảm ơn @pba - Tôi đã cập nhật câu trả lời của mình để phản ánh điều đó như một nguồn tốt hơn. – sihil

4

container Tất cả Lambda có các biến môi trường đặt $ AWS_REGION

Từ Mã Java trong Lambda.You có thể truy cập vào nó như sau

System.getenv ("AWS_REGION")

+2

cho Lambda trên nút js, nó là "process.env.AWS_REGION" –

Các vấn đề liên quan