Tôi có một hàm AWA Lambda cần kết nối với dịch vụ TCP từ xa. Có cách nào để cấu hình chức năng Lambda với địa chỉ IP của dịch vụ từ xa sau khi hàm lambda đã được triển khai cho AWS không? Hoặc tôi có phải nướng cấu hình vào hàm Lambda được đóng gói trước khi nó được triển khai không?cấu hình thời gian chạy cho hàm AWS Lambda
Trả lời
Bạn có thể gọi hàm Lambda qua đăng ký chủ đề SNS và tự cấu hình nó từ tải trọng bên trong sự kiện SNS.
Đây là hướng dẫn chính thức về cách thực hiện điều đó Invoking Lambda via SNS.
Tôi đã tìm thấy cách mà tôi sử dụng để hỗ trợ môi trường thử nghiệm và môi trường sản xuất sẽ giúp bạn.
Đối với phiên bản thử nghiệm của hàm, tôi gọi nó là TEST-ConnectToRemoteTcpService
và cho phiên bản sản xuất của hàm tôi đang đặt tên hàm PRODUCTION-ConnectToRemoteTcpService
. Điều này cho phép tôi kéo ra tên môi trường bằng cách sử dụng một biểu thức chính quy.
Sau đó, tôi lưu trữ config/test.json
và config/production.json
trong tệp zip mà tôi tải lên làm mã cho hàm. Tệp zip này sẽ được trích xuất vào thư mục process.env.LAMBDA_TASK_ROOT
khi hàm chạy. Vì vậy, tôi có thể tải tập tin đó và nhận được cấu hình tôi cần.
Một số người không thích lưu trữ cấu hình trong tệp zip mã, điều này là tốt - bạn chỉ có thể tải tệp từ S3 hoặc sử dụng bất kỳ chiến lược nào bạn muốn.
Mã để đọc các tập tin từ zip:
const readConfiguration =() => {
return new Promise((resolve, reject) => {
let environment = /^(.*?)-.*/.exec(process.env.AWS_LAMBDA_FUNCTION_NAME)[1].toLowerCase();
console.log(`environment is ${environment}`);
fs.readFile(`${process.env.LAMBDA_TASK_ROOT}/config/${environment}.json`, 'utf8', function (err,data) {
if (err) {
reject(err);
} else {
var config = JSON.parse(data);
console.log(`configuration is ${data}`);
resolve(config);
}
});
});
};
Một vài lựa chọn, tùy thuộc vào việc sử dụng hợp cụ thể
- Nếu cấu hình của bạn sẽ không thay đổi thì bạn có thể sử dụng đối tượng S3 và truy cập từ Lambda hoặc đặt Lambda của bạn để kích hoạt các thay đổi cấu hình mới. (Mặc dù đây là cách rẻ nhất, bạn bị hạn chế về những gì bạn có thể làm so với các giải pháp thay thế khác)
- Nếu cấu hình thay đổi liên tục, thì DynamoDB - Khóa/giá trị là một giải pháp thay thế.
- Nếu DynamoDB tốn kém cho việc đọc/ghi thường xuyên và không đáng giá trị thì bạn có thể có cấu hình bài dịch vụ TCP thành hàng đợi SQS. (hoặc SNS nếu bạn muốn kích hoạt khi dịch vụ đăng cấu hình mới)
Hỗ trợ cho biến môi trường là added cho AWS Lambda bắt đầu từ ngày 18 tháng 11 năm 2016. Việc thêm biến vào hàm hiện có có thể được thực hiện thông qua lệnh như được hiển thị bên dưới hoặc từ Bảng điều khiển AWS.
aws lambda update-function-configuration \
--function-name MyFunction \
--environment Variables={REMOTE_SERVICE_IP=100.100.100.100}
Tài liệu có thể được tìm thấy here.
- 1. Thêm AWS Lambda với cấu hình VPC gây ra thời gian chờ khi truy cập S3
- 2. Yêu cầu Python trong AWS Lambda định thời gian
- 3. Thời gian chờ kết nối AWS Lambda với Elasticache
- 4. Quyền AWS SQS cho AWS Lambda
- 5. Cấu hình bộ nhớ Java trong AWS Lambda
- 6. AWS lambda và Java đồng thời
- 7. AWS Hình ảnh Lambda bị hỏng
- 8. Kết nối với cụm ElastiCache từ hàm AWS Lambda
- 9. Không thể nhập grequests cho AWS Lambda
- 10. Làm cho log4j nhận biết được những thay đổi trong cấu hình tại thời gian chạy
- 11. nhibernate cấu hình và buildsessionfactory thời gian
- 12. Chrome - không đầu cho AWS Lambda?
- 13. Thêm hình ảnh trong thời gian chạy
- 14. Pandas & AWS Lambda
- 15. Cách nhận Vùng AWS trong hàm lambda Javascript/Nodejs:
- 16. Tạo tệp sàn gỗ trên hàm AWS Lambda
- 17. Cách kiểm tra xem ứng dụng Python có đang chạy trong hàm lambda AWS không?
- 18. Jack và Android - Lỗi thời gian chạy Lambda cho đến khi xây dựng sạch
- 19. Thay thế cho AWS Lambda invokeAsync (không được chấp nhận)
- 20. Chạy một hàm trong khoảng thời gian trong jQuery
- 21. cách nhận phản hồi trả về từ hàm AWS Lambda
- 22. AWS Lambda Java tương thích
- 23. Tương đương Azure AWS Lambda là gì?
- 24. Thời gian chạy của các hàm toán học toán học
- 25. Cụm NodeJS trên AWS Lambda
- 26. So sánh thời gian chạy thử nghiệm của thuật toán so với hàm thời gian chạy thử nghiệm
- 27. JPA - EclipseLink - Cách cấu hình tên giản đồ cơ sở dữ liệu tại thời gian chạy
- 28. Cách xử lý cấu hình thời gian chạy của Symfony2 Sử dụng dịch vụ Consul Discovery
- 29. Tính thời gian chạy cho spark sql
- 30. Clojure: Cách tạo hàm tại thời gian chạy
Có thể có rất nhiều cách để thực hiện điều đó. Ví dụ, bạn có thể có hàm Lambda đọc một cấu hình từ một bảng DynamoDB. Hoặc bạn có thể yêu cầu nó lắng nghe chủ đề SNS và nhận địa chỉ IP từ một tin nhắn được đăng lên chủ đề đó. Hoặc bạn có thể đọc một tập tin cấu hình từ một thùng S3. – garnaat