2016-10-06 20 views
6

Làm cách nào để xác định vùng từ bên trong hàm Lambda Nodejs/Javascript AWS? Biến môi trường AWS_DEFAULT_REGION cung cấp một tham chiếu (xem here, cho Java, không phải là nút/Javascript.)Cách nhận Vùng AWS trong hàm lambda Javascript/Nodejs:

Tôi nhận ra rằng tôi có thể nhận được "invokedFunctionArn" từ đối tượng ngữ cảnh và phân tích cú pháp nó cho vùng, nhưng nó có vẻ như nên có một cách trực tiếp hơn.

+0

Afaik cách duy nhất là để phân tích ARN –

+0

Trong khi nó không phải là không thể hack đường ra để lấy thông tin; theo ý kiến ​​của tôi, sẽ dễ dàng hơn trong việc cung cấp thông tin chi tiết về REGION như một phần của chi tiết cấu hình hoặc thông tin môi trường [tức là thêm nó vào mã/cấu hình] –

Trả lời

0

Bạn có thể xem ngữ cảnh được truyền vào. Có thể có nhiều điều thú vị hơn để khám phá ở đó.

exports.handler = function(event, context) { 
    console.log('Function name:', context.functionName); 
    context.succeed(); 
}; 

Tôi không biết bất cứ điều gì đơn giản chỉ cho bạn biết khu vực. Một hack xấu xí sẽ được thực hiện một cái gì đó trong hệ điều hành có chứa (linux) và hy vọng cho các thông tin để hiển thị. uname -a có lẽ.

Tôi chỉ tò mò thôi. Mày cần nó để làm gì? Một số loại thông tin gỡ lỗi?

+0

Lambda sẽ được triển khai ở các vùng khác nhau và do đó sẽ có các giá trị cấu hình theo vùng cụ thể (chủ đề SNS, cho một). – ktippetts

+0

Ngoài ra (và quan trọng nhất), tệp cấu hình (json) chứa cấu hình cho tất cả các vùng, với khóa là khu vực. – ktippetts

0

Có vẻ như không phải là cách trực tiếp hơn để xác định vùng trong hàm lambda đang chạy, ngoài việc sử dụng thuộc tính context.invokedFunctionArn.

Đây là những gì tôi đã kết thúc thực hiện:

exports.handler = (event,context, callback) => { 
    var arnList = (context.invokedFunctionArn).split(":"); 
    var lambdaRegion = arnList[3] //region is the fourth element in a lambda function arn 


    //more code 
} 
Các vấn đề liên quan