我们正在尝试采用微服务器架构。我们在S3存储桶中拥有前端,在与Lambda函数相连的API网关中拥有Apis。
因此请求流将类似于以下内容:
S3-> API-> Lambda-> DB
我所关心的是,如何知道我的API是否触发了lambda函数?有一些可用于lambda的监视选项,但这些是lambda函数的事后调用。
有没有办法可以知道我的lambda函数是否从API触发?还发送通知吗?
我在自己的带有lambda的API网关上检查了CloudTrial的Trial事件是否有lambda调用。它具有以下形式:
{
"eventVersion": "1.07",
"userIdentity": {
"type": "AWSService",
"invokedBy": "apigateway.amazonaws.com"
},
"eventTime": "2020-10-30T12:03:17Z",
"eventSource": "lambda.amazonaws.com",
"eventName": "Invoke",
"awsRegion": "us-east-1",
"sourceIPAddress": "apigateway.amazonaws.com",
"userAgent": "apigateway.amazonaws.com",
"requestParameters": {
"xxxx": "arn:aws:lambda:us-east-1:xxxx:function:fff",
"sourceArn": "arn:aws:execute-api:us-east-1:xxx:84j28c7zga/test/ANY/test"
},
"responseElements": null,
"additionalEventData": {
"functionVersion": "arn:aws:lambda:us-east-1:xxxx:function:fff:$LATEST"
},
"requestID": "bc5f574e-58d8-4a2b-978b-5ec32aba447e",
"eventID": "2345b878-4998-4317-a0c4-1005df40d873",
"readOnly": false,
"resources": [
{
"accountId": "xxxx",
"type": "AWS::Lambda::Function",
"ARN": "arn:aws:lambda:us-east-1:xxx:function:fff"
}
],
"eventType": "AwsApiCall",
"managementEvent": false,
"recipientAccountId": "xxxx",
"sharedEventID": "1906ed81-6835-4046-943d-f2ca9e5b9d40",
"eventCategory": "Data"
}
如上所示,当调用lambda时,您获得的信息是调用它的API网关:
"userIdentity": {
"type": "AWSService",
"invokedBy": "apigateway.amazonaws.com"
},
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句