我正在尝试部署一个流程,从共享点检索文件并将它们移动到 AWS S3。
我设法使用 AWS 网站来完成此操作,但需要使用 cloudformation 来实现该过程的工业化和自动化。 “Microsoft Sharepoint Online”连接器不是官方连接器,因此我需要使用 CustomConnector(请参阅:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appflow- flow-customconnectorsourceproperties.html)
在AWS上的Sharepoint连接器信息上我们可以看到要设置的在线运行时设置称为subEntities,描述如下:需要同步的folderIds、driveIds的JSON数组(必填,类型String)
我尝试了几种解决方案,但是我不知道应该如何格式化这个参数以及在哪里可以找到driveId/folderId。
我发现了几个看似合理的值,并尝试了所有组合。
起初我在Cloudformation中遇到以下错误:
与连接器通信时出错: 请求失败,因为服务 Microsoft SharePoint Online 返回以下错误: 详细信息:驱动器 ID/文件夹 ID 的 Json 数组无效,错误代码:InvalidArgument。 (服务:Appflow,状态代码:400,请求 ID:xxx)
但现在我使用以下模板:
SourceFlowConfig:
ApiVersion: v1.0
ConnectorProfileName: 'myPreviouslyCreatedConnector'
ConnectorType: CustomConnector
SourceConnectorProperties:
CustomConnector:
CustomProperties:
subEntities: '["[What I think is driveId]/[What I think is folderId]"]'
EntityName: Microsoft SharePoint Online
但我得到:
与连接器通信时出错: 请求失败,因为服务 Microsoft SharePoint Online 返回以下错误: 详细信息:驱动器 ID/文件夹 ID 无效,错误代码:InvalidArgument。 (服务:Appflow,状态代码:400,请求 ID:xxx)
我想我走在一条好的道路上,因为数组似乎被正确解析,但无法找到从这里去哪里。
我使用图形 API 端点找到了 ID:
GET /drive/items/[ITEM ID]
,它检索了driveId 和id。
有人尝试使用 cloudformation 来创建此类连接器吗?
正确的格式是:
CustomProperties:
subEntities: '["drives/[driveId]/items/[folderId]"]'
您可以在使用 AWS Web 控制台创建流时使用 Web 浏览器的控制台网络检查器查看它。
希望它能为某人节省时间。