Gerenciando Recursos

Um recurso Uma instância física ou lógica que pode ser provisionada ou reservada.Exemplos de recursos podem incluir armazenamento, processadores, memória, bancos de dados, clusters e VMs. é qualquer coisa que você possa criar no catálogo e que seja gerenciado por um grupo de recursos e esteja contido nele. É possível criar e gerenciar recursos acessando a sua lista de recursos no console do IBM Cloud® ou usando a interface da linha de comandos (CLI).

Os serviços que são gerenciados usando o controle de acesso do IBM Cloud Identity and Access Management (IAM) e pertencem a um grupo de recursos têm vários benefícios. Como os grupos de recursos não têm escopo por local, você pode criar aplicativos e serviços de diferentes locais no mesmo grupo de recursos. Também é possível usar o controle de acesso de baixa granularidade até uma instância individual dentro de um grupo de recursos.

Acesso necessário para criação de recursos

Para que os usuários em sua conta sejam capazes de criar recursos do catálogo e designá-los a um grupo de recursos, eles deverão ter duas políticas de acesso designadas:

  • Uma política com função de visualizador ou superior no próprio grupo de recursos
  • Uma política com função de editor ou superior no serviço na conta

Criando recursos no console

Use as etapas a seguir para criar um recurso no console:

  1. Em seu painel, clique em Visualizar recursos dentro do widget de resumo Recursos.
  2. Clique em Criar recurso. A partir daqui, você é direcionado para o catálogo. Você pode pesquisar os produtos ou filtrar com base em uma categoria específica, provedor, plano de preços, tipo de conformidade ou tipo de versão. Exemplos de recursos incluem aplicativos, instâncias de serviço, clusters de contêiner, volumes de armazenamento, servidores virtuais e software.

Depois de criar o recurso, ele é exibido em sua lista de recursos na página Lista de recursos.

Criando recursos usando a CLI

É possível criar um recurso usando a interface da linha de comandos do IBM Cloud®. Para obter informações detalhadas sobre como trabalhar com recursos, consulte Trabalhando com recursos e grupos de recursos.

  1. Efetue login e selecione a conta.
    ibmcloud login
    
  2. Crie uma organização executando o comando ibmcloud resource service-instance-create.

Neste comando, NAME é o nome da instância de serviço, SERVICE_NAME or SERVICE_ID é o nome ou ID do serviço, SERVICE_PLAN_NAME or SERVICE_PLAN_ID é o nome ou ID do plano de serviço e LOCATION é o local ou ambiente de destino para criar a instância de serviço.

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 serviços, use o comando ibmcloud catalog service-marketplace.

Por exemplo, o comando a seguir cria uma instância de serviço denominada my-service-instance que usa o plano de serviços test- service-plan do serviço test-service no local eu-gb:

ibmcloud resource service-instance-create my-service-instance test-service test-service-plan eu-gb

Criando novas instâncias de recurso por meio da API

É possível criar programaticamente uma nova instância de recurso chamando a API do controlador de recursos, conforme mostrado na solicitação de amostra a seguir. Para obter informações detalhadas sobre a API, consulte API do 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))

Instalando o software usando a API

É possível instalar o software apenas por meio do console ou da CLI. Para ver as etapas, alterne para as instruções da IU ou da CLI.

Criando novas instâncias de recurso usando o Terraform

Antes de criar novas instâncias de recursos usando o Terraform, certifique-se de ter concluído o seguinte:

  • Instale a CLI do Terraform e configure o plug-in do provedor IBM Cloud para o Terraform. Para obter mais informações, consulte o tutorial Getting started with Terraform em IBM Cloud®. O plug-in abstrai as APIs do IBM Cloud que são usadas para concluir esta tarefa.

  • Crie um arquivo de configuração do Terraform que seja denominado main.tf. Nesse arquivo, você define os recursos usando a HashiCorp Configuration Language. Para obter mais informações, consulte a documentação do Terraform.

É possível criar novas instâncias de recurso usando o Terraform.

  1. Crie um argumento em seu arquivo main.tf. O exemplo a seguir cria uma nova instância de recurso usando o recurso ibm_resource_instance, em que name é um nome exclusivo e descritivo para identificar a instância 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"
     }
    }
    

    É possível especificar tags associadas à instância de recurso. Para obter mais informações, consulte os detalhes de referência do argumento na página Terraform Resource Management.

  2. Depois de concluir a criação do arquivo de configuração, inicialize a CLI do Terraform. Para obter mais informações, consulte Inicialização de diretórios de trabalho.

    terraform init
    
  3. Provisione os recursos do arquivo main.tf. Para obter mais informações, consulte Provisionamento de infraestrutura com o Terraform.

    1. Execute terraform plan para gerar um plano de execução do Terraform para visualizar as ações propostas.
      terraform plan
      
    2. Execute o site terraform apply para criar os recursos definidos no plano.
      terraform apply
      

