Mam funkcję AWS Lambda, która musi łączyć się ze zdalną usługą TCP. Czy istnieje sposób konfigurowania funkcji Lambda z adresem IP usługi zdalnej po wdrożeniu funkcji Lambda w AWS? Czy muszę upiec konfigurację do pakowanej funkcji Lambda przed jej wdrożeniem?Konfiguracja środowiska wykonawczego dla funkcji AWS Lambda
Odpowiedz
Możesz wywołać funkcję Lambda poprzez subskrypcję tematu SNS i skonfigurować ją z ładunku wewnątrz zdarzenia SNS.
Oto oficjalny przewodnik, jak to zrobić: Invoking Lambda via SNS.
Znalazłem sposób, w jaki używam do obsługi środowiska testowego i środowiska produkcyjnego, które może ci pomóc.
Dla wersji testowej funkcji, nazywam ją TEST-ConnectToRemoteTcpService
, a dla wersji produkcyjnej funkcji nazywam funkcję PRODUCTION-ConnectToRemoteTcpService
. To pozwala mi wyciągnąć nazwę środowiska za pomocą wyrażenia regularnego.
Następnie przechowuje config/test.json
i config/production.json
w pliku zip, który przesyłam jako kod dla funkcji. Ten plik zip zostanie wyodrębniony do katalogu process.env.LAMBDA_TASK_ROOT
, gdy funkcja się uruchomi. Mogę więc załadować ten plik i uzyskać potrzebną konfigurację.
Niektóre osoby nie lubią przechowywania pliku konfiguracyjnego w pliku zip, co jest w porządku - wystarczy, że załadujesz plik z S3 lub użyjesz dowolnej strategii.
Kod do odczytu pliku z 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);
}
});
});
};
kilka opcji, w zależności od przypadków użycia
- Jeśli config nie ulegnie zmianie, można korzystać z obiektów S3 i dostęp z Lambdy lub ustaw Lambdę, aby wyzwoliła nowe zmiany w konfiguracji. (Chociaż jest to najtańszy sposób, jesteś ograniczony co możesz zrobić w porównaniu do innych alternatyw)
- Jeśli konfiguracja stale się zmienia, to DynamoDB - Klucz/wartość jest alternatywą.
- Jeśli DynamoDB jest kosztowny dla częstych odczytów/zapisów i nie warty wartości, możesz mieć usługę post-config TCP do kolejki SQS. (Lub SNS, jeśli chcesz wywołać kiedy słupki usługowa nowy config)
Wsparcie dla zmiennych środowiskowych było added dla AWS Lambda wyjściowej 18 listopada 2016 Dodawanie zmiennej do istniejącej funkcji może odbywać się za pomocą polecenia linii jak pokazano poniżej lub z konsoli AWS.
aws lambda update-function-configuration \
--function-name MyFunction \
--environment Variables={REMOTE_SERVICE_IP=100.100.100.100}
Dokumentacja znajduje się pod numerem here.
- 1. Repozytorium Maven dla środowiska wykonawczego Eclipse BIRT
- 2. Jak przekazać parametry do funkcji AWS Lambda
- 3. Mierzenie środowiska wykonawczego kodu C++?
- 4. Czy zmienne środowiska wykonawczego funkcji LoadLibrary, takie jak% windir%
- 5. Konfiguracja uruchamiania IntelliJ dla środowiska Grails
- 6. AWS Elastic Beanstalk: .rozszerzenia dla określonego środowiska
- 7. Konfiguracja środowiska programistycznego SharePoint
- 8. AWS Lambda - CloudWatch Typ zdarzenia
- 9. Błąd środowiska wykonawczego Microsoft JScript: oczekiwana funkcja
- 10. Asyncpg i AWS Lambda
- 11. Czy można skonfigurować punkt końcowy bramy AWS API dla funkcji Lambda za pomocą interfejsu API AWS?
- 12. Chrome - bez głowicy dla AWS Lambda?
- 13. Nie można importować wywołań dla AWS Lambda
- 14. Wykonywanie migawki zoptymalizowanego środowiska wykonawczego JVM
- 15. Uruchamianie 'git' w AWS lambda
- 16. AIR TV - czy można ograniczyć maksymalną pamięć dla środowiska wykonawczego?
- 17. Eclipse eksport wojny: optymalizację dla określonego środowiska wykonawczego serwera
- 18. wywołanie funkcji lambda AWS z istniejącej funkcji lambda na Pythonie 2.7
- 19. Nie można zainstalować środowiska wykonawczego Silverlight Developer
- 20. Jak wdrożyć wydajne statystyki środowiska wykonawczego C++
- 21. Zamień zaznaczony wyjątek na wyjątek środowiska wykonawczego?
- 22. Jak powiązać datatable do środowiska wykonawczego reportviewer
- 23. Jak wyśledzić linię powodującą błąd środowiska wykonawczego?
- 24. Czy można uzyskać typTag instancji środowiska wykonawczego?
- 25. AWS Lambda VPC na Terraform
- 26. Jak zapytać trzecią stronę JSON API od funkcji AWS Lambda
- 27. Różnice między konfiguracją kompilatora i środowiska wykonawczego w Gradle
- 28. AWS Konfiguracja Bash One Liner
- 29. AWS Obraz Lambda jest uszkodzony
- 30. nie można uruchomić z poziomu Pythona binarny AWS lambda funkcji
Istnieje prawdopodobnie wiele sposobów na zrobienie tego. Na przykład, możesz mieć funkcję Lambda odczytać konfigurację z tabeli DynamoDB. Lub możesz go posłuchać tematu SNS i uzyskać adres IP z wiadomości wysłanej do tego tematu. Lub można odczytać plik konfiguracyjny z wiadra S3. – garnaat