Başka bir lambda işlevi konuşlandırıldığında bir lambda işlevi çağırın

Sep 07 2020

Yapılandırma nesneleri sağlayan bir AWS lambda işlevim var. Bu lambda işlevi her güncellendiğinde (yani yeniden konuşlandırıldığında), bu yapılandırma nesnelerindeki değişiklikleri algılayan ve bazı eylemler gerçekleştiren başka bir lambda işlevini tetiklemem gerekiyor. Bu lambda dağıtımını nasıl izlerim, hangi bulut izleme olayına abone olmam gerekir?

Yanıtlar

3 Marcin Sep 07 2020 at 12:06

Lambda dağıtımlarınızın CodeDeploy tarafından yönetilmediğini varsayıyorum . Öyleyse, bir CloudTrial denemesi oluşturmanızı tavsiye ederim .

Varsayılan ayarlarla CT denemesi oluşturulduktan sonra , lambda işlevinize yönelik tüm yönetim API çağrılarını izleyecektir . Bunlardan biri UpdateFunctionCode. Böylece için bir CloudWatch kuralı oluşturabilirsiniz AWS API Call via CloudTrail. Kural, işlev güncelleme API çağrısında tetiklenecektir.

Böyle bir kurala örnek:

{
  "source": [
    "aws.lambda"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "lambda.amazonaws.com"
    ],
    "eventName": [
      "UpdateFunctionCode"
    ]
  }
}

Ardından, birinci işlevin yakalanan güncelleme olayına bağlı olarak ikinci bir lambda tetikleyebilirsiniz.

pras007 Sep 09 2020 at 20:27

@ Marcin'in önerisine dayanarak, etkinliği yazdırmak için konsol günlüğünü kullandı. Aşağıdaki kural, belirli bir işlevi filtrelemeye yardımcı oldu;

{
  "source": [
    "aws.lambda"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "lambda.amazonaws.com"
    ],
    "eventName": [
      "UpdateFunctionCode20150331v2"
    ],
    "responseElements": {
      "functionName": [
        "myFunction"
      ]
    }
  }
}