IBM Cloud Docs
为帐户中的用户定制 IBM Cloud 目录和专用目录

为帐户中的用户定制 IBM Cloud 目录和专用目录

专用目录提供了集中管理对 IBM Cloud® 目录和您自己的目录中产品的访问权的方法。 您可以定制公共目录和专用目录,以使特定解决方案可供帐户中的用户使用。 通过这样做,您可以确保目录与您的业务相关。

准备工作

准备工作

准备工作

  • 验证您是否正在使用现收现付帐户或预订帐户。 有关更多详细信息,请参阅 查看帐户类型

  • 请确保您具有 目录管理服务上的管理员角色 以完成此任务。

  • 运行以下命令安装目录管理插件:

    ibmcloud plugin install catalogs-management
    

准备工作

  • 验证您是否正在使用现收现付帐户或预订帐户。 有关更多详细信息,请参阅 查看帐户类型

  • 请确保您具有 目录管理服务上的管理员角色 以完成此任务。

  • 要使用 Terraform 定制目录,请确保您已完成以下操作:

    • 安装 Terraform CLI 并为 Terraform 配置 IBM Cloud 提供程序插件。 有关更多信息,请参阅 Terraform on IBM Cloud®入门 教程。 该插件对用于完成此任务的 IBM Cloud API 进行抽象。
    • 创建 Terraform 配置文件以使用 HashiCorp 配置语言定义资源。 有关更多信息,请参阅 Terraform 文档

使用控制台创建包含所有产品的专用目录

完成以下步骤以创建包含 IBM Cloud 目录中所有产品的目录:

  1. 转至 IBM Cloud 控制台中的 管理 > 目录,然后单击 创建目录
  2. 选择产品 (缺省) 目录类型。
  3. 输入名称和描述。
  4. 确保选择了 所有产品 选项,然后单击 创建。 可用性基于在 "设置" 页面上的帐户级别设置的过滤器。
  5. 通过单击商品目录名称> 管理过滤器来确认商品目录包含所有产品。 然后,检查是否在 步骤 1: 选择以包含或排除 IBM Cloud 目录中的所有产品中选择了 将所有产品包括在 IBM Cloud 目录中

使用控制台创建包含所选产品的专用目录

完成以下步骤以创建包含 IBM Cloud 目录中的一组特定产品的目录:

  1. 转至 IBM Cloud 控制台中的 管理 > 目录,然后单击 创建目录
  2. 选择产品 (缺省) 目录类型。
  3. 输入名称和描述。
  4. 单击创建
  5. 单击目录名称> 管理过滤器
  6. 步骤 1: 选择以包含或排除 IBM Cloud 目录中的所有产品中选择 排除 IBM Cloud 目录中的所有产品
  7. 跳过步骤 2,然后单击 步骤 3: 向规则添加异常中的 添加
  8. 确保选择 包含 作为条件,然后单独选择您希望用户访问的产品。 在示例项目中,选择 watsonx Assistant,Speech to Text和 Text to Speech。

使用控制台设置 IBM Cloud 目录的可视性

现在,您已创建专用目录,请完成以下步骤以关闭公共目录对帐户中所有用户的可视性。

  1. 单击面包屑中的 目录

  2. 单击设置

  3. IBM Cloud 目录 设置为 关闭

    如果您关闭 IBM Cloud 目录的可见性,亮点页面也将被隐藏。 本页可帮助您在不同产品类别中找到最佳结果。

  4. 通过转至公共目录并展开目录切换器,确认正确应用了过滤器和设置。 仅应在列表中显示帐户中的专用目录。

您可以随时通过更新专用目录的设置来更新包含或排除的产品。

使用定制条幅对专用目录进行标记

您可以通过向专用商品目录的条幅添加定制图像来增强专用商品目录的外观,以与您的品牌相匹配。 所有有权访问专用目录的用户在转至专用目录以搜索产品时都可以看到定制条幅,而不是缺省的 IBM Cloud 条幅。 要添加自定义横幅图片,请完成以下步骤:

  1. 转至 管理 > 目录,然后单击 专用目录

  2. 单击要为其添加条幅的专用目录行上的 溢出菜单 图标 "操作" 图标,然后单击 编辑

  3. 在目录横幅区域中为您的自定义横幅添加URL,或者您可以点击上传直接添加图片。

    建议的最大图像大小为 944 x 260 像素。

  4. 单击更新

  5. 然后,转至 目录,并从列表中选择专用目录以查看专用目录的更新外观。

