用途
本技能用于在使用 SAP Service Manager 管理 SAP BTP 各环境中的服务时提供系统性知识。适用任务包括:服务实例的创建、参数与标签配置、删除与生命周期管理;服务绑定与外部客户端服务密钥的创建;平台与服务代理的注册与目录管理;认证授权配置;Kubernetes/Kyma 集成;以及通过 SMCTL、BTP CLI、CF CLI 和 REST API 执行操作与故障排查。
核心概念
SAP Service Manager 是 SAP BTP 中服务代理与平台的中央注册表。主要资源包括:Platforms(运行为应用的 OSBAPI 系统)、Service Brokers(发布服务目录的中介)、Service Instances(服务实例化)、Service Bindings(实例访问凭据)、Service Plans(服务提供的能力集)和 Service Offerings(来自代理的服务公告)。
Service Manager 计划:subaccount-admin(完整管理,10 个 scope)、subaccount-audit(只读监控,6 个 scope)、container(隔离管理,7 个 scope)。角色包括 Subaccount Service Administrator(资源的完整 CRUD)和 Subaccount Service Viewer(只读访问,Feature Set B)。
主要能力
- 服务实例管理:在 Cloud Foundry、Kyma、Kubernetes 等环境创建实例,通过 BTP cockpit、SMCTL CLI 或 BTP CLI 开通,配置参数与标签,删除实例。
- 服务绑定管理:创建绑定以向应用交付凭据,将服务实例绑定到 Cloud Foundry 应用,创建服务密钥供外部客户端访问,管理 Kubernetes ServiceBinding CRD。
- 平台与代理管理:注册 OSBAPI 平台与服务代理,管理代理目录与 offerings,更新和删除注册。
- 认证与授权:配置 OAuth2 客户端凭据、X.509 证书认证,分配 Subaccount Service Administrator 角色,管理服务管理器计划与 scope。
- Kubernetes/Kyma 集成:设置 SAP BTP Service Operator,创建 ServiceInstance 与 ServiceBinding CRD,从 Service Catalog(svcat)迁移,为 operator 通信安装 cert-manager。
- API 与 CLI 操作:使用 SMCTL 命令行、BTP CLI、Service Manager REST API,过滤与查询服务资源。
- 故障排查:调试服务开通失败、绑定凭据问题、速率限制(HTTP 429)、异步操作状态检查。
使用方式
快速开始:1)安装 SMCTL CLI。SMCLI 仓库已于 2025 年 9 月 30 日归档,工具仍可用,但建议评估长期迁移策略。推荐通过 Go 安装:go install github.com/Peripli/service-manager-cli@latest,随后 export PATH=$PATH:$(go env GOPATH)/bin 并执行 smctl --version。也可从 GitHub Releases 下载预构建二进制。2)登录:交互式登录 smctl login -a https://service-manager.cfapps.<region>.hana.ondemand.com --param subdomain=<subdomain>;客户端凭据登录使用 --auth-flow client-credentials --client-id <id> --client-secret <secret>。3)基础操作:smctl marketplace 浏览服务,smctl provision my-instance <service> <plan> 创建实例(异步),smctl bind my-instance my-binding 创建绑定。
Cloud Foundry 操作可通过 Cockpit 或 CF CLI:cf create-service、cf bind-service、cf create-service-key。
Kubernetes 操作需 kubectl v1.7+、Helm v3.1.2+、SMCTL v1.10.1+。先安装 cert-manager,再创建 Service Manager 资源并绑定,然后通过 Helm 部署 operator。之后可创建 ServiceInstance 与 ServiceBinding CRD(apiVersion: services.cloud.sap.com/v1alpha1)。
BTP CLI 可作为 SMCTL 的替代:btp create services/instance、btp get services/instance、btp create services/binding 以及平台管理命令。
API 操作:先获取 OAuth2 token(POST 至 <uaa_url>/oauth/token,grant_type=client_credentials),API 基址为 https://service-manager.cfapps.<region>.hana.ondemand.com/v1/。
SMCTL 常用命令类别涵盖认证(login/logout)、实例(provision/deprovision/list-instances)、绑定(bind/unbind/list-bindings)、代理(register-broker/update-broker)、平台(register-platform/list-platforms)、marketplace。常用标志:--mode sync/async(默认 async)、-c/--parameters(JSON 配置)、-o/--output(json/yaml/text)、-v/--verbose。
异步操作状态查询:smctl status /v1/service_instances/<id>/operations/<op-id>,或 GET /v1/{resourceType}/{resourceID}/operations/{operationID},状态有 in progress、succeeded、failed。删除实例前需移除所有绑定与服务密钥,且实例未绑定应用;Kyma/Kubernetes 实例无法从 BTP cockpit 删除。
适用场景
适用于在 SAP BTP 上进行服务开通与绑定、为外部客户端创建服务密钥、Kubernetes/Kyma 服务集成、平台与代理注册、API 调用与查询过滤、以及针对服务开通失败或速率限制的排查等任务。技能内附 5 个模板文件(Cloud Foundry 实例与绑定参数、Kubernetes ServiceInstance/ServiceBinding CRD、OAuth2 token 请求脚本)和 7 份参考文档(API 参考、SMCTL 命令、BTP CLI 命令、Kubernetes operator、速率限制与过滤、角色权限、旧版 service catalog)。
限制
- SMCLI 仓库已于 2025 年 9 月 30 日归档。
- Kubernetes 操作需满足 kubectl v1.7+、Helm v3.1.2+、SMCTL v1.10.1+ 等前提。
- 速率限制分三层:Level 1 全部 API 每小时 10,000、每分钟 1,000;Level 2 资源相关每小时 1,000-6,000;Level 3 实例操作每小时 50-6,000。超出时返回 HTTP 429 及 Retry-After 头。
- 删除实例需先移除绑定与服务密钥。
- Kyma/Kubernetes 实例无法从 BTP cockpit 删除。
- 授权许可为 GPL-3.0,版本 1.1.1。
- 资料未提供有关价格、收费或计费的说明。