gpt4 book ai didi

amazon-web-services - AWS AppFlow Salesforce 到 Lambda 不完整事件

转载 作者:行者123 更新时间:2023-12-03 08:19:23 28 4
gpt4 key购买 nike

我有一个 AWS AppFlow 流设置,旨在接收 Salesforce 更改事件并在 Redshift 表上进行处理,以便在 Salesforce 中全天发生更改时保持 Redshift 表最新。

仅使用 AppFlow 并将源映射到 Redshift 中的目标字段似乎并不能达到我想要的效果,因为它似乎只是将更改附加到目标 Redshift 表 - 没有更新、删除等。

我认为解决这个问题的方法是将 AppFlow 的目标更改为 Amazon EventBridge,设置规则来监听更改,定位 Lambda 函数,并根据事件详细信息对相应的表执行 Redshift 操作。

但是,在 Lambda 中进行这些更改和测试后,我遇到了事件问题。根据 Salesforce 的说法,Change Event Message应该看起来像这样:

{
"data": {
"schema": "<schema_ID>",
"payload": {
"ChangeEventHeader": {
"entityName" : "...",
"recordIds" : "...",
"changeType" : "...",
"changedFields": [...],
"changeOrigin" : "...",
"transactionKey" : "...",
"sequenceNumber" : "...",
"commitTimestamp" : "...",
"commitUser" : "...",
"commitNumber" : "..."
},
"field1":"...",
"field2":"...",
. . .
},
"event": {
"replayId": <replayID>
}
},
"channel": "/data/<channel>"
}

当我进入 Salesforce 并更新记录时,发送到 Lambda 的事件如下所示:

{
'account': '111111111111',
'detail': {'my_custom_field__c': 'my updated text'},
'detail-type': 'AccountChangeEvent',
'id': '7b205b55-879a-1wt2-br8d-227da614b205',
'region': 'my-region',
'resources': [],
'source': 'aws.partner/appflow/salesforce.com/111111111111/aws.partner/appflow/salesforce.com/222222222222',
'time': '2021-07-09T15:29:21Z',
'version': '0',
}

唯一的 Salesforce 相关信息位于 detail 键中,它们只是没有任何 ChangeEventHeader 信息的字段。仅字段本身没有用,我需要 ID 来知道要在 Redshift 中更新哪一行。

字段是否在某处被过滤掉了?关于在哪里获取整个事件有效负载有什么想法吗?我期待整个有效负载,而不仅仅是部分有效负载。

-更新- 我将流程的目标更改为 S3 并检查 JSON 输出,它完全符合我的需要。因此,问题似乎出在从 EventBridge 接收事件时:

{
'ChangeEventHeader': {
'changeOrigin': 'com/salesforce/api/soap/52.0;client=SfdcInternalAPI/',
'changeType': 'UPDATE',
'changedFields': ['LastModifiedDate', 'my_custom_field__c'],
'commitNumber': 34143472625437,
'commitTimestamp': 1655870833010,
'commitUser': '0044r00000a5VaPcdv',
'entityName': 'Account',
'recordIds': ['0034t00003bOPtuSJs'],
'sequenceNumber': 1,
'transactionKey': '02030d57-6dd7-82f8-482r-7pou3bb58769',
},
'my_custom_field__c': 'my updated text',
'LastModifiedDate': '2021-07-09T17:02:13.000Z',
}

最佳答案

在 AppFlow 的源到目标字段映射部分中,此处列出了事件的键。我检查了 ChangeEventHeader 以包含在流程中,现在我已将完整事件传递给 EventBridge 和 Lambda。

enter image description here

关于amazon-web-services - AWS AppFlow Salesforce 到 Lambda 不完整事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68320055/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com