您还可以定制添加到目录的专用目录产品的提供者名称。 缺省情况下,它们以 Community 作为提供者 (这是目录中的过滤器) 显示,但您可以将其定制为贵公司或组织的名称。 有关更多信息,请参阅 提供商品详细信息

使用控制台授予对专用目录的访问权

要授权用户使用专用目录中的产品,请为他们分配 目录管理服务上的查看者角色

使用控制台删除专用目录

如果删除专用目录,那么也会删除该目录中的所有产品。 请完成以下步骤,删除私人目录:

  1. 在 IBM Cloud 控制台中,转至 管理 > 目录,然后单击 专用目录
  2. 单击要删除的目录的 操作 图标 "操作" 图标,然后选择 删除

您可以在删除专用目录后的 7 天内 复原该目录

使用 CLI 创建包含所有产品的专用目录

完成以下步骤以创建包含 IBM Cloud 目录中所有产品的目录:

  1. 将资源组作为目标以创建目录。 您可以运行 ibmcloud resource groups 命令,然后运行 ibmcloud target -g "resource group" 命令。

  2. 使用以下命令在帐户中创建新的专用目录。

    ibmcloud catalog create --name CATALOG [--catalog-description "DESCRIPTION"]
    

缺省情况下,当您创建新的专用目录时,将显示所有 IBM Cloud 目录产品。 请参阅 目录管理 CLI 以获取更多信息。

使用 CLI 创建包含所选产品的专用目录

完成以下步骤以创建包含 IBM Cloud 目录中的一组特定产品的目录:

  1. 将资源组作为目标以创建目录。 您可以运行 ibmcloud resource groups 命令,然后运行 ibmcloud target -g "resource group" 命令。
  2. 使用以下命令在帐户中创建新的专用目录。
    ibmcloud catalog create --name CATALOG [--catalog-description "DESCRIPTION"]
    
  3. 更新过滤器以包含或排除特定产品或产品以及任何适用的定价计划。 请确保指定目录,否则过滤器将缺省为帐户级别。 请参阅 目录管理 CLI 以获取更多命令选项。
    ibmcloud catalog filter offering --offering PRODUCT-NAME
    

使用 CLI 设置 IBM Cloud 目录的可视性

默认情况下,账户中的所有用户都可以看到 IBM Cloud 公共目录。 您可以通过关闭 IBM Cloud 目录的可见性,并将产品添加到您的私人目录中,从而仅向您选择的用户提供产品。 使用以下命令来关闭公共目录对帐户中所有用户的可视性。

ibmcloud catalog filter hide-ibm-public-catalog

使用 CLI 授权访问专用目录

要授权用户使用专用目录中的产品,请为他们分配 目录管理服务上的查看者角色

使用 CLI 删除专用目录

如果删除专用目录,那么也会删除该目录中的所有产品。 运行以下命令删除私人目录:

ibmcloud catalog delete --catalog CATALOG

您可以在删除专用目录后的 7 天内 复原该目录

使用 API 创建包含所有产品的专用目录

要创建包含 IBM Cloud 目录中所有产品的目录,请调用 目录管理 API,如以下样本请求中所示。 将变量替换为您帐户中的值。

curl -X 'POST' \
'https://dev-cm.globalcatalog.test.cloud.ibm.com/api/v1-beta/catalogs' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H "Authorization: ${IC_IAM_TOKEN}" \
-d '{"label": "testcurlcatalog", "short_description": "testing creating a catalog through curl"}'
ServiceCall<Catalog> createCatalog(CreateCatalogOptions createCatalogOptions)

Example request

String label = "{label}";
String shortDesc = "{shortDesc}";
CreateCatalogOptions createOptions = new CreateCatalogOptions.Builder().label(label).shortDescription(shortDesc).build();
Response<Catalog> response = service.createCatalog(createOptions).execute();
System.out.println(response.getResult());
createCatalog(params, [callback()])

Example request

label = "{label}";
shortDesc = "{shortDesc}";
response = await service.createCatalog({ 'label': label, 'shortDescription': shortDesc });
console.log(response);
create_catalog(self, id=None, rev=None, label=None, short_description=None, catalog_icon_url=None, tags=None, url=None, crn=None, offerings_url=None, features=None, disabled=None, created=None, updated=None, resource_group_id=None, owning_account=None, catalog_filters=None, syndication_settings=None, **kwargs)

Exapmle request

