为使用 OAuth 和串流的 Action 设置本地 Action 中心

如果客户托管的 Looker 实例无法与 Looker 托管的操作中心通信,Looker 管理员可能无法启用支持流式结果或使用 OAuth 的操作。此外,在向支持流式结果的操作发送或安排数据时,Looker 用户可能会遇到查询挂起问题,并且可能无法配置 OAuth 操作。

如需使用 Looker 集成,Looker 操作中心和 Looker 实例必须能够相互通信。客户托管实例的管理员如果有兴趣了解适合其实例架构的解决方案,可以参阅通过操作中心共享数据文档页面的客户托管实例的注意事项部分中所述的建议。

如果实例使用的 SSL 证书由证书授权机构 (CA) 颁发,而该证书未包含在此根证书列表中,则 OAuth 和流式传输操作可能无法在客户托管的 Looker 实例上使用。

如需查看配置为支持流式结果或 OAuth 的操作,请参阅管理设置 - 操作文档页面中的 Looker 集成服务列表。

本页介绍了如何设置本地操作中心服务器,以使用支持流式结果或使用 Google OAuth 的 Looker 操作。您可以设置自己的本地操作中心服务器,方法是创建一个用于托管 Looker Action Hub 代码库克隆副本的容器或虚拟机 (VM),然后按照以下步骤操作,如以下部分所述:

  1. 为 Action Hub 服务器创建容器或虚拟机 (VM) 设置
  2. 配置 Google OAuth 凭据
  3. 配置 Google OAuth 权限请求页面
  4. 设置环境变量
  5. 生成 API 密钥。
  6. 启动新 Action Hub。
  7. 将新的操作中心添加到您的 Looker 实例

为 Action Hub 服务器创建容器或虚拟机 (VM) 设置

您的虚拟机或容器应满足以下分配和网络要求以及依赖项:

Looker 建议为此容器或虚拟机分配 2 个 CPU/vCPU 线程和至少 2 GB 的内存。如果您预计自己的操作会占用大量内存,请考虑将内存增加到 2 GB 以上。

网络要求

您的操作中心必须具有静态 IP 地址可通过内部域名系统 (DNS) 解析的地址。

您的网络必须支持以下通信要求:

  • Looker 实例必须能够与操作中心通信。
  • Google Auth 必须能够与操作中心通信。
  • 内部连接的浏览器必须能够访问操作中心。
  • 操作中心必须能够连接到 Google 云端硬盘服务器。

必需的依赖项

将 Looker 操作代码库克隆到新创建的虚拟机或容器中时:

  • 确保已安装 Node 12.13。
  • 运行 yarn install 以安装必要的软件包。

设置好环境后,您需要在 Google Cloud API 控制台中为操作中心服务器创建 Google OAuth 凭据。

配置 Google OAuth 凭据

如需为您的操作配置 Google OAuth 凭据,您需要执行以下操作:

创建 Google OAuth 凭据

要创建 Google OAuth 客户端 ID 和客户端密钥,请执行以下操作:

  1. 前往 Google Cloud 管理资源页面,然后点击创建项目以创建新项目。

    如需详细了解如何创建项目,请参阅创建和管理项目指南。

  2. 创建新项目后,请选择该新项目。
  3. 在控制台左侧边栏中,前往 API 和服务 > 凭据页面。
  4. 点击创建凭据
  5. 在下拉菜单中,点击 OAuth 客户端 ID
  6. 您可能需要配置 OAuth 同意屏幕。如果是这样,请按照本页后面配置 OAuth 权限请求页面部分中的说明操作,然后继续执行第 7 步。
  7. 对于应用类型,选择 Web 应用
  8. 名称字段中提供您的应用名称。
  9. 已获授权的 JavaScript 来源部分中,添加您在内部使用的根 Looker 应用地址。
  10. 为 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
            
  11. 点击创建按钮以生成 OAuth 客户端 ID 和 OAuth 客户端密钥。稍后您需要用到这两项。

通过 Google API 控制台的这个页面,您可以为项目中的所有应用配置同意屏幕,从而允许用户授予对其数据的访问权限,以及为用户提供指向任何法律或隐私文档的链接。如果您已完成此步骤或无需配置同意屏幕,请跳过此部分并返回到终端窗口,以设置环境变量,如本页后面的设置环境变量部分所述。

如需配置同意屏幕,请执行以下操作:

  1. 点击配置权限请求页面
  2. 选择这是内部应用还是外部应用,然后点击创建
  3. 应用名称字段中输入应用的名称。
  4. User support email(用户支持电子邮件地址)部分,输入要在 Oauth 同意屏幕上显示的电子邮件地址,以便获取用户支持。
  5. (可选)对于应用徽标,请上传要在 OAuth 同意屏幕中使用的图片文件。
  6. (可选)输入您的应用首页链接,该链接应托管在操作中心所在的根网域上。
  7. (可选)在应用隐私权政策链接字段中输入指向您应用的隐私权政策的链接。该链接必须与你的 Action Hub 位于同一根网域上。
  8. (可选)在应用服务条款链接字段中输入指向应用服务条款的链接。该链接必须与你的 Action Hub 位于同一根网域上。
  9. 已获授权的网域部分中,点击添加网域,然后输入操作中心正在使用的根网域。
  10. 开发者联系信息字段中,输入可供 Google 与您联系的电子邮件地址。
  11. 点击保存并继续
  12. 范围部分中,添加您的应用必须访问的用户数据类型。这包括电子邮件、个人资料、OpenID 和 https://mail.google.com。由于此列表包含敏感的用户信息,因此 Google 需要先验证您的 OAuth 同意屏幕,然后才能发布。
  13. 点击保存并继续
  14. (可选)在测试用户部分中,添加您希望在验证之前有权访问操作中心的所有用户。
  15. 点击保存并继续
  16. 点击返回信息中心
  17. 在左侧边栏中,点击凭据以返回配置 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 IDOAuth 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,请运行以下命令:

yarn start

正在将操作中心添加到 Looker 实例

如需将操作中心添加到 Looker 实例,请执行以下操作:

  1. 在 Looker 中,前往管理面板中平台下的操作页面。
  2. 滚动到页面底部,然后点击 Add Action Hub 按钮。
  3. 输入您的 ACTION_HUB_BASE_URL,然后点击 Add Action Hub。操作中心应显示在新标题下,其中包含其名称和 ACTION_HUB_BASE_URL。您的 Google 云端硬盘和 Google 表格操作应显示在此标题下方。
  4. 如果连接失败,请在授权令牌字段中输入您之前生成的 api-key,然后点击操作中心标题顶部的刷新链接。
  5. 启用 Google 云端硬盘和 Google 表格操作,并在 Action Hub 中验证这些操作的配置是否正确。

下一步

下一步是发布您在 Google API 控制台中创建的应用。要发布,请转到 OAuth 同意屏幕页面,然后点击提交以进行验证按钮。请注意,申请发布流程可能需要一些时间,您需要完成一些 Google 验证步骤。