检索服务端点
集群公开的服务端点可用作服务密钥 (也称为服务凭证)。
您可以通过以下方法访存服务端点:
服务端点不会公开实例凭证。 要获取实例凭证,请参阅 检索集群凭证。
使用 IBM Cloud CLI 获取服务端点
您需要为 IBM Analytics Engine 无服务器实例创建服务密钥以获取服务端点。
要创建服务资源密钥,请输入以下命令:
ibmcloud resource service-key-create <your_service_key_name> <role> --instance-name <your_service_instance_name>
必需参数包括:
<your_service_instance_name>: 创建集群时指定的服务实例的名称。 您可以检查 IBM Cloud 资源列表 以查找服务实例名称。<your_service_key_name>: 要用于密钥的任何名称。 此名称用于检索服务密钥。<role>: 分配给针对服务凭证生成的 IAM API 密钥的角色。 您将只能执行所选角色所允许的那些操作。 有关执行操作所需的角色的更多详细信息,请参阅 向用户授予许可权 中的 必需 IAM 许可权 部分。
预期响应:
Creating service key of service instance <service_instance_name> under account <your account name> as <your user name>...
OK
Service key <service key crn> was created.
Name: service-key-name
ID: crn:v1:staging:public:ibmanalyticsengine:us-south:a/d628eae2cxxxxx229f2xxxx:1671b660-xxxx-448f-xxx-e1633a2b97c7:resource-key:4f1b043c-xxxx-xxxx-xxxx-cbf90f6155d0
Created At: Mon Nov 29 11:47:32 UTC 2021
State: active
Credentials:
apikey: xxxxxx
endpoints:
applications_api: https://api-staging.us-south.ae.cloud.ibm.com/v3/analytics_engines/xxxx660-7f2x-4xxf-9xx4-exxxxxxxxxc7/spark_applications
instance_api: https://api-staging.us-south.ae.cloud.ibm.com/v3/analytics_engines/xxxx660-7f2x-4xxf-9xx4-exxxxxxxxxc7
history_server_ui: https://spark-console.us-south.ae.cloud.ibm.com/v3/analytics_engines/xxxx660-7f2x-4xxf-9xx4-exxxxxxxxxc7/spark_history_ui
history_server_api: https://spark-console.us-south.ae.cloud.ibm.com/v3/analytics_engines/xxxx660-7f2x-4xxf-9xx4-exxxxxxxxxc7/spark_history_api/v1
iam_apikey_description: Auto-generated for key 4f1xxx3c-7517-xxx-cbfxxxxxx5d0
iam_apikey_name: service-key-name
iam_role_crn: crn:v1:bluemix:public:iam::::serviceRole:Writer
iam_serviceid_crn: crn:v1:staging:public:iam-identity::a/xxxx::serviceid:ServiceId-3543db7f-xxxx-454a-xxxx-1b20333ebeaa
要查看服务资源密钥,请输入以下命令:
ibmcloud resource service-key <service_key_name>
必需参数:
<service key name>: 创建密钥时输入的服务密钥的名称。
样本响应: 请记住,不会在响应中返回集群凭证。
{
"apikey": "xxxxx",
"endpoints": {
"applications_api": "https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/xxxx-3bxxxbc-4xxx1-axx6-8xxdxx0xxd/spark_applications",
"instance_api": "https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/xxxx-3bxxxbc-4xxx1-axx6-8xxdxx0xxd",
"history_server_ui": "https://spark-console.us-south.ae.cloud.ibm.com/v3/analytics_engines/xxxx-3bxxxbc-4xxx1-axx6-8xxdxx0xxd/spark_history_ui",
"history_server_api":"https://spark-console.us-south.ae.cloud.ibm.com/v3/analytics_engines/xxxx-3bxxxbc-4xxx1-axx6-8xxdxx0xxd/spark_history_api/v1"
},
"iam_apikey_description": "Auto-generated for key cabde209-xxxx",
"iam_apikey_name": "Service credentials-1",
"iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Reader",
"iam_serviceid_crn": "crn:v1:bluemix:public:iam-identity::a/xxxxx::serviceid:ServiceId-2fec11aa-xxxx-4918-xxxx-aa3650f99050"
}
在样本响应中,endpoints 下的属性指定服务端点。 属性 iam_apikey_name 包含可用于生成 IAM 不记名令牌的 IAM API 密钥。 调用 IBM Analytics Engine 无服务器实例的 REST API 时,必须提供 IAM 不记名令牌以进行授权。
使用 IBM Cloud REST API 获取服务端点
先决条件: 您需要 IAM 不记名令牌。 有关更多信息,请参阅 检索 IAM 访问令牌。
用于处理 API 服务密钥的 API 端点为 https://resource-controller.cloud.ibm.com/v1/resource_keys。
要创建服务资源密钥,请输入:
curl -X POST \
https://resource-controller.cloud.ibm.com/v1/resource_keys \
-H 'accept: application/json' \
-H "authorization: Bearer <IAM bearer token>" \
-H 'content-type: application/json' \
-d '{"name":"<key name>","source_crn":"<service instance crn>", "parameters":{"role_crn":"<crn of access role>"} }'
样本响应:
{
"id": "crn:v1:staging:public:ibmanalyticsengine:us-south:a/d628eae2cxxxxx229f2xxxx:79c757e9-xxxx-xxxx-xxxx-dff7f01xxxx:resource-key:2278xxxx-xxxx-xxxx-xxxx-59a6da6xxxxe",
"guid": "2278xxxx-xxxx-xxxx-xxxx-59a6da68xxxx",
"url": "/v1/resource_keys/crn%3Av1%3Astaging%3Apublic%3Aibmanalyticsengine%3Aus-south%3Aa%2Fd628eae2cxxxxx229f2xxxx%3A79c757e9-xxxx-xxxx-xxxx-dff7f01xxxx%3Aresource-key%3A2278xxxx-xxxx-xxxx-xxxx-59a6da6xxxxe",
"created_at": "2021-11-30T08:48:47.909145179Z",
"updated_at": "2021-11-30T08:48:47.909145179Z",
"deleted_at": null,
"created_by": "",
"updated_by": "",
"deleted_by": "",
"source_crn": "crn:v1:staging:public:ibmanalyticsengine:us-south:a/d628eae2cxxxxx229f2xxxx:79c757e9-xxxx-xxxx-xxxx-dff7f01xxxx::",
"name": "service_key_02",
"role": "crn:v1:bluemix:public:iam::::serviceRole:Writer",
"crn": "crn:v1:staging:public:ibmanalyticsengine:us-south:a/d628eae2cxxxxx229f2xxxx:79c757e9-xxxx-xxxx-xxxx-dff7f01xxxx:resource-key:2278xxxx-xxxx-xxxx-xxxx-59a6da6xxxxe",
"state": "active",
"account_id": "d628eae2cxxxxx229f2xxxx",
"resource_group_id": "65828fxxxx594594816e872xxxx",
"resource_id": "18dexxxx-xxxx-xxxx-xxxx-0ed2f93fxxxx",
"credentials": {
"apikey": "xxxxx",
"endpoints": {
"applications_api": "https://api-staging.us-south.ae.cloud.ibm.com/v3/analytics_engines/79c757e9-xxxx-xxxx-xxxx-dff7f01xxxx/spark_applications",
"instance_api": "https://api-staging.us-south.ae.cloud.ibm.com/v3/analytics_engines/79c757e9-xxxx-xxxx-xxxx-dff7f01xxxx",
"history_server_ui": "https://spark-console.us-south.ae.cloud.ibm.com/v3/analytics_engines/79c757e9-xxxx-xxxx-xxxx-dff7f01xxxx/spark_history_ui",
"history_server_api":"https://spark-console.us-south.ae.cloud.ibm.com/v3/analytics_engines/79c757e9-xxxx-xxxx-xxxx-dff7f01xxxx/spark_history_api/v1"
},
"iam_apikey_description": "Auto-generated for key 2278e09d-b815-4c4b-b824-xxxx",
"iam_apikey_name": "service_key_02",
"iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Writer",
"iam_serviceid_crn": "crn:v1:staging:public:iam-identity::a/d628eae2cxxxxx229f2xxxx::serviceid:ServiceId-209exxxx-xxxx-xxxx-xxxx-4ab9ce16xxxx"
},
"iam_compatible": true,
"migrated": false,
"resource_instance_url": "/v1/resource_instances/crn%3Av1%3Astaging%3Apublic%3Aibmanalyticsengine%3Aus-south%3Aa%2Fd628eae2cxxxxx229f2xxxx%3A79c757e9-xxxx-xxxx-xxxx-dff7f01xxxx%3A%3A",
"resource_alias_url": null
}
从 IBM Cloud 控制台获取服务端点
如果遵循本部分中的步骤使用 IBM Cloud 控制台获取服务端点,那么系统会将您定向到服务实例的服务凭证页面,您希望在该页面中看到服务端点和 API 密钥。
要从 IBM Cloud 控制台创建服务密钥,请执行以下操作:
- 转至 资源列表,单击 服务和软件,然后选择已供应的无服务器实例。
- 单击左侧栏中的 服务凭证。
- 然后单击 新建凭证 以创建新的服务凭证。
- 输入名称,选择角色,然后单击 添加。
- 将凭证复制到剪贴板。
请参阅 API 文档,以了解实例管理和应用程序管理端点上可用的操作。 有关在这些端点上调用操作所需的许可权的详细信息,请参阅 向用户授予许可权。