Procurando Recursos

É possível procurar recursos de qualquer lugar no console do IBM Cloud®. Insira o recurso ou a tag no campo de procura na barra de menus do console. Também é possível usar a interface da linha de comandos (CLI) do IBM Cloud para procurar em seus recursos. A CLI procura por aplicativos distribuídos e instâncias de serviço em locais e data centers. A API do Global Search and Tagging - Search suporta a procura por recursos também.

Refinando seus resultados da procura

Visualizar todos os resultados de catálogos
Use essa opção para visualizar uma procura de catálogo filtrada. Os primeiros cinco resultados são exibidos pelo nome. Se você desejar obter um critério de procura mais detalhado para entradas no catálogo, como procurar a descrição, será possível clicar nesse link e obter uma visualização de resultados do catálogo filtrados. Essa opção ajuda a localizar as ofertas que você deseja criar mais rapidamente. Isso aparecerá se houver correspondência com um resultado do catálogo. Esse campo não aparecerá se a consulta de procura iniciar com tag:.
Procurar casos de suporte
Use essa opção para filtrar por casos de suporte abertos na plataforma, incluindo recursos de infraestrutura. Isso é mostrado no final da procura se você procurar qualquer coisa, inclusive se você procurar por tag:.
Procurar em Docs IBM Cloud
Use essa opção para obter uma procura filtrada da documentação. Isso aparece no final de qualquer procura, incluindo se você procurar por tag:.

Pressione a tecla de barra (/) para navegar o cursor para o campo de procura.

Procurando com a CLI

Você também pode pesquisar em todos os seus recursos usando a sintaxe de consulta do Lucene, com um único comando, usando a CLI do IBM Cloud. Os atributos de recursos mais comumente usados que você pode consultar e recuperar são:

name
O nome definido pelo usuário do recurso.
region
A localização geográfica onde o recurso é criado. Os valores permitidos são, por exemplo, us-south, us-east, au-syd, eu-gb, eu-de e jp-tok.
service_name
O nome do serviço, conforme aparece no segmento service-name do CRN do recurso. Você pode obter os valores permitidos na coluna Name da saída do site ibmcloud catalog service-marketplace.
resource_group_id
A ID do grupo de recursos do recurso.
type
O tipo de recurso como aparece no segmento resource-type do CRN do recurso, se houver. Os valores dependem do serviço proprietário. Os valores de exemplo são: k8-cluster para o serviço containers-kubernetes ; k8-location e k8-connector para o serviço satellite ; resource-group para o serviço resource-controller ; vpc, volume, vpn, load-balancer, security-group, para o serviço is ; workspace para o serviço schematics.
creation_date
A data na qual o recurso é criado.
modification_date
A data da última modificação do recurso.
tags
As tags anexadas ao recurso.
access_tags
As tags de gerenciamento de acesso anexadas ao recurso.
service_tags
As tags de serviço anexadas ao recurso.
tagReferences.tag.name
As tags que foram anexadas a um recurso de infraestrutura clássica. Requer que você especifique o parâmetro -p classic-infrastructure.
_objectType:
O tipo de objeto do recurso de infraestrutura clássica. Os valores permitidos são: SoftLayer_Virtual_DedicatedHost, SoftLayer_Hardware, SoftLayer_Network_Application_Delivery_Controller, SoftLayer_Network_Subnet_IpAddress, SoftLayer_Network_Vlan, SoftLayer_Network_Vlan_Firewall, SoftLayer_Virtual_Guest. Requer que você especifique o parâmetro -p classic-infrastructure.

tagReferences.tag.name e _objectType são válidos somente quando se usa o sinalizador -p classic-infrastructure.

O uso de -p classic-infrastructure para _objectType SoftLayer_Virtual_DedicatedHost, SoftLayer_Network_Vlan_Firewall, SoftLayer_Virtual_Guest e SoftLayer_Hardware (para os servidores bare metal de infraestrutura clássica apenas) foi descontinuado, pois agora eles são pesquisáveis como todos os outros recursos de infraestrutura não clássica.

Procurando por recursos de infraestrutura clássica

Para pesquisar recursos de infraestrutura clássica, a cadeia de caracteres deve estar entre aspas duplas para que uma correspondência exata da cadeia de caracteres de consulta seja retornada. Além disso, se você digitar um termo de pesquisa que inclua um hífen (-) e não colocar aspas duplas ao redor da cadeia de caracteres, a pesquisa não retornará uma correspondência exata. Os hifens dentro da string são usados para quebrar o termo em várias strings.

Exemplos de procura

