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 № 1Puoi 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
- esaminare ogni possibile struttura dell'evento generata da ogni potenziale servizio e
- 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.