label = "{label}"
shortDesc = "{shortDesc}"
response = self.service.create_catalog(label=label, short_description=shortDesc)
print(response)
(catalogManagement *CatalogManagementV1) CreateCatalog(createCatalogOptions *CreateCatalogOptions) (result *Catalog, response *core.DetailedResponse, err error)

Example request

label := "{label}"
shortDesc := "{shortDesc}"
createOptions := service.NewCreateCatalogOptions()
createOptions.SetLabel(label)
createOptions.SetShortDescription(shortDesc)
_, response, _ := service.CreateCatalog(createOptions)
fmt.Println(response)

一切IBM Cloud当您创建新的私人目录时,公共目录产品默认可见。 请参阅 目录管理 API 以获取更多信息。

使用 API 创建包含所选产品的专用目录

要在 IBM Cloud 目录中创建包含一组特定产品的目录,请调用 目录管理 API,如以下样本请求中所示。 将变量替换为您帐户中的值。

curl -X 'POST' \
'https://dev-cm.globalcatalog.test.cloud.ibm.com/api/v1-beta/catalogs' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H "Authorization: ${IC_IAM_TOKEN}" \
-d '{"label": "testcurlcatalog4", "short_description": "testing creating a catalog through curl", "catalog_filters": { "include_all": false, "id_filters": { "include": { "filter_terms": [ "AdvancedMobileAccess-d6aece47-d840-45b0-8ab9-ad15354deeea" ] } } }}'

通过设置 include_all 字段对于每个 catalog_filters 对象具有布尔值 false,确保排除所有公共目录产品。 要指定要包含的产品,可以按 category_filtersid_filters 进行过滤。 为 filter_terms 提供要包含的产品属性或产品标识。 在此示例中,AdvancedMobileAccess-d6aece47-d840-45b0-8ab9-ad15354deeea 是产品标识。

请参阅 目录管理 API 以获取更多命令选项。

使用 API 设置 IBM Cloud 目录的可视性

要在帐户中隐藏公共目录,请确保 hide_IBM_cloud_catalog 字段具有布尔值 true。 或者,您可以为 include_all 字段提供每个 account_filters 对象的布尔值 false。 然后,只有您创建的专用目录才应显示在您的帐户中。

curl -X "PUT" "https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/catalogaccount"
-H "accept: */*"
-H "Authorization: {iam-bearer-token}"
-d '{"id":"string","hide_IBM_cloud_catalog":true,"account_filters":{"include_all":true,"category_filters":{"additionalProp1":{"include":true,"filter":{"filter_terms":["string"]}},"additionalProp2":{"include":true,"filter":{"filter_terms":["string"]}},"additionalProp3":{"include":true,"filter":{"filter_terms":["string"]}}},"id_filters":{"include":{"filter_terms":["string"]},"exclude":{"filter_terms":["string"]}}}}'

请参阅 目录管理 API 以获取更多信息。

使用 API 授予对专用目录的访问权

要授权用户使用专用目录中的产品,请为他们分配 目录管理服务上的查看者角色

使用API删除私人目录

如果删除专用目录,那么也会删除该目录中的所有产品。 使用以下命令来删除专用目录:

DELETE /catalogs/{catalog_identifier}

请参阅 目录管理 API 以获取更多信息。

您可以在删除专用目录后的 7 天内 复原该目录

使用 Terraform 创建专用目录

您无法使用 Terraform 自定义公共目录和私有目录,以便为您帐户中的用户提供特定的解决方案。 要自定义公共目录和私有目录,请切换到 UI、CLI 或 API 步骤。

请按照以下步骤创建私人目录:

  1. main.tf 文件中创建自变量。 以下示例使用 ibm_cm_catalog 资源创建目录,其中 label 是用于标识目录的显示名称。

    resource "ibm_cm_catalog" "cm_catalog" {
    label = "label"
    short_description = "short_description"
    }
    

    有关更多信息,请参阅“Terraform 目录管理”页面上的参数参考详细信息。

  2. 完成构建配置文件后,初始化 Terraform CLI。 有关更多信息,请参阅 初始化工作目录

    terraform init
    
  3. main.tf 文件供应资源。 有关更多信息,请参阅 使用 Terraform 供应基础架构

    1. 运行 terraform plan 以生成 Terraform 执行计划来预览建议的操作。

      terraform plan
      
    2. 运行 terraform apply 以创建计划中定义的资源。

      terraform apply
      

使用 Terraform 授予对专用目录的访问权

要授权用户使用专用目录中的产品,请为他们分配 目录管理服务上的查看者角色