Gestión de recursos
Un recurso Una instancia física o lógica que puede ser aprovisionada o reservada.Algunos ejemplos de recursos pueden ser el almacenamiento, los procesadores, la memoria, las bases de datos, los clústeres y las máquinas virtuales. es cualquier cosa que se puede crear desde el catálogo y que está gestionado por y contenido en un grupo de recursos. Puede crear y gestionar recursos desde la lista de recursos en la consola de IBM Cloud® o mediante la interfaz de línea de mandatos (CLI).
Los servicios que se gestionan mediante IBM Cloud Identity and Access Management(IAM)de control de acceso y pertenecen a un grupo de recursos tienen varias ventajas. Dado que los grupos de recursos no están delimitados por ubicación, puede crear aplicaciones y servicios de distintas ubicaciones en el mismo grupo de recursos. También puede utilizar el control de acceso preciso a una instancia individual dentro de un grupo de recursos.
Acceso necesario para crear recursos
Para que los usuarios de la cuenta puedan crear recursos desde el catálogo y asignarlos a un grupo de recursos, debe tener asignadas dos políticas de acceso:
- Una política con el rol de visor o superior sobre el propio grupo de recursos
- Una política con el rol de editor o superior sobre el servicio en la cuenta
Creación de recursos en la consola
Siga los pasos siguientes para crear un recurso en la consola:
- En el panel de control, pulse Ver recursos en el widget Resumen de recursos.
- Pulse Crear recurso. Desde ahí, se le redirige al catálogo. Puede buscar los productos o filtrarlos en función de una categoría específica, un proveedor, un plan de precios, un tipo de conformidad o un tipo de versión. Algunos ejemplos de recursos incluyen apps, instancias de servicio, clústeres de contenedores, volúmenes de almacenamiento, servidores virtuales y software.
Después de crear el recurso, se visualiza en la lista de recursos de la página Lista de recursos.
Creación de recursos mediante la CLI
Puede crear un recurso mediante la interfaz de línea de mandatos de IBM Cloud®. Para ver información detallada sobre cómo trabajar con recursos, consulte Cómo trabajar con recursos y grupos de recursos.
- Inicie sesión y seleccione la cuenta.
ibmcloud login - Cree una organización con el mandato
ibmcloud resource service-instance-create.
En este mandato, NAME es el nombre de la instancia de servicio, SERVICE_NAME or SERVICE_ID es el nombre o el ID del servicio, SERVICE_PLAN_NAME or SERVICE_PLAN_ID es el nombre o el ID del plan de servicio
y LOCATION es la ubicación o el entorno de destino para crear la instancia de servicio.
ibmcloud resource service-instance-create NAME (SERVICE_NAME | SERVICE_ID) SERVICE_PLAN_NAME LOCATION [-d, --deployment DEPLOYMENT_NAME] [-p, --parameters @JSON_FILE | JSON_STRING ] [-g RESOURCE_GROUP] [--service-endpoints SERVICE_ENDPOINTS_TYPE] [--allow-cleanup] [--lock]
Para listar servicios, utilice el mandato ibmcloud catalog service-marketplace.
Por ejemplo, el mandato siguiente crea una instancia de servicio denominada my-service-instance y utiliza el plan de servicio test- service-plan del servicio test-service en la ubicación eu-gb:
ibmcloud resource service-instance-create my-service-instance test-service test-service-plan eu-gb
Creación de nuevas instancias de recursos mediante la API
Puede crear mediante programación una nueva instancia de recurso llamando a la API del controlador de recursos, tal como se muestra en la siguiente solicitud de ejemplo. Para obtener información detallada sobre la API, consulte API de controlador de recursos.
curl -X POST \
https://resource-controller.cloud.ibm.com/v2/resource_instances \
-H 'Authorization: Bearer <>' \
-H 'Content-Type: application/json' \
-d '{
"name": "my-instance",
"target": "bluemix-global",
"resource_group": "5g9f447903254bb58972a2f3f5a4c711",
"resource_plan_id": "0be5ad401ae913d8ff665d92680664ed",
"tags": [
"my-tag"
]
}'
CreateResourceInstanceOptions createResourceInstanceOptions = new CreateResourceInstanceOptions.Builder()
.name(resourceInstanceName)
.target(targetRegion)
.resourceGroup(resourceGroup)
.resourcePlanId(resourcePlanId)
.build();
Response<ResourceInstance> response = service.createResourceInstance(createResourceInstanceOptions).execute();
ResourceInstance resourceInstance = response.getResult();
System.out.printf("createResourceInstance() response:\n%s\n", resourceInstance.toString());
const params = {
name: resourceInstanceName,
target: targetRegion,
resourceGroup: resourceGroupGuid,
resourcePlanId: resourcePlanId,
};
resourceControllerService.createResourceInstance(params)
.then(res => {
instanceGuid = res.result.guid;
console.log('createResourceInstance() response:\n' + JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
resource_instance = resource_controller_service.create_resource_instance(
name=resource_instance_name,
target=target_region,
resource_group=resource_group,
resource_plan_id=resource_plan_id
).get_result()
print('\ncreate_resource_instance() response:\n',
json.dumps(resource_instance, indent=2))
createResourceInstanceOptions := resourceControllerService.NewCreateResourceInstanceOptions(
resourceInstanceName,
targetRegion,
resourceGroup,
resourcePlanID,
)
resourceInstance, response, err := resourceControllerService.CreateResourceInstance(createResourceInstanceOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(resourceInstance, "", " ")
fmt.Printf("\nCreateResourceInstance() response:\n%s\n", string(b))
Instalación de software mediante la API
Solo puede instalar software a través de la consola o la CLI. Para ver los pasos, vaya a la interfaz de usuario o a las instrucciones de la CLI.
Creación de nuevas instancias de recursos utilizando Terraform
Antes de poder crear nuevas instancias de recursos mediante Terraform, asegúrese de haber completado lo siguiente:
-
Instale Terraform CLI y configure el complemento IBM Cloud Provider para Terraform. Para más información, consulte el tutorial de Introducción a Terraform en IBM Cloud®. El plug-in abstrae las API de IBM Cloud que se utilizan para completar esta tarea.
-
Cree un archivo de configuración de Terraform denominado
main.tf. En este archivo se definen los recursos utilizando el lenguaje de configuración HashiCorp. Para más información, consulte la documentación de Terraform.
Puede crear nuevas instancias de recursos utilizando Terraform.
-
Cree un argumento en su archivo
main.tf. El siguiente ejemplo crea una nueva instancia de recurso utilizando el recursoibm_resource_instance, dondenamees un nombre descriptivo exclusivo para identificar la instancia de recurso.data "ibm_resource_group" "group" { name = "test" } resource "ibm_resource_instance" "resource_instance" { name = "test" service = "cloud-object-storage" plan = "lite" location = "global" resource_group_id = data.ibm_resource_group.group.id tags = ["tag1", "tag2"] //User can increase timeouts timeouts { create = "15m" update = "15m" delete = "15m" } }Puede especificar
tagsasociadas con la instancia de recurso. Para obtener más información, consulte los detalles de referencia de los argumentos en la página Gestión de recursos de Terraform. -
Después de terminar de crear el archivo de configuración, inicializa Terraform CLI. Para más información, consulte Inicializar directorios de trabajo.
terraform init -
Aprovisione los recursos desde el archivo
main.tf. Para obtener más información, consulte Aprovisionamiento de infraestructura con Terraform.- Ejecute
terraform planpara generar un plan de ejecución Terraform para previsualizar las acciones propuestas.terraform plan - Ejecute
terraform applypara crear los recursos definidos en el plan.terraform apply
- Ejecute
Búsqueda de recursos
Puede buscar recursos desde cualquier lugar de la consola de IBM Cloud®. Escriba el recurso o la etiqueta en el campo de búsqueda de la barra de menús de la consola. También puede utilizar la interfaz de línea de mandatos (CLI) de IBM Cloud para buscar entre sus recursos. La CLI busca aplicaciones distribuidas e instancias de servicio en ubicaciones y centros de datos. La API de Global Search and Tagging - Búsqueda también admite la búsqueda de recursos.
Limitación de los resultados de la búsqueda
- Ver todos los resultados del catálogo
- Utilice esta opción para ver una búsqueda de catálogo filtrada. Los primeros cinco resultados se muestran por su nombre. Si desea un criterio de búsqueda más detallado para las entradas de catálogo, como por ejemplo buscar la descripción,
puede pulsar este enlace y obtener una vista de resultados de catálogo filtrada. Esta opción le ayuda a encontrar con mayor rapidez las ofertas que desea crear. Esta opción aparece si coincide con un resultado de catálogo. Este campo no
aparece si la consulta de búsqueda empieza por
tag:. - Casos de soporte de búsqueda
- Utilice esta opción para filtrar por los casos de soporte abierto en toda la plataforma, incluidos los recursos de la infraestructura. Esto aparece al final de la búsqueda si busca algo, incluso si busca por
tag:. - Buscar en la documentación de IBM Cloud
- Utilice esta opción para realizar una búsqueda filtrada de la documentación. Aparece al final de cualquier búsqueda, incluidas las búsquedas por
tag:.
Pulse la tecla de barra inclinada (/) para mover el cursor al campo de búsqueda.
Búsqueda con la CLI
También puede buscar en todos sus recursos utilizando la sintaxis de consulta de Lucene, con un solo comando utilizando la CLI IBM Cloud. Los atributos de recursos más utilizados que puede consultar y recuperar son:
name- El nombre del recurso definido por el usuario.
region- La ubicación geográfica donde se crea el recurso. Los valores permitidos son, por ejemplo,
us-south,us-east,au-syd,eu-gb,eu-deyjp-tok. service_name- El nombre del servicio tal y como aparece en el segmento
service-namedel CRN del recurso. Puede obtener los valores permitidos en la columna Nombre de la salida deibmcloud catalog service-marketplace. resource_group_id- El ID del grupo de recursos del recurso.
type- El tipo de recurso tal y como aparece en el segmento
resource-typedel CRN del recurso, si existe. Los valores dependen del servicio propietario. Algunos valores de ejemplo son:k8-clusterpara el serviciocontainers-kubernetes;k8-locationyk8-connectorpara el serviciosatellite;resource-grouppara el servicioresource-controller;vpc,volume,vpn,load-balancer,security-group, para el serviciois;workspacepara el servicioschematics. creation_date- La fecha en que se ha creado el recurso.
modification_date- La fecha de la última modificación del recurso.
tags- Las etiquetas adjuntas al recurso.
access_tags- Las etiquetas de gestión de acceso asociadas al recurso.
service_tags- Las etiquetas de servicio adjuntas al recurso.
tagReferences.tag.name- Las etiquetas que se han adjuntado a un recurso de la infraestructura clásica. Debe especificar el parámetro
-p classic-infrastructure. _objectType:- El tipo de objeto del recurso de la infraestructura clásica. Los valores permitidos son:
SoftLayer_Virtual_DedicatedHost,SoftLayer_Hardware,SoftLayer_Network_Application_Delivery_Controller,SoftLayer_Network_Subnet_IpAddress,SoftLayer_Network_Vlan,SoftLayer_Network_Vlan_Firewall,SoftLayer_Virtual_Guest. Requiere que especifique el parámetro-p classic-infrastructure.
tagReferences.tag.name y _objectType sólo son válidos cuando se utiliza la bandera -p classic-infrastructure.
-p classic-infrastructure para _objectType SoftLayer_Virtual_DedicatedHost, SoftLayer_Network_Vlan_Firewall, SoftLayer_Virtual_Guest y SoftLayer_Hardware (solo para los servidores
nativos de la infraestructura clásica) se ha dejado de utilizar porque ahora se pueden buscar como los demás recursos de infraestructura no clásica.
Búsqueda de recursos de infraestructura clásica
Para buscar recursos de infraestructura clásicos, la cadena debe ir entre comillas dobles para que se devuelva una coincidencia exacta de la cadena de consulta. Además, si introduce un término de búsqueda que incluye un guión (-) y no rodea la cadena con una comilla doble, la búsqueda no devolverá una coincidencia exacta. Los guiones dentro de la serie se utilizan para romper el término en varias series.
Ejemplos de búsquedas
Los ejemplos siguientes pueden ayudarle a buscar recursos de la cuenta. Cuando no se especifica el parámetro -p classic-infrastucture, la búsqueda abarca todos los recursos excepto los recursos de infraestructura clásica con _objectType SoftLayer_Network_Application_Delivery_Controller, SoftLayer_Network_Subnet_IpAddress o SoftLayer_Hardware (excluyendo los servidores nativos).
-
Para buscar todos los recursos llamados
ABC, especifique el mandato siguiente:ibmcloud resource search ‘name:ABC’ -
Para buscar todas las instancias de servicio de Message Hub, especifique el mandato siguiente:
ibmcloud resource search 'service_name:messagehub' -
Para buscar recursos que no están en la infraestructura clásica y se crearon entre el 16 de mayo de 2020 y el 20 de mayo de 2020, escriba el mandato siguiente:
ibmcloud resource search 'creation_date:["2020-05-16T00:00:00Z" TO "2020-05-20T00:00:00Z"]' -
Para buscar recursos que no sean una infraestructura clásica cuyo nombre empiece por "my", ordenados por tipo, especifique el mandato siguiente:
ibmcloud resource search 'name:my*' -s type -
Para buscar recursos que no sean infraestructuras clásicas y que hayan sido etiquetados con
my-tag, introduzca el siguiente comando :ibmcloud resource search 'tags:my-tag' -
Buscar todos los servidores virtuales de infraestructura clásica cuyo nombre de dominio completo sea
MyVM, escriba el mandato siguiente:ibmcloud resource search “doc.fullyQualifiedDomainName:MyVM AND service_name:virtual-server" -
Para buscar todos los recursos de infraestructura clásicos etiquetados con
my-tag, introduzca el siguiente comando :ibmcloud resource search 'tagReferences.tag.name:my-tag' -p classic-infrastructure -
Para buscar todas las infraestructuras clásicas de tipo
SoftLayer_Network_Vlan, introduzca el siguiente comando :ibmcloud resource search '_objectType:SoftLayer_Network_Vlan' -p classic-infrastructure
Buscar mediante la API
Para buscar recursos, llame a la API de Global Search and Tagging - Búsqueda. El ejemplo siguiente busca todos los recursos que tienen la etiqueta "project:myproject" adjunta.
Utilice SearchOptions.Builder para crear un objeto SearchOptions que contenga los valores de parámetro para el método search.
Cree una instancia de la estructura SearchOptions y establezca los campos para proporcionar valores de parámetro para el método Search.
curl -X POST -H "Authorization: {iam_token}" -H "Accept: application/json" -H "Content-Type: application/json" -d '{"query": "tags:project\\:myproject OR access_tags:project\\:myproject", "fields": ["*"]}' "api.global-search-tagging.cloud.ibm.com/v3/resources/search"
SearchOptions searchOptions = new SearchOptions.Builder()
.query("GST-sdk-*")
.fields(new java.util.ArrayList<String>(java.util.Arrays.asList("*")))
.searchCursor(searchCursor)
.build();
Response<ScanResult> response = service.search(searchOptions).execute();
ScanResult scanResult = response.getResult();
System.out.println(scanResult);
const params = {
query: 'GST-sdk-*',
fields: ['*'],
searchCursor: searchCursor,
};
globalSearchService.search(params)
.then(res => {
console.log(JSON.stringify(res.result, null, 2));
})
.catch(err => {
console.warn(err)
});
response = global_search_service.search(query='GST-sdk-*',
fields=['*'])
scan_result = response.get_result()
print(json.dumps(scan_result, indent=2))
searchOptions := globalSearchService.NewSearchOptions()
searchOptions.SetLimit(10)
searchOptions.SetQuery("GST-sdk-*")
searchOptions.SetFields([]string{"*"})
scanResult, response, err := globalSearchService.Search(searchOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(scanResult, "", " ")
fmt.Println(string(b))
Supresión de recursos
Cuando ya no necesite un recurso de su cuenta, o si un usuario de la cuenta ha creado un recurso que no desea utilizar, puede suprimir la instancia de la cuenta.
Supresión de recursos en la consola
Para suprimir un recurso de la consola, siga estos pasos:
- En el panel de control, pulse Ver recursos en el widget Resumen de recursos.
- Amplíe las secciones para localizar la instancia de servicio que desea suprimir.
- Pulse el icono Acciones
> Suprimir para la fila.
Supresión de recursos mediante la CLI
Puede suprimir un recurso mediante la interfaz de línea de mandatos de IBM Cloud®. Para ver información detallada sobre cómo gestionar recursos de IBM Cloud, consulte Cómo trabajar con recursos y grupos de recursos.
-
Inicie sesión y seleccione la cuenta.
ibmcloud login -
Suprima una instancia de servicio con el mandato
ibmcloud resource service-instance-delete, dondeNAMEes el nombre de la instancia de servicio, exclusivo con ID, eIDes el ID de la instancia de servicio, exclusivo con NAME.ibmcloud resource service-instance-delete (NAME|ID) [-f, --force] [--recursive]Por ejemplo, el siguiente mandato suprime una instancia de servicio de recursos denominada
my-service-instance:ibmcloud resource service-instance-delete my-service-instance
Supresión de instancias de recursos mediante la API
Puede suprimir mediante programación una instancia de recurso llamando a la API del controlador de recursos, tal como se muestra en la siguiente solicitud de ejemplo. Para obtener información detallada sobre la API, consulte API de controlador de recursos.
curl -X DELETE \
https://resource-controller.cloud.ibm.com/v2/resource_instances/8d7af921-b136-4078-9666-081bd8470d94 \
-H 'Authorization: Bearer <>'
DeleteResourceInstanceOptions deleteResourceInstanceOptions = new DeleteResourceInstanceOptions.Builder()
.id(instanceGuid)
.recursive(false)
.build();
Response<Void> response = service.deleteResourceInstance(deleteResourceInstanceOptions).execute();
System.out.printf("deleteResourceInstance() response status code: %d\n", response.getStatusCode());
const params = {
id: instanceGuid,
recursive: false,
};
resourceControllerService.deleteResourceInstance(params)
.then(res => {
console.log('deleteResourceInstance() response status code: ' + res.status);
})
.catch(err => {
console.warn(err)
});
response = resource_controller_service.delete_resource_instance(
id=instance_guid,
recursive=False
)
print('\ndelete_resource_instance() response status code: ',
response.get_status_code())
deleteResourceInstanceOptions := resourceControllerService.NewDeleteResourceInstanceOptions(
instanceGUID,
)
deleteResourceInstanceOptions.SetRecursive(false)
response, err := resourceControllerService.DeleteResourceInstance(deleteResourceInstanceOptions)
if err != nil {
panic(err)
}
fmt.Printf("\nDeleteResourceInstance() response status code: %d\n", response.StatusCode)
Supresión de instancias de recursos utilizando Terraform
Siga estos pasos para eliminar instancias de recursos mediante Terraform.
-
Puede suprimir una instancia de recurso eliminando el siguiente bloque de código del archivo terraform. Debe haber creado la página
resource_instanceutilizando el archivo terraform.data "ibm_resource_group" "group" { name = "test" } resource "ibm_resource_instance" "resource_instance" { name = "test" service = "cloud-object-storage" plan = "lite" location = "global" resource_group_id = data.ibm_resource_group.group.id tags = ["tag1", "tag2"] //User can increase timeouts timeouts { create = "15m" update = "15m" delete = "15m" } }Para obtener más información, consulte los detalles de referencia de los argumentos en la página Gestión de recursos de Terraform.
-
Después de terminar de crear el archivo de configuración, inicializa Terraform CLI. Para más información, consulte Inicializar directorios de trabajo.
terraform init -
Aprovisione los recursos desde el archivo
main.tf. Para obtener más información, consulte Aprovisionamiento de infraestructura con Terraform.-
Ejecute
terraform planpara generar un plan de ejecución Terraform para previsualizar las acciones propuestas.terraform plan -
Ejecute
terraform applypara crear los recursos definidos en el plan.terraform apply
-
También puede eliminar una instancia de recurso ejecutando el siguiente comando terraform destroy:
terraform destroy -target RESOURCE_TYPE.NAME -target RESOURCE_TYPE2.NAME