创建公共 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 核心)产品页面。如果您已在此项目中创建 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 (Google Cloud Core) 平台,适用于用户少于 50 人的小型组织或团队
    • 企业版:具有增强型安全功能的 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-annual。实例创建后,版本便无法更改。如果您想更改版本,可以使用导入和导出功能将 Looker (Google Cloud Core) 实例数据移至配置为使用其他版本的新实例。
    • CONSUMER_NETWORK:您的 VPC 网络或共享 VPC。如果您要创建专用 IP 实例,则必须设置此参数。
    • RESERVED_RANGE:Google 将在其中为您的 Looker (Google Cloud Core) 实例预配子网的 VPC 中的 IP 地址范围。如果要为实例启用专用 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 设置后,您可以前往实例网址(将显示在实例页面上)查看该实例。

后续步骤