7

İşlevleri, bir CloudWatch zamanlayıcısından ping işlemi yapacak şekilde sarmanın en iyi yolu nedir? Örneğin, aşağıda lambda fonksiyonu almak: Ben işlevini ping Eğer CloudWatch istek üzerine hiçbir queryStringParameters olduğundanCloudWatch'ta bir Lambda işlevine değerler nasıl iletilir?

export const fn = (event, context, callback) => { 
    const { year, make, model, } = event.queryStringParameters 

    return otherFn({ year, make, model, }) 
    .then(res => response(callback, res)) 
    .catch(err => console.log(err)) 
} 

, bu hata olur. Teknik olarak, bu hala Lambda fonksiyonunu sıcak tutmak (ki bu benim hedefim) işini yapacak, ancak gereksiz uzun bir hata listesine sahip olmak istemiyorum.

configure input

bir ping kabul edebilmesi için yukarıdaki işlevini sarmak için en akıllı yolu nedir:

Ben CloudWatch sen (muhtemelen) bir Lambda işleve iletilir girdileri dahil etmek izin verdiğini fark? Ben gibi, bana olayı değiştirmeye izin veren bazı JSON geçerdi

export const fn = (event, context, callback) => { 
    if (event.ping) return ping(callback) // the ping function is an import to stay DRY 
    const { year, make, model, } = event.queryStringParameters 

    return otherFn({ year, make, model, }) 
    .then(res => response(callback, res)) 
    .catch(err => console.log(err)) 
} 

: Ben girişler belgelerine baştan sona kadar okuduktan

{ "ping": true } 

ama İdeal şu ​​şekilde görünecektir Çeşitli giriş türlerinin ne anlama geldiğini veya nasıl kullanılacağını bana açık değil ...

cevap

5

Eğer giriş seçeneği Sabit (JSON metin) seçeneğini seçerseniz, hemen bir giriş kutusu görünecektir. Json {"ping": true} girmeniz gerekiyor. Fonksiyonunuz jsonu event nesnesi olarak alacak ve kodunuz gibi event.ping'a erişebilirsiniz.

Eğer Sunucusuz çerçevesini kullanarak, yerine AWS konsolda yapıyorsanız, size fonksiyon için bir zamanlama olayı ekleyebilir. Bu mevcut http etkinliğinize ek olarak olacaktır.

scheduledFunction: 
    handler: index.handler 
    events: 
    - schedule: 
     rate: rate(1 minute) 
     enabled: true 
     input: 
      ping: true 

Bu yaratacak ve belirlenmiş tarihler cloudwatch günlük olayını etkinleştirmek ve event nesnede giriş parametresini ping gönderin: Böyle planlanmış olayın girdi bölümü altında ping: true parametresi ekleyebilirsiniz.

+0

Bu aslında sorunun cevabıdır. Yöneticiler bunu işaretleyebilir mi? –