第三方服务如何使用 IBM Cloud 平台
第三方服务使用 IBM Cloud 平台进行认证,访问,自助服务实例创建,测量和计费。 本主题提供了服务所使用的平台组件的高级概述,并将这些概念整合到端到端供应方案中。
IBM Cloud 供应层
供应层用于管理 IBM Cloud 资源的生命周期。 供应层负责控制和跟踪客户帐户中资源的生命周期。 资源是可为应用程序或服务实例创建或保留的物理或逻辑组件。 例如,资源包括数据库、帐户、处理器、内存以及存储限制。 通常,由供应层跟踪的资源都会与使用量度量值和帐单相关联,但也并不总是如此。 在某些情况下,资源可能会与供应层相关联,以确保资源生命周期可与帐户生命周期一起进行管理。
资源生命周期管理
调配层提供通用 API,用于控制资源的生命周期,从创建(创建实例)到服务凭证(创建和删除访问凭证)再到删除(删除实例)。 此外,IBM Cloud 平台还提供了可以管理这些资源的生命周期的 CLI 和 UI,您无需创建自己的管理工具。
供应层提供了一些 API,可帮助您管理资源生命周期的以下元素:
- 创建资源实例
- 更新资源实例
- 创建服务凭证
- 删除服务证书
- 资源键
- 删除资源实例
IBM Cloud Identity and Access Management (IAM)
通过 Identity and Access Management (IAM),您可以在整个 IBM Cloud 上安全地对用户进行认证并一致地控制对所有云资源的访问权。 IBM Cloud 供应层采用了 IAM 来对针对供应层执行的操作进行认证和授权。 第三方产品提供商使用 IAM 创建身份验证流程(OAuth)。 请参阅 什么是 IAM? 以获取更多信息。
如果您的产品使用 OpenID Connect (OIDC) 库,则 IAM 支持 OIDC 集成。 OIDC 是基于 OAuth 2.0 的认证层,这是一个授权框架,可以帮助简化上线过程。 有关 OIDC 的更多信息,请参阅 Open ID Connect。
IBM Cloud 目录
IBM Cloud 目录存储并显示您加入的产品的产品定义 (描述,功能部件,图像,URL,关键字和其他产品定义)。IBM Cloud Partner Center 提供了一种方法来定义服务所需元数据的所有方面。 您可以在 Partner Center 的“仪表板”,“产品详细信息”和“定价”选项卡上找到有关必需和可选元数据字段的详细信息。 此元数据将发布并显示在目录中。 请查看以下关键项,以快速开始您的了解:
- 编程名称
- 编程名称是产品的唯一标识,在所有 IBM 服务和工具中使用。 此名称不是客户在 IBM Cloud 目录中看到的产品的显示名称。 程序名称由公司名称和产品显示名称自动生成。
- 显示名称
- 为您的服务命名。 此名称公开显示在 IBM Cloud 目录中。 例如,
Compose Redis
- 服务标识
- 服务标识用于在与其他 IBM Cloud 服务通信时识别服务。 您还需要为服务标识创建 API 密钥。
- 公司或产品徽标
- 包含产品徽标的 SVG 文件。
- 简短描述
- 产品的内容,其值以及要在 IBM Cloud 目录条目中显示的任何其他详细信息的简短描述。 您可以添加一句话或一个短语作为描述。
- 详细描述
- 该描述显示在目录中产品页面的开头。 包含相关关键字并考虑至少两个句子以获取详细描述。
- 文档 URL
- 指向 IBM Cloud 文档的链接。
- 最终用户许可协议(EULA) URL
- 指向最终用户许可协议的链接,用户必须同意该协议才能使用您的产品。 请勿在本协议中包含计费、付款或税款条款。
- 类别
- 选择最适合描述产品的可用 IBM Cloud 类别。 只能选择一个类别。
- 关键字
- 与您的产品相关的单词、短语和其他关键搜索词。
- 特性
- 有关产品属性的简短描述性唯一标识。
- 媒体
- 显示产品的截屏和视频。
- 计划名称
- 不包含公司或产品名称的定价计划名称。 此信息将在 IBM Cloud 目录中向客户显示。 例如,
Gold
- 套餐描述
- 定价计划说明。 此信息将在 IBM Cloud 目录中向客户显示。
- 计划名称
- 自动生成的定价计划的技术名称。 您无法对此名称进行编辑。
Open Service Broker
服务代理程序用于管理服务的生命周期。 IBM Cloud 平台与服务代理交互,以创建和管理服务实例和服务绑定。 服务绑定是应用程序与服务实例之间关联的表示,通常包括应用程序用于与服务实例通信的凭证。 在执行请求时,提供有效的元数据值可创建成功的 REST API 响应。
IBM Cloud 使用 Open Service Broker API (OSB) version 2.12
规范。 通读并熟悉 Open Broker API 规范,并将自述文件作为学习更多内容的指南。
当资源控制器接收到创建资源的请求时,它会调用 OSB 来验证服务类型、产品、计划和区域的可用性。 资源控制器还会验证与客户帐户关联的套餐的可视性。IBM Cloud 提供用于扩展 OSB 规范的代理程序样本和 API 文档。 浏览详细的 Integrated Billing 上线开发步骤时,可以找到有关开发和托管代理程序的更多详细信息。
IBM Cloud 测量服务
如果服务提供计量套餐,那么将根据 IBM Cloud 用户使用的资源量向其收费。 例如,对于使用数据库服务的 IBM Cloud 用户,可能会根据其应用程序使用的存储量对这些用户收费。 必须执行使用量提交,才能将使用量转换为可收费记录。
所有提供计量套餐的 Integrated Billing 服务都必须使用 IBM Cloud 计量服务来报告使用量数据。
如果提供计量套餐,那么您需要使用计量服务 API 来自动提交每小时使用量。
有关计量的更多信息,请参阅计量集成。 有关提交计量使用量的更多信息,请参阅提交计量套餐的使用量
创作场景:将所有内容整合在一起
现在,我们将所有概念集中在一起,并查看有关如何使用 IBM Cloud 平台来创建服务实例的示例。
使用控制台创建服务实例
当用户想要创建服务实例时,他们可以选择服务,规划和使用 创建 操作。
IBM Cloud 平台会验证用户是否有权使用 IBM Cloud IAM 来创建服务实例。 验证完成后,服务代理的创建端点 (PUT /v2/resource_instances/:resource_instance_id
) 就会启动。 要创建实例,必须满足以下规则:
- context 变量中包含 IBM Cloud 上下文
X-Broker-API-Originating-Identity
包含发起请求的用户的 IBM IAM 标识- parameters 部分包含请求的位置(以及服务所需的更多参数)。
用于创建实例的示例请求:
PUT /v2/service_instances/crn%3Av1%3Abluemix%3Apublic%3Acompose-redis%3Aus-south%3Aa%2F46aa677e-e83f-4d17-a2b6-5b752564477c%3A416d769b-682d-4833-8bd7-5ef8778e5b52?accepts_incomplete=true HTTP/1.1
Host: https://broker.compose.cloud.ibm.com
Authorization: basic dXNlcjpwYXNzd29yZA==
X-Broker-Api-Version: 2.12
X-Broker-API-Originating-Identity: ibmcloud aWJtaWQtNDU2MzQ1WA==
{
"service_id": "0bc9d744-6f8c-4821-9648-2278bf6925bb", // your service's GUID from onboarding
"plan_id": "ecc19311-aba2-49f7-8198-1e450c8460d4", //your plan's GUID from onboarding
"context": {
"platform": "ibmcloud",
"account_id": "003e9bc3993aec710d30a5a719e57a80",
"crn": "crn:v1:bluemix:public:compose-redis:us-south:a/003e9bc3993aec710d30a5a719e57a80:416d769b-682d-4833-8bd7-5ef8778e5b52",
"resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/003e9bc3993aec710d30a5a719e57a80::resource-group:b4570a825f7f4d57aa54e8e1d9507926",
"target_crn": "crn:v1:bluemix:public:resource-catalog::a/e97a8c01ac694e308ef3ad7795c7cdb3::deployment:e62e2c19-0c3b-41e3-b8b3-c71762ecd489:us-south38399"
},
"parameters": {
"location": "us-south",
"optional-param":"parameter required by your service"
}
}
使用 CLI 创建服务实例
当用户想要创建服务实例时,可以使用 ibmcloud cli [ ibmcloud resource service-instance-create NAME SERVICE_NAME SERVICE_PLAN_NAME LOCATION ]
。
IBM Cloud 平台会验证用户是否有权使用 IBM Cloud IAM 来创建服务实例。 验证完成后,服务代理的创建端点(PUT /v2/resource_instances/:resource_instance_id )就会启动。 要创建实例,必须满足以下规则:
- context 变量中包含 IBM Cloud 上下文
X-Broker-API-Originating-Identity
包含发起请求的用户的 IBM IAM 标识- parameters 部分包含请求的位置(以及服务所需的更多参数)。
用于创建实例的示例请求:
PUT /v2/service_instances/crn%3Av1%3Abluemix%3Apublic%3Acompose-redis%3Aus-south%3Aa%2F46aa677e-e83f-4d17-a2b6-5b752564477c%3A416d769b-682d-4833-8bd7-5ef8778e5b52?accepts_incomplete=true HTTP/1.1
Host: https://broker.compose.cloud.ibm.com
Authorization: basic dXNlcjpwYXNzd29yZA==
X-Broker-Api-Version: 2.12
X-Broker-API-Originating-Identity: ibmcloud aWJtaWQtNDU2MzQ1WA==
{
"service_id": "0bc9d744-6f8c-4821-9648-2278bf6925bb", // your service's GUID from onboarding
"plan_id": "ecc19311-aba2-49f7-8198-1e450c8460d4", //your plan's GUID from onboarding
"context": {
"platform": "ibmcloud",
"account_id": "003e9bc3993aec710d30a5a719e57a80",
"crn": "crn:v1:bluemix:public:compose-redis:us-south:a/003e9bc3993aec710d30a5a719e57a80:416d769b-682d-4833-8bd7-5ef8778e5b52",
"resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/003e9bc3993aec710d30a5a719e57a80::resource-group:b4570a825f7f4d57aa54e8e1d9507926",
"target_crn": "crn:v1:bluemix:public:resource-catalog::a/e97a8c01ac694e308ef3ad7795c7cdb3::deployment:e62e2c19-0c3b-41e3-b8b3-c71762ecd489:us-south38399"
},
"parameters": {
"location": "us-south",
"optional-param":"parameter required by your service"
}
}
使用应用程序接口创建服务实例
此操作只能通过 UI 或 CLI 完成。 要查看步骤,请切换到 UI 或 CLI 指示信息。
IBM Cloud 平台会验证用户是否有权使用 IBM Cloud IAM 来创建服务实例。 验证完成后,服务代理的创建端点(PUT /v2/resource_instances/:resource_instance_id )就会启动。 要创建实例,必须满足以下规则:
- context 变量中包含 IBM Cloud 上下文
X-Broker-API-Originating-Identity
包含发起请求的用户的 IBM IAM 标识- parameters 部分包含请求的位置(以及服务所需的更多参数)。
用于创建实例的示例请求:
PUT /v2/service_instances/crn%3Av1%3Abluemix%3Apublic%3Acompose-redis%3Aus-south%3Aa%2F46aa677e-e83f-4d17-a2b6-5b752564477c%3A416d769b-682d-4833-8bd7-5ef8778e5b52?accepts_incomplete=true HTTP/1.1
Host: https://broker.compose.cloud.ibm.com
Authorization: basic dXNlcjpwYXNzd29yZA==
X-Broker-Api-Version: 2.12
X-Broker-API-Originating-Identity: ibmcloud aWJtaWQtNDU2MzQ1WA==
{
"service_id": "0bc9d744-6f8c-4821-9648-2278bf6925bb", // your service's GUID from onboarding
"plan_id": "ecc19311-aba2-49f7-8198-1e450c8460d4", //your plan's GUID from onboarding
"context": {
"platform": "ibmcloud",
"account_id": "003e9bc3993aec710d30a5a719e57a80",
"crn": "crn:v1:bluemix:public:compose-redis:us-south:a/003e9bc3993aec710d30a5a719e57a80:416d769b-682d-4833-8bd7-5ef8778e5b52",
"resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/003e9bc3993aec710d30a5a719e57a80::resource-group:b4570a825f7f4d57aa54e8e1d9507926",
"target_crn": "crn:v1:bluemix:public:resource-catalog::a/e97a8c01ac694e308ef3ad7795c7cdb3::deployment:e62e2c19-0c3b-41e3-b8b3-c71762ecd489:us-south38399"
},
"parameters": {
"location": "us-south",
"optional-param":"parameter required by your service"
}
}
了解 IBM Cloud context
参数
在先前的示例中,您可以看到在 context
参数中返回的元数据。 IBM Cloud 的上下文将返回以下内容:
-
平台:将平台标识为
ibmcloud
-
"account_id": 返回 IBM Cloud 中创建服务实例的账户 ID。
-
crn:客户在 IBM Cloud 中创建服务时,会创建一个服务实例,该实例由 IBM Cloud 资源名称 (CRN) 标识。 CRN 用于与 IBM Cloud 交互的各个方面,包括创建实例、绑定(创建凭据和端点)、计量、仪表盘显示和访问控制。 从产品提供商的角度来看,CRN 在很大程度上可被视为一个不透明的字符串,与 IBM Cloud API 配合使用。 还可以使用以下结构对其进行分解:
crn:version:cname:ctype:service-name:location:scope:service-instance:resource-type:resource
在供应样本中,我们看到
compose-redis
服务 CRN 为:crn:v1:bluemix:public:compose-redis:us-south:a/46aa677e-e83f-4d17-a2b6-5b752564477c:416d769b-682d-4833-8bd7-5ef8778e5b52::
在此样本中,此
compose-redis
实例属于标识为 46aa677e-e83f-4d17-a2b6-5b752564477c 的 IBM Cloud 帐户。 该实例的唯一标识为416d769b-682d-4833-8bd7-5ef8778e5b52
,并且该实例在公共 IBM Cloud 的us-south
区域进行托管。 -
resource_group_crn:返回包含服务实例的资源组。 有关更多详细信息,请参阅管理资源组。
除非在特殊情况下,您通常不会关注
resource_group_crn
。 在使用该字段之前,请就您的用例向 IBM 代表进行咨询。