创建使用公共 IP 地址的 Looker (Google Cloud Core) 实例

本页介绍了如何预配使用公共 IP 地址的 Looker (Google Cloud Core) 生产或非生产实例

准备工作

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

    前往“项目选择器”

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

    启用 API

  3. 设置 OAuth 客户端并创建授权凭据。借助 OAuth 客户端,您可以进行身份验证并访问实例。您必须设置 OAuth 才能创建 Looker (Google Cloud Core) 实例,即使您使用其他身份验证方法对用户进行身份验证以便他们登录实例也是如此。
  4. 如果您想使用 VPC Service Controls,则必须创建专用 IP 实例,而不是公共 IP 实例。

所需的角色

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

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

如果您想设置客户管理的加密密钥 (CMEK),可能还需要其他 IAM 角色。如需了解详情,请参阅 Cloud Key Management Service 文档中的使用 IAM 进行访问权限控制页面。

创建 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 应用凭据部分,输入您在设置 OAuth 客户端时创建的 OAuth 客户端 ID 和 OAuth secret。
  5. 区域部分,从下拉菜单中选择用于托管 Looker (Google Cloud Core) 实例的相应选项。选择与订阅合同中的区域匹配的区域,这是分配项目配额的位置。Looker (Google Cloud Core) 位置文档页面上列出了可用区域。
  6. 版本部分,根据贵组织的需求设置实例版本和环境类型(生产环境或非生产环境)。版本类型会影响实例的可用功能。请务必选择与年度合同中列出的版本类型相同的版本类型,并且您已为该版本类型分配配额。以下是版本选项:

    • 标准版:适合用户少于 50 人的小型组织或团队的 Looker (Google Cloud Core) 平台
    • 企业版:Looker (Google Cloud Core) 平台,具有增强型安全功能,可满足各种内部 BI 和分析应用场景
    • 嵌入版:Looker (Google Cloud Core) 平台,适用于大规模部署和维护可靠的外部分析和自定义应用

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

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

  8. 连接部分,仅选择公共 IP。公共 IP 连接设置会分配可通过互联网访问的外部 IP 地址,适用于所有版本类型。

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

  9. 加密部分中,您可以选择要对实例使用的加密类型。您可以使用以下加密选项:

  10. 维护期部分,您可以选择指定 Looker (Google Cloud Core) 安排维护的星期几和时段。维护窗口持续一小时。默认情况下,维护窗口中的首选窗口选项设置为任何窗口

  11. 拒绝维护期部分,您可以选择指定一段时间,Looker (Google Cloud Core)不会在此时间段内安排维护。拒绝维护期最长可达 60 天。您必须在任意 2 个拒绝维护期之间至少留出 14 天允许维护时间。

  12. 点击创建

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 secret。实例创建后,在您之前创建的 OAuth 客户端中设置已获授权的重定向 URI
    • REGION:Looker (Google Cloud Core) 实例的托管区域。选择与订阅合同中的区域一致的区域。Looker (Google Cloud Core) 位置文档页面上列出了可用区域。
    • EDITION:实例的版本和环境类型(生产环境或非生产环境)。其可能值为 core-standard-annualcore-enterprise-annualcore-embed-annualnonprod-core-standard-annualnonprod-core-enterprise-annualnonprod-core-embed-annual。实例创建后,版本便无法更改。如果您想更改版本,可以使用导入和导出功能将 Looker (Google Cloud Core) 实例数据移至配置为使用其他版本的新实例。
    • CONSUMER_NETWORK您的 VPC 网络或共享 VPC。如果您要创建专用 IP 实例,则必须设置此参数。
    • RESERVED_RANGE:VPC 内的 IP 地址范围,Google 将在该范围内为您的 Looker (Google Cloud Core) 实例预配子网。如果您要为实例启用专用 IP 网络连接,请勿定义范围。

    还要添加以下标志:

    • --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
    [--fips-enabled]
    
    替换以下内容:

    • 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) 时创建的密钥。

    您可以添加 --fips-enabled 标志,以启用 FIPS 140-2 1 级合规性

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 资源预配具有专用网络连接企业版 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.

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

实例创建期间,您可以在控制台的实例页面上查看其状态。您还可以点击 Google Cloud 控制台菜单中的通知图标,查看实例创建活动。

公共 IP 实例创建完毕后,实例的公开网址将显示在实例页面的实例网址列中。

实例创建后,在您之前创建的 OAuth 客户端中设置已获授权的重定向 URI

实例创建完毕且您已完成 OAuth 设置后,您可以前往实例网址(将显示在实例页面上)查看该实例。

后续步骤