创建 Looker (Google Cloud Core) 实例

本页面介绍了如何预配 Looker (Google Cloud Core) 实例。

准备工作

  1. 在 Google Cloud 控制台的项目选择器页面上,创建一个 Google Cloud 项目或转到现有项目。

    前往项目选择器

  2. 在 Google Cloud 控制台中为您的项目启用 Looker API。启用 API 时,您可能需要刷新控制台页面,确认 API 是否已启用。

    启用 API

  3. 在 Google Cloud 控制台中为您的项目启用 Service Networking API。启用 API 时,您可能需要刷新控制台页面,确认 API 是否已启用。

    启用 API

  4. 设置 OAuth 客户端并创建授权凭据。OAuth 客户端可让您对实例进行身份验证和访问。即使您使用其他身份验证方法验证用户身份,也必须设置 OAuth 才能创建 Looker (Google Cloud Core) 实例。
  5. 如果您要将专用 IPVPC Service Controls客户管理的加密密钥 (CMEK) 与您正在创建的 Looker (Google Cloud Core) 实例搭配使用,则需要在创建实例之前进行额外设置。在创建实例的过程中,您可能还需要使用其他版本和网络配置。

所需的角色

如需获取创建 Looker (Google Cloud Core) 实例所需的权限,请让管理员向您授予该实例所在项目的 Looker Admin (roles/looker.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

您可能还需要其他 IAM 角色才能设置专用 IPVPC Service Controls客户管理的加密密钥 (CMEK)。如需了解详情,请访问这些功能的文档页面。

创建 Looker (Google Cloud Core) 实例

Looker (Google Cloud Core) 生成新实例大约需要 60 分钟。

如需创建 Looker (Google Cloud Core) 实例,请选择以下选项之一:

控制台

  1. 在 Google Cloud 控制台中,从您的项目进入 Looker (Google Cloud Core) 产品页面。如果您已在此项目中创建 Looker (Google Cloud Core) 实例,系统则会打开实例页面。

    前往 Looker (Google Cloud Core)

  2. 点击创建实例
  3. 实例名称部分,为您的 Looker (Google Cloud Core) 实例提供一个名称。创建后,实例名称不会与 Looker (Google Cloud Core) 实例的网址相关联。实例创建后,实例名称便无法更改。
  4. OAuth Application Credentials(OAuth 应用凭据)部分,输入您在设置 OAuth 客户端时创建的 OAuth 客户端 ID 和 OAuth 密钥。
  5. 区域部分,从下拉菜单中选择适当的选项。相应的区域是托管 Looker (Google Cloud Core) 实例的区域。选择与订阅合同中的区域匹配的区域,项目的配额将分配给该区域。Looker (Google Cloud Core) 位置文档页面列出了可用区域。
  6. 版本部分,根据贵组织的需求设置实例版本。版本类型会影响实例的某些可用功能。以下是版本选项:

    • 标准版:Looker 平台,适用于用户少于 50 人的小型组织或团队。此产品可通过年度合同购买
    • 企业版:具有增强型安全功能的 Looker 平台,适用于各种内部 BI 和分析应用场景。需签订年度合同
    • 嵌入:用于大规模部署和维护可靠外部分析和自定义应用的 Looker 平台。需签订年度合同

    实例创建后,版本便无法更改。如果您想要更改版本,可以使用导入和导出功能将 Looker (Google Cloud Core) 实例数据迁移到配置了其他版本的新实例。

  7. 自定义实例部分中,点击显示配置选项以显示一组其他设置,这些设置可为实例自定义。

  8. 连接部分会显示网络连接选项。所选的网络连接类型会影响实例可用的 Looker 功能。您可以使用以下网络连接选项:

    • 公共 IP:分配可通过互联网访问的外部 IP 地址。
    • 专用 IP:分配可在 Virtual Private Cloud (VPC) 上访问的内部 Google 托管的 IP 地址。您可以使用此地址从有权访问 VPC 的其他资源进行连接。如果您选择此选项,请按照为 Looker (Google Cloud Core) 创建专用 IP 连接文档页面中的说明完成网络设置。只有企业版嵌入版支持专用 IP。
    • 您也可以选择两个选项。如果同时选中这两个选项,则传入的流量将通过公共 IP 路由,传出流量将通过专用 IP 路由。Looker (Google Cloud Core) 实例不会使用公共 IP 来发起互联网出站流量。

    如果您仅选择专用 IP,或同时选择公共 IP专用 IP,请按照将专用 IP 与 Looker (Google Cloud Core) 文档页面中的步骤操作,在实例创建期间完成网络设置。

  9. 加密部分,您可以选择是使用默认 Google 管理的加密还是客户管理的加密密钥 (CMEK)。如需详细了解 CMEK 以及如何在实例创建期间对其进行配置,请参阅将客户管理的加密密钥与 Looker (Google Cloud Core) 搭配使用文档页面。实例创建后,加密类型便无法更改。

  10. 维护期部分,您可以视需要指定 Looker (Google Cloud Core) 在一周中的哪一天或哪一天安排维护。维护窗口会持续一小时。默认情况下,维护窗口中的首选时段选项会设置为任意时段

  11. 拒绝维护期部分,您可以视需要指定 Looker (Google Cloud Core) 不在哪些时间段安排维护。拒绝维护期最长可达 60 天。您必须在任意 2 个拒绝维护期之间至少留出 14 天的维护时间。

  12. 点击创建

在系统创建实例的过程中,系统会将您重定向到控制台中的实例页面。您可能需要刷新页面以查看新实例的状态。您也可以点击 Google Cloud 控制台菜单中的通知图标来查看实例创建活动。在系统创建实例的过程中,Google Cloud 控制台菜单中的通知图标会显示“正在加载”图标。

gcloud

  1. 如果您使用的是 CMEK,请先创建 Looker 服务帐号,并按照说明设置 CMEK。
  2. 使用 gcloud looker instances create 命令创建实例:

    gcloud looker instances create INSTANCE_NAME \
    --project=PROJECT_ID \
    --oauth-client-id=OAUTH_CLIENT_ID \
    --oauth-client-secret=OAUTH_CLIENT_SECRET \
    --region=REGION \
    --edition=EDITION \
    [--consumer-network=CONSUMER_NETWORK --private-ip-enabled --reserved-range=RESERVED_RANGE]
    [--no-public-ip-enabled]
    [--public-ip-enabled]
    [--async]
    

    请替换以下内容:

    • INSTANCE_NAME:您的 Looker (Google Cloud Core) 实例的名称;它与实例网址无关。
    • PROJECT_ID:您要在其中创建 Looker (Google Cloud Core) 实例的 Google Cloud 项目的名称。
    • OAUTH_CLIENT_IDOAUTH_CLIENT_SECRET:您在设置 OAuth 客户端时创建的 OAuth 客户端 ID 和 OAuth 密钥。创建实例后,在 OAuth 客户端的已获授权的重定向 URI 部分中输入实例的网址
    • REGION:托管您的 Looker (Google Cloud Core) 实例的区域。选择与订阅合同中的区域匹配的区域。Looker (Google Cloud Core) 位置文档页面列出了可用区域。
    • EDITION:实例的版本。可能的值为 core-standard-annualcore-enterprise-annualcore-embed-annual。实例创建后,版本便无法更改。如果您想要更改版本,可以使用导入和导出功能将 Looker (Google Cloud Core) 实例数据迁移到配置了其他版本的新实例。
    • CONSUMER_NETWORK:您的 VPC 网络或共享 VPC。如果您要创建专用 IP 实例,则必须设置此字段。
    • RESERVED_RANGE:Google 将在其中为您的 Looker (Google Cloud Core) 实例预配子网的 VPC 中的 IP 地址范围。如果要为实例启用专用 IP 网络连接,请勿定义范围。

    您还可以添加以下标记:

    • --private-ip-enabled 启用专用 IP。
    • --public-ip-enabled--no-public-ip-enabled 用于启用或停用公共 IP。
    • 如果您要创建 Looker (Google Cloud Core) 实例,建议您使用 --async
  3. 您可以添加更多参数以应用其他实例设置:

    [--maintenance-window-day=MAINTENANCE_WINDOW_DAY
          --maintenance-window-time=MAINTENANCE_WINDOW_TIME]
    [--deny-maintenance-period-end-date=DENY_MAINTENANCE_PERIOD_END_DATE
          --deny-maintenance-period-start-date=DENY_MAINTENANCE_PERIOD_START_DATE
          --deny-maintenance-period-time=DENY_MAINTENANCE_PERIOD_TIME]
    --kms-key=KMS_KEY_ID
    
    替换以下内容:

    • MAINTENANCE_WINDOW_DAY:必须是以下各项之一:fridaymondaysaturdaysundaythursdaytuesdaywednesday。如需详细了解维护窗口设置,请参阅管理 Looker (Google Cloud Core) 的维护政策文档页面。
    • MAINTENANCE_WINDOW_TIMEDENY_MAINTENANCE_PERIOD_TIME:必须采用 24 小时制 UTC 时间(例如 13:00, 17:45)。
    • DENY_MAINTENANCE_PERIOD_START_DATEDENY_MAINTENANCE_PERIOD_END_DATE:必须采用 YYYY-MM-DD 格式。
    • KMS_KEY_ID:必须是在设置客户管理的加密密钥 (CMEK) 时创建的密钥。

Terraform

使用以下 Terraform 资源预配具有基本功能的标准 Looker (Google Cloud Core) 实例:

# Creates a Standard edition Looker (Google Cloud core) instance with basic functionality enabled.
resource "google_looker_instance" "main" {
  name             = "my-instance"
  platform_edition = "LOOKER_CORE_STANDARD"
  region           = "us-central1"
  oauth_config {
    client_id     = "my-client-id"
    client_secret = "my-client-secret"
  }
}

使用以下 Terraform 资源预配应用了其他设置的标准 Looker (Google Cloud Core) 实例:

# Creates a Standard edition Looker (Google Cloud core) instance with full functionality enabled.

resource "google_looker_instance" "main" {
  name              = "my-instance"
  platform_edition  = "LOOKER_CORE_STANDARD"
  region            = "us-central1"
  public_ip_enabled = true
  admin_settings {
    allowed_email_domains = ["google.com"]
  }
  // User metadata config is only available when platform edition is LOOKER_CORE_STANDARD.
  user_metadata {
    additional_developer_user_count = 10
    additional_standard_user_count  = 10
    additional_viewer_user_count    = 10
  }
  maintenance_window {
    day_of_week = "THURSDAY"
    start_time {
      hours   = 22
      minutes = 0
      seconds = 0
      nanos   = 0
    }
  }
  deny_maintenance_period {
    start_date {
      year  = 2050
      month = 1
      day   = 1
    }
    end_date {
      year  = 2050
      month = 2
      day   = 1
    }
    time {
      hours   = 10
      minutes = 0
      seconds = 0
      nanos   = 0
    }
  }
  oauth_config {
    client_id     = "my-client-id"
    client_secret = "my-client-secret"
  }
}

使用以下 Terraform 资源Enterprise Looker (Google Cloud Core) 实例预配专用网络连接

# Creates an Enterprise edition Looker (Google Cloud core) instance with full, Private IP functionality.
resource "google_looker_instance" "main" {
  name               = "my-instance"
  platform_edition   = "LOOKER_CORE_ENTERPRISE_ANNUAL"
  region             = "us-central1"
  private_ip_enabled = true
  public_ip_enabled  = false
  reserved_range     = google_compute_global_address.main.name
  consumer_network   = data.google_compute_network.main.id
  admin_settings {
    allowed_email_domains = ["google.com"]
  }
  encryption_config {
    kms_key_name = google_kms_crypto_key.main.id
  }
  maintenance_window {
    day_of_week = "THURSDAY"
    start_time {
      hours   = 22
      minutes = 0
      seconds = 0
      nanos   = 0
    }
  }
  deny_maintenance_period {
    start_date {
      year  = 2050
      month = 1
      day   = 1
    }
    end_date {
      year  = 2050
      month = 2
      day   = 1
    }
    time {
      hours   = 10
      minutes = 0
      seconds = 0
      nanos   = 0
    }
  }
  oauth_config {
    client_id     = "my-client-id"
    client_secret = "my-client-secret"
  }
  depends_on = [
    google_service_networking_connection.main,
    google_kms_crypto_key.main
  ]
}

resource "google_kms_key_ring" "main" {
  name     = "keyring-example"
  location = "us-central1"
}

resource "google_kms_crypto_key" "main" {
  name     = "crypto-key-example"
  key_ring = google_kms_key_ring.main.id
}

resource "google_service_networking_connection" "main" {
  network                 = data.google_compute_network.main.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.main.name]
}

resource "google_compute_global_address" "main" {
  name          = "looker-range"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 20
  network       = data.google_compute_network.main.id
}

data "google_project" "main" {}

data "google_compute_network" "main" {
  name = "default"
}

resource "google_kms_crypto_key_iam_member" "main" {
  crypto_key_id = google_kms_crypto_key.main.id
  role          = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
  member        = "serviceAccount:service-${data.google_project.main.number}@gcp-sa-looker.iam.gserviceaccount.com"
}

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令

实例创建一旦启动便无法暂停或终止。成功预配 Terraform 资源后,终端将输出以下消息:

Creation complete after XmXs [id=projects/PROJECT-ID/locations/REGION/instances/my-instance-randomly-generated-name]

Apply complete! Resources: X added, X changed, X destroyed.

如需查看新实例(将为其分配一个随机生成的名称)的状态,请访问控制台中的实例页面。

预配实例最多可能需要 60 分钟。

创建实例后,在 OAuth 客户端的已获授权的重定向 URI 部分中输入实例的网址

创建实例并完成 OAuth 设置后,您可以导航到实例页面上的实例网址来查看实例。然后,您可以选择用户身份验证方法并添加用户,连接到您的数据库,然后继续设置实例

Looker 服务帐号

Looker (Google Cloud Core) 使用服务代理(称为 Looker 服务账号)来执行某些活动。一个 Looker 服务帐号可以代表给定 Google Cloud 项目中的所有 Looker (Google Cloud Core) 实例。在项目中首次创建 Looker (Google Cloud Core) 实例时,系统会自动创建 Looker 服务帐号。

该服务帐号允许 Looker (Google Cloud Core) 连接到其他服务,例如 BigQuery

有时,例如当您使用应用默认凭据 (ADC) 并连接到另一个项目中的 BigQuery 时,您需要查看有关 Looker 服务帐号的信息,例如其电子邮件地址。

或者,如果您打算使用 CMEK,并在创建 Looker (Google Cloud Core) 实例之前使用 Google Cloud CLI、Terraform 或 API 配置 CMEK,则必须在创建实例前先手动创建 Looker 服务帐号。

如需查看或创建 Looker 服务帐号,请选择以下选项之一:

控制台

如需查看 Looker 服务帐号,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 IAM 页面。

    进入 IAM
  2. 选择 Looker (Google Cloud Core) 实例所在的项目。
  3. 选中包括 Google 提供的角色授权复选框。

gcloud

如需创建或查看 Looker 服务帐号,请执行以下操作:


gcloud beta services identity create --service=looker.googleapis.com --project=PROJECT_ID

PROJECT_ID 替换为 Looker (Google Cloud Core) 实例所在的项目。

服务帐号名称将为 Looker Service Account。电子邮件地址的格式为 service-<project number>@gcp-sa-looker.iam.gserviceaccount.com

后续步骤