Os exemplos a seguir podem ajudar a procurar recursos de conta. Quando o parâmetro -p classic-infrastucture não é especificado, a procura abrange todos os recursos, exceto os recursos de infraestrutura clássica _objectType SoftLayer_Network_Application_Delivery_Controller, SoftLayer_Network_Subnet_IpAddress ou SoftLayer_Hardware (excluindo os servidores bare metal).

  • Para procurar todos os seus recursos denominados ABC, insira o comando a seguir:

    ibmcloud resource search ‘name:ABC’
    
  • Para procurar todas as instâncias de serviço do Message Hub, insira o comando a seguir:

    ibmcloud resource search 'service_name:messagehub'
    
  • Para procurar recursos que não são infraestrutura clássica que foram criados entre 16 de maio de 2020 e 20 de maio de 2020, insira o comando a seguir:

    ibmcloud resource search 'creation_date:["2020-05-16T00:00:00Z" TO "2020-05-20T00:00:00Z"]'
    
  • Para procurar recursos que não são de uma infraestrutura clássica cujo nome inicie com "my", ordenado por tipo, insira o comando a seguir:

    ibmcloud resource search 'name:my*' -s type
    
  • Para pesquisar recursos que não sejam de infraestrutura clássica e que tenham sido marcados com my-tag, digite o seguinte comando:

    ibmcloud resource search 'tags:my-tag'
    
  • Para procurar todos os servidores virtuais de infraestrutura clássica cujo nome completo do domínio seja MyVM, insira o comando a seguir:

    ibmcloud resource search “doc.fullyQualifiedDomainName:MyVM AND service_name:virtual-server"
    
  • Para pesquisar todos os recursos de infraestrutura clássica que foram marcados com my-tag, digite o seguinte comando:

    ibmcloud resource search 'tagReferences.tag.name:my-tag' -p classic-infrastructure
    
  • Para pesquisar todas as infraestruturas clássicas do tipo SoftLayer_Network_Vlan, digite o seguinte comando:

    ibmcloud resource search '_objectType:SoftLayer_Network_Vlan' -p classic-infrastructure
    

Procurar usando a API

Para procurar recursos, chame A API do Global Search and Tagging - Search. O exemplo a seguir procura todos os recursos com a tag "project:myproject" anexada.

Use o SearchOptions.Builder para criar um objeto SearchOptions que contenha os valores de parâmetro para o método search.

Instancie a estrutura SearchOptions e configure os campos para fornecer valores de parâmetro para o 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))

Excluindo recursos

Se um recurso não for mais necessário em sua conta ou um usuário dela tiver criado um recurso que você não deseja que ele use, será possível excluir a instância de sua conta.

Excluindo recursos no console

É possível excluir um recurso no console usando as etapas a seguir:

  1. Em seu painel, clique em Visualizar recursos no widget Resumo de recursos.
  2. Expanda a seções para localizar a instância de serviço que deseja excluir.
  3. Clique no ícone Ações Ícone de ações > Excluir para a linha.

Excluindo recursos usando a CLI

É possível excluir um recurso usando a interface da linha de comandos do IBM Cloud®. Para obter informações detalhadas sobre como gerenciar os recursos da IBM Cloud, consulte Trabalhando com recursos e grupos de recursos.

  1. Efetue login e selecione a conta.

    ibmcloud login
    
  2. Exclua uma instância de serviço executando o comando ibmcloud resource service-instance-delete, em que NAME é o nome da instância de serviço, exclusivo com o ID, e ID é o ID da instância de serviço, exclusivo com NAME.

    ibmcloud resource service-instance-delete (NAME|ID) [-f, --force] [--recursive]
    

    Por exemplo, o comando a seguir exclui uma instância de serviço de recurso denominada my-service-instance:

    ibmcloud resource service-instance-delete my-service-instance
    

Excluindo instâncias de recurso por meio da API

É possível excluir programaticamente uma instância de recurso chamando a API do controlador de recursos, conforme mostrado na solicitação de amostra a seguir. Para obter informações detalhadas sobre a API, consulte API do 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)

Excluindo instâncias de recurso usando o Terraform

Use as etapas a seguir para excluir instâncias de recursos usando o Terraform.

  1. É possível excluir uma instância de recurso, removendo o bloco de código a seguir do seu arquivo do Terraform. Você deve ter criado o site resource_instance usando o arquivo 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 obter mais informações, consulte os detalhes de referência do argumento na página Terraform Resource Management.

  2. Depois de concluir a criação do arquivo de configuração, inicialize a CLI do Terraform. Para obter mais informações, consulte Inicialização de diretórios de trabalho.

    terraform init
    
  3. Provisione os recursos do arquivo main.tf. Para obter mais informações, consulte Provisionamento de infraestrutura com o Terraform.

    1. Execute terraform plan para gerar um plano de execução do Terraform para visualizar as ações propostas.

      terraform plan
      
    2. Execute o site terraform apply para criar os recursos definidos no plano.

      terraform apply
      

Você também pode excluir uma instância de recurso executando o seguinte comando terraform destroy:

terraform destroy -target RESOURCE_TYPE.NAME -target RESOURCE_TYPE2.NAME