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:

  1. En el panel de control, pulse Ver recursos en el widget Resumen de recursos.
  2. 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.

  1. Inicie sesión y seleccione la cuenta.
    ibmcloud login
    
  2. 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.

  1. Cree un argumento en su archivo main.tf. El siguiente ejemplo crea una nueva instancia de recurso utilizando el recurso ibm_resource_instance, donde name es 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 tags asociadas 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.

  2. 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
    
  3. Aprovisione los recursos desde el archivo main.tf. Para obtener más información, consulte Aprovisionamiento de infraestructura con Terraform.

    1. Ejecute terraform plan para generar un plan de ejecución Terraform para previsualizar las acciones propuestas.
      terraform plan
      
    2. Ejecute terraform apply para crear los recursos definidos en el plan.
      terraform apply
      

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-de y jp-tok.
service_name
El nombre del servicio tal y como aparece en el segmento service-name del CRN del recurso. Puede obtener los valores permitidos en la columna Nombre de la salida de ibmcloud 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-type del CRN del recurso, si existe. Los valores dependen del servicio propietario. Algunos valores de ejemplo son: k8-cluster para el servicio containers-kubernetes ; k8-location y k8-connector para el servicio satellite ; resource-group para el servicio resource-controller ; vpc, volume, vpn, load-balancer, security-group, para el servicio is ; workspace para el servicio schematics.
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:

  1. En el panel de control, pulse Ver recursos en el widget Resumen de recursos.
  2. Amplíe las secciones para localizar la instancia de servicio que desea suprimir.
  3. Pulse el icono Acciones 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.

  1. Inicie sesión y seleccione la cuenta.

    ibmcloud login
    
  2. Suprima una instancia de servicio con el mandato ibmcloud resource service-instance-delete, donde NAME es el nombre de la instancia de servicio, exclusivo con ID, e ID es 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.

  1. Puede suprimir una instancia de recurso eliminando el siguiente bloque de código del archivo terraform. Debe haber creado la página resource_instance utilizando 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.

  2. 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
    
  3. Aprovisione los recursos desde el archivo main.tf. Para obtener más información, consulte Aprovisionamiento de infraestructura con Terraform.

    1. Ejecute terraform plan para generar un plan de ejecución Terraform para previsualizar las acciones propuestas.

      terraform plan
      
    2. Ejecute terraform apply para 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