/ / Posso determinare quale servizio AWS ha attivato la funzione Lambda? - amazon-web-services, aws-lambda, alexa, aws-iot

Posso determinare quale servizio AWS ha attivato la mia funzione Lambda? - amazon-web-services, aws-lambda, alexa, aws-iot

Ho una funzione di Python Lambda in grado di rispondere sia a un pulsante IoT sia all'abilità di Alexa.

C'è un modo per leggere il event o context consegnato alla funzione del gestore per identificare quale servizio ha attivato la funzione (Alexa o IoT)?

risposte:

0 per risposta № 1

Puoi leggere e registrare l'evento nel Cloudwatch come di seguito

import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def my_logging_handler(event, context):
logger.info("got event{}".format(event))

Questo registrerà i dati degli eventi nel cloud watch che vedi e determinerà quale evento ha attivato il lambda


0 per risposta № 2

Non c'è modo di farlo in modo affidabile. La cosa più vicina che puoi ottenere è familiarizzare con i contenuti dei vari eventi generati da diversi servizi e (spero di) identificare una chiave affidabile in modo univoco presente in ciascuna delle serie che ti interessa che puoi controllare nel tuo codice , per esempio con

if "distinctKey" in event.keys():
# ...

Tuttavia questo non è certo un approccio affidabile, dal momento che richiede di te

  1. esaminare ogni possibile struttura dell'evento generata da ogni potenziale servizio e
  2. identificare con successo e con sicurezza per ogni servizio di interesse una chiave o un insieme di chiavi che sia sempre presente in modo affidabile negli eventi del servizio e unico a loro.