Recuperando terminais de serviço

Os terminais de serviço que o cluster expõe são disponibilizados como chaves de serviço (também conhecidas como credenciais de serviço).

É possível buscar os terminais de serviço das seguintes formas:

Os terminais de serviço não expõem as credenciais de instância. Para obter as credenciais da instância, consulte Recuperando credenciais do cluster.

Obtendo os terminais de serviço usando a CLI da IBM Cloud

É preciso criar uma chave de serviço para a instância serverless IBM Analytics Engine para obter os terminais de serviço.

Para criar uma chave de recursos de serviço, insira o comando a seguir:

ibmcloud resource service-key-create <your_service_key_name> <role> --instance-name <your_service_instance_name>

Os parâmetros obrigatórios incluem:

  • <your_service_instance_name> é o nome da instância de serviço que você especificou ao criar o cluster. É possível verificar a lista de recursos da IBM Cloud para encontrar nomes de instância de serviço.
  • <your_service_key_name>: qualquer nome que você deseja usar para a chave. Esse nome é usado para recuperar as chaves de serviço.
  • <role> é a função designada à chave de API do IAM que foi gerada para as credenciais de serviço. Será possível realizar apenas as operações que são permitidas para a função escolhida. Para obter mais detalhes sobre as funções necessárias para executar uma operação, consulte a seção Permissões de IAM necessárias em Concedendo permissões aos usuários.

Resposta esperada:

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

Para visualizar a chave de recursos de serviço, insira o comando a seguir:

ibmcloud resource service-key <service_key_name>

Parâmetro necessário:

  • <service key name> é o nome da chave de serviço que você inseriu ao criar a chave.

Resposta da amostra: tenha em mente que as credenciais do cluster não são retornadas na resposta.

{
  "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"
}

Na resposta de amostra, as propriedades sob endpoints especificam os terminais de serviço. A propriedade iam_apikey_name contém uma chave de API do IAM que pode ser usada para gerar tokens ao portador de IAM. Um token do portador de IAM deve ser fornecido para autorização ao chamar as APIs de REST para instâncias serverless IBM Analytics Engine.

Obtendo os terminais de serviço usando a API de REST da IBM Cloud

Pré-requisito: é necessário um token de acesso do IAM. Para obter mais informações, consulte Recuperando tokens de acesso do iAM.

O terminal da API que manipula as chaves de serviço da API é https://resource-controller.cloud.ibm.com/v1/resource_keys.

Para criar uma chave de recursos de serviço, insira:

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>"} }'

Resposta de amostra:

{
	"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
}

Obtendo os terminais de serviço a partir do console IBM Cloud

Se seguir as etapas nesta seção para obter os terminais de serviço usando o console IBM Cloud, você será direcionado para a página de credenciais de serviço da instância de serviço na qual espera ver terminais de serviço e chave de API.

Para criar uma chave de serviço a partir do console IBM Cloud:

  1. Vá para a lista de recursos, clique em Serviços e software e selecione a instância serverless provisionada.
  2. Clique em Credenciais de serviço na barra lateral esquerda.
  3. Em seguida, clique em Nova credencial para criar novas credenciais de serviço.
  4. Insira um nome, selecione uma função e clique em Incluir.
  5. Copie as credenciais na área de transferência.

Consulte a Documentação da API para as operações que estão disponíveis nos terminais de gerenciamento de instância e gerenciamento de aplicativos. Para obter detalhes sobre as permissões que são necessárias para chamar operações nesses terminais, consulte Concedendo permissões aos usuários.