如果客户托管的 Looker 实例无法与 Looker 托管的操作中心通信,Looker 管理员可能无法启用支持流式结果或使用 OAuth 的操作。此外,在向支持流式结果的操作发送或安排数据时,Looker 用户可能会遇到查询挂起问题,并且可能无法配置 OAuth 操作。
如需使用 Looker 集成,Looker Action Hub 和 Looker 实例必须能够相互通信。如果客户托管式实例的管理员有兴趣了解适合其实例架构的解决方案,可以参阅通过 Action Hub 共享数据文档页面中的客户托管式实例注意事项部分中所述的建议。
如果实例使用的 SSL 证书由证书授权机构 (CA) 颁发,而该证书未包含在此根证书列表中,则 OAuth 和流式传输操作可能无法在客户托管的 Looker 实例上使用。
如需查看已配置为支持流式传输结果或 OAuth 的操作,请参阅管理设置 - 操作文档页面上的 Looker 集成服务列表。
本页介绍了如何设置本地操作中心服务器,以使用支持流式结果或使用 Google OAuth 的 Looker 操作。您可以通过创建一个容器或虚拟机 (VM) 来托管 Looker Action Hub 代码库的克隆副本,然后按照以下步骤设置自己的本地 Action Hub 服务器,如以下部分中所详述:
- 为 Action Hub 服务器创建容器或虚拟机 (VM) 设置。
- 配置 Google OAuth 凭据。
- 配置 Google OAuth 权限请求页面。
- 设置环境变量。
- 生成 API 密钥。
- 启动新 Action Hub。
- 将新的操作中心添加到您的 Looker 实例。
为 Action Hub 服务器创建容器或虚拟机 (VM) 设置
您的虚拟机或容器应满足以下分配和网络要求以及依赖项:
建议的内存分配
Looker 建议为此容器或虚拟机分配 2 个 CPU/vCPU 线程和至少 2 GB 的内存。如果您预计自己的操作会占用大量内存,请考虑将内存增加到 2 GB 以上。
网络要求
您的 Action Hub 必须具有静态 IP 地址,或者可以通过内部域名系统 (DNS) 解析的地址。
您的网络必须支持以下通信要求:
- Looker 实例必须能够与 Action Hub 通信。
- Google Auth 必须能够与 Action Hub 通信。
- 内部连接的浏览器必须能够访问操作中心。
- 操作中心必须能够访问 Google 云端硬盘服务器。
必需的依赖项
将 Looker 操作代码库克隆到新创建的虚拟机或容器中时:
- 确保已安装 Node 12.13。
- 运行
yarn install
以安装必要的软件包。
设置好环境后,您需要在 Google Cloud API 控制台中为操作中心服务器创建 Google OAuth 凭据。
配置 Google OAuth 凭据
如需为您的操作配置 Google OAuth 凭据,您需要:
创建 Google OAuth 凭据
如要创建 Google OAuth 客户端 ID 和客户端密钥,请执行以下操作:
- 前往 Google Cloud 的管理资源页面,然后点击创建项目以创建新项目。
如需详细了解如何创建项目,请参阅创建和管理项目指南。
- 创建新项目后,请选择该新项目。
- 在控制台的左侧边栏中,依次前往 API 和服务 > 凭据页面。
- 点击创建凭据。
- 在下拉菜单中,点击 OAuth 客户端 ID。
- 您可能需要配置 OAuth 同意屏幕。如果是,请按照本页下文中的配置 OAuth 同意屏幕部分中的说明操作,然后继续执行第 7 步。
- 对于应用类型,选择 Web 应用。
- 在名称字段中提供应用名称。
- 在已获授权的 JavaScript 来源部分中,添加您在内部使用的根 Looker 应用地址。
- 为 Google 云端硬盘和 Google 表格控制台设置已获授权的重定向 URI,其中
ACTION_HUB_BASE_URL
是您的操作中心的地址:https://<ACTION_HUB_BASE_URL>/actions/google_sheets/oauth_redirect https://<ACTION_HUB_BASE_URL>/actions/google_drive/oauth_redirect
- 点击创建按钮以生成 OAuth 客户端 ID 和 OAuth 客户端密钥。您稍后需要用到这两个值。
配置 OAuth 同意屏幕
通过 Google API 控制台的这个页面,您可以为项目中的所有应用配置同意屏幕,从而允许用户授予对其数据的访问权限,以及为用户提供指向任何法律或隐私文档的链接。如果您已经完成此步骤或不需要配置同意屏幕,请跳过此部分并返回到终端窗口,以设置环境变量,如本页后面的设置环境变量部分所述。
如需配置同意页面,请执行以下操作:
- 点击配置权限请求页面。
- 选择此应用是内部应用还是外部应用,然后点击创建。
- 在应用名称字段中输入应用的名称。
- 在用户支持电子邮件地址中,输入要在 OAuth 权限请求页面上显示的电子邮件地址,以便用户获取支持。
- (可选)对于应用徽标,请上传要在 OAuth 权限请求页面上使用的图片文件。
- (可选)输入应用首页链接,该链接应托管在与您的 Action 中心相同的根网域上。
- 您可以选择在应用隐私权政策链接字段中输入指向应用隐私权政策的链接。该链接必须托管在与您的 Action Hub 相同的根网域中。
- (可选)在应用服务条款链接字段中输入指向应用服务条款的链接。该链接必须与你的 Action Hub 位于同一根网域上。
- 在已获授权的网域部分,点击添加网域,然后输入您的 Action 中心使用的根网域。
- 在开发者联系信息字段中,输入 Google 可以与您联系的电子邮件地址。
- 点击保存并继续。
- 在范围部分,添加您的应用必须访问的用户数据类型。这包括电子邮件、个人资料、OpenID 和
https://mail.google.com
。由于此列表包含敏感的用户信息,因此 Google 需要先验证您的 OAuth 同意屏幕,然后才能发布。 - 点击保存并继续。
- (可选)在测试用户部分中,添加您希望在验证之前有权访问操作中心的所有用户。
- 点击保存并继续。
- 点击返回信息中心。
- 在左侧边栏中,点击凭据以返回配置 OAuth 凭据。
配置 OAuth 同意屏幕后,如果您正在配置 Google OAuth 凭据,请返回该过程的第 7 步,然后完成凭据配置。或者,您也可以返回终端窗口设置环境变量。
设置环境变量
在虚拟机或容器环境中,设置以下环境变量:
ACTION_HUB_LABEL=<your action hub label name> ACTION_HUB_SECRET=<some secret> ACTION_HUB_BASE_URL=<your action hub base address> # For example https://actions.company.com # DO NOT INCLUDE A TRAILING SLASH GOOGLE_SHEET_CLIENT_ID=<OAuth client ID> GOOGLE_SHEET_CLIENT_SECRET=<OAuth client secret> GOOGLE_DRIVE_CLIENT_ID=<OAuth client ID> GOOGLE_DRIVE_CLIENT_SECRET=<OAuth client secret>
您应该能够为 Google 云端硬盘和 Google 表格使用相同的 OAuth client ID
和 OAuth client secret
;不过,最好同时设置这两组 Google API 令牌。
还要设置加密密钥:
CIPHER_MASTER="<hex aes-256 key>"
此密钥不用于长期加密;它仅用于在 OAuth 流程中加密 state
。以下是十六进制 AES-256 密钥的示例:
C4EFBBE2C364248419776459A00F2F4017CE77E29D9E8F64940687EA440A0CC9
生成 API 密钥
如需获取 API 密钥,请运行以下命令:
y
arn generate-api-key
保留生成的密钥,以便在后续设置中使用。此密钥是根据 ACTION_HUB_SECRET
生成的。
启动本地 Action Hub 服务器
如需启动 Action Hub,请运行以下命令:
yarn start
将操作中心添加到 Looker 实例
如需将您的 Action Hub 添加到 Looker 实例,请执行以下操作:
- 在 Looker 中,前往管理面板中平台下的操作页面。
- 滚动到页面底部,然后点击 Add Action Hub 按钮。
- 输入您的
ACTION_HUB_BASE_URL
,然后点击 Add Action Hub。操作中心应显示在新标题下,其中包含其名称和ACTION_HUB_BASE_URL
。您的 Google 云端硬盘和 Google 表格操作应显示在此标题下方。 - 如果连接失败,请在授权令牌字段中输入您之前生成的
api-key
,然后点击操作中心标题顶部的刷新链接。 - 启用 Google 云端硬盘和 Google 表格操作,并确认它们在 Action Hub 中配置正确。
下一步
下一步是发布您在 Google API 控制台中创建的应用。要发布,请转到 OAuth 同意屏幕页面,然后点击提交以进行验证按钮。请注意,应用发布流程可能需要一些时间,并且需要您完成一些 Google 验证步骤。