AWS Lambda işlevlerinin olaylara hızlı bir şekilde yanıt vermesi bekleniyor. Yavaş bir API için hızlı bir istekte bulunan ve yanıt beklemeden sona eren bir işlev oluşturmak istiyorum. Daha sonra, bir cevap geldiğinde, yanıtı ele almak için farklı bir Lambda fonksiyonu istiyorum. Bu kulağa çılgınca geliyor, AWS'nin bir Lambda fonksiyonundan açık bir bağlantıya asmak için ne yapması gerektiğini düşündüğünüzde ve cevabı bir diğerine göndermek için düşünürseniz, ama Lambda'nın ruhunda bu çok fazla gibi görünüyor. Kullanılmak üzere dizayn edilmiştir.Bir Lambda işlevinden bir HTTP isteği yapmak ve başka birindeki yanıtı işlemek mümkün mü?
Fikirler:
- yapılacak bir istek temsil bir OKS sıraya iletiler gönderin. Bir EC2/EB kümesinde bir çeşit mesaj/HTTP proxy türü hizmetinin kuyruğu dinleyip gerçekten HTTP isteklerini gerçekleştirmesini sağlayın. Gerekirse, ilişkili talebi tanımlamak için etiketlenen başka bir kuyruğa yanıt nesneleri koyar. Bu geleneksel bir hizmet için önemsiz olacak bir şey için çok fazla karmaşıklık hissi veriyor.
- Sadece bununla geçin. Lambda işlevlerinin 60 saniye boyunca çalışmasına izin verilir ve yaptığım bu API çağrıları genellikle 10 saniyeden uzun sürmüyor. LF'lerin çalışma sürelerinin% 95'ini yanıt beklerken harcayacakları ne kadar maliyetli olduğundan emin değilsiniz, fakat "beklemek" LF'lerin ne için olduğu değildir.
- hızlı yıldırım olmayan 3. parti API'ler :(Bu benim projelerin çoğu, gerçi.
Neden bir SNS mesajı yayınlamıyor ve bir lambda özeti var? VEYA API-son nokta sekmesi altında bir API uç noktası olarak Call-B ve Call-A'nın sonunda uç noktaya yönelik http isteği ayarlayabilirsiniz - bu muhtemelen daha iyidir. – iSkore
Eğer doğru anlıyorsam, bu Call-A'nın bir HTTP isteği oluşturacağı, yanıtı beklediği ve bunu başka bir göreve göndereceği anlamına mı geliyor? Bu hala Call-A, bir Lambda func, boş bir yerde, harici bir API'da beklemekte olduğu anlamına gelmez, değil mi? –
Oh. Bir cevaba mı ihtiyacınız var? SNS yayınlama ile kesinlikle beklemek zorunda kalmayacaksınız. Ayrıca bir HTTP'yi kapatabilir ve beklemezsiniz. Sadece API'ye bilgi verin ve lambda'yı başarılılaştırın. – iSkore