当前位置:  开发笔记 > 编程语言 > 正文

如何知道lambda函数的事件源本身

如何解决《如何知道lambda函数的事件源本身》经验,为你挑选了1个好方法。

我想知道函数中lambda函数的事件源.

我想要做的是使用一些AWS服务(CloudWatch,S3,Step函数等)中的一个lambda函数,并根据服务更改其行为.

上下文对象(函数的参数之一)具有有关lambda函数的信息,但不包含有关事件源的信息.

有没有办法知道这个?



1> Jeshan Baboo..:

如果已将Kinesis或DynamoDB流标识为具有API的Lambda函数的事件源

aws lambda create-event-source-mapping

,那么你可以得到它们

aws lambda list-event-source-mappings

如果不这样做,那么您可以使用如下函数进行最佳猜测:

function getLambdaEventSource(event) {
    if (event.Records && event.Records[0].cf) return 'isCloudfront';

    if (event.configRuleId && event.configRuleName && event.configRuleArn) return 'isAwsConfig';

    if (event.Records && (event.Records[0].eventSource === 'aws:codecommit')) return 'isCodeCommit';

    if (event.authorizationToken === "incoming-client-token") return 'isApiGatewayAuthorizer';

    if (event.StackId && event.RequestType && event.ResourceType) return 'isCloudFormation';

    if (event.Records && (event.Records[0].eventSource === 'aws:ses')) return 'isSes';

    if (event.pathParameters && event.pathParameters.proxy) return 'isApiGatewayAwsProxy';

    if (event.source === 'aws.events') return 'isScheduledEvent';

    if (event.awslogs && event.awslogs.data) return 'isCloudWatchLogs';

    if (event.Records && (event.Records[0].EventSource === 'aws:sns')) return 'isSns';

    if (event.Records && (event.Records[0].eventSource === 'aws:dynamodb')) return 'isDynamoDb';

    if (event.records && event.records[0].approximateArrivalTimestamp) return 'isKinesisFirehose';

    if (event.records && event.deliveryStreamArn && event.deliveryStreamArn.startsWith('arn:aws:kinesis:')) return 'isKinesisFirehose';

    if (event.eventType === 'SyncTrigger' && event.identityId && event.identityPoolId) return 'isCognitoSyncTrigger';

    if (event.Records && event.Records[0].eventSource === 'aws:kinesis') return 'isKinesis';

    if (event.Records && event.Records[0].eventSource === 'aws:s3') return 'isS3';

    if (event.operation && event.message) return 'isMobileBackend';

}
推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有