Gestion des ressources
Une ressource Une instance physique ou logique qui peut être provisionnée ou réservée.Les ressources peuvent inclure, par exemple, le stockage, les processeurs, la mémoire, les bases de données, les clusters et les machines virtuelles. est tout ce que vous pouvez créer à partir du catalogue et qui est géré par et contenu dans un groupe de ressources. Vous pouvez créer et gérer des ressources en accédant à votre liste des ressources dans la console IBM Cloud® ou en utilisant l'interface de ligne de commande (CLI).
Les services gérés à l'aide de IBM Cloud Identity and Access Management(IAM)contrôle d'accès et appartenant à un groupe de ressources présentent plusieurs avantages. Les groupes de ressources n'étant pas délimités par l'emplacement, vous pouvez créer des applications et des services à partir de différents emplacements dans le même groupe de ressources. Vous pouvez également utiliser le contrôle d'accès à granularité fine jusqu'au niveau d'une instance individuelle dans un groupe de ressources.
Accès requis pour la création de ressources
Pour pouvoir créer des ressources à partir du catalogue et les affecter à un groupe de ressources, les utilisateurs de votre compte doivent disposer de deux règle d'accès :
- Une règle avec rôle Afficheur ou supérieur appliquée au groupe de ressources lui-même
- Une règle avec rôle Editeur ou supérieur appliquée au service du compte
Création de ressources dans la console
Utilisez la procédure suivante pour créer une ressource dans la console :
- A partir du tableau de bord, cliquez sur Afficher les ressources dans le widget récapitulant les ressources.
- Cliquez sur Créer une ressource. Le catalogue s'affiche. Vous pouvez rechercher les produits ou les filtrer en fonction d'une catégorie spécifique, d'un fournisseur, d'un plan tarifaire, d'un type de conformité ou d'un type de version. Les applications, les instances de service, les clusters de conteneurs, les volumes de stockage, les serveurs virtuels et les logiciels sont des exemples de ressource.
La ressource créée s'affiche dans la liste des ressources de la page Liste des ressources.
Création de ressources à l'aide de l'interface de ligne de commande
Vous pouvez créer une ressource à l'aide de l'interface de ligne de commande IBM Cloud®. Pour plus d'informations sur l'utilisation des ressources, voir Utilisation de ressources et de groupes de ressources.
- Connectez-vous et sélectionnez le compte.
ibmcloud login - Créez une organisation en exécutant la commande
ibmcloud resource service-instance-create.
Dans cette commande, NAME est le nom de l'instance de service, SERVICE_NAME or SERVICE_ID est le nom ou l'ID du service, SERVICE_PLAN_NAME or SERVICE_PLAN_ID est le nom ou l'ID du plan de service et LOCATION est l'environnement ou l'emplacement cible où créer l'instance de service.
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]
Pour répertorier les services, utilisez la commande ibmcloud catalog service-marketplace.
Par exemple, la commande suivante crée une instance de service nommée my-service-instance et utilise le plan de service test- service-plan du service test-service à l'emplacement eu-gb:
ibmcloud resource service-instance-create my-service-instance test-service test-service-plan eu-gb
Création de nouvelles instances de ressource à l'aide de l'API
Vous pouvez créer une nouvelle instance de ressource à l'aide d'un programme en appelant l'API du contrôleur de ressources, comme indiqué dans l'exemple de demande suivant. Pour plus d'informations sur l'API, voir l'API du contrôleur de ressources.
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))
Installation du logiciel à l'aide de l'API
Vous ne pouvez installer les logiciels que par le biais de la console ou de l'interface de ligne de commande. Pour afficher les étapes, passez aux instructions de l'interface utilisateur ou de l'interface de ligne de commande.
Création d'instances de ressource à l'aide de Terraform
Avant de pouvoir créer de nouvelles instances de ressources à l'aide de Terraform, assurez-vous d'avoir effectué les opérations suivantes :
-
Installez le CLI Terraform et configurez le plug-in IBM Cloud Provider pour Terraform. Pour plus d'informations, voir le tutoriel Getting started with Terraform sur IBM Cloud®. Ce plug-in résume les API IBM Cloud utilisées pour effectuer cette tâche.
-
Créez un fichier de configuration Terraform nommé
main.tf. Dans ce fichier, vous définissez les ressources en utilisant le langage de configuration HashiCorp. Pour plus d'informations, voir la documentation de Terraform.
Vous pouvez créer des instances de ressource à l'aide de Terraform.
-
Créez un argument dans votre fichier
main.tf. L'exemple ci-après crée une instance de ressource à l'aide de la ressourceibm_resource_instance,namereprésentant un nom descriptif unique permettant d'identifier l'instance de ressource.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" } }Vous pouvez spécifier des étiquettes (
tags) associées à l'instance de ressource. Pour plus d'informations, voir les détails de la référence des arguments sur la page Terraform Resource Management. -
Une fois que vous avez fini de construire votre fichier de configuration, initialisez le CLI Terraform. Pour plus d'informations, voir Initialisation des répertoires de travail.
terraform init -
Fournir les ressources à partir du fichier
main.tf. Pour plus d'informations, voir Provisionnement de l'infrastructure avec Terraform.- Exécutez
terraform planpour générer un plan d'exécution Terraform afin de prévisualiser les actions proposées.terraform plan - Exécutez le site
terraform applypour créer les ressources définies dans le plan.terraform apply
- Exécutez
Recherche de ressources
Vous pouvez rechercher des ressources à tout emplacement de la console IBM Cloud®. Entrez la ressource ou l'étiquette dans la zone de recherche de la barre de menus de la console. Vous pouvez également utiliser l'interface de ligne de commande (CLI) IBM Cloud pour effectuer une recherche dans vos ressources. L'interface de ligne de commande recherche des instances de service et des applications réparties dans différents emplacements et centres de données. L'API Global Search and Tagging - Search prend également en charge la recherche de ressources.
Affinage de vos résultats de recherche
- Afficher tous les résultats de catalogue
- Cette option permet d'afficher une recherche de catalogue filtrée. Les cinq premiers résultats s'affichent par nom. Si vous souhaitez avoir un critère de recherche plus détaillé pour les entrées de catalogue, comme la recherche de la description,
vous pouvez cliquer sur ce lien et obtenir une vue des résultats de catalogue filtrés. Cette option vous permet de trouver plus rapidement les offres que vous souhaitez créer. Elle s'affiche si elle correspond à un résultat de catalogue.
Cette zone ne s'affiche pas si votre requête de recherche commence par
tag:. - Rechercher dans les cas de support
- Cette option permet de filtrer en fonction de vos cas de support ouverts au sein de la plateforme, notamment les ressources d'infrastructure. Elle s'affiche à la fin de la recherche, notamment si vous effectuez une recherche en utilisant
tag:. - Rechercher dans la documentation IBM Cloud
- Cette option permet d'obtenir une recherche filtrée de la documentation. Elle s'affiche à la fin de la recherche, notamment si vous effectuez une recherche par étiquette (
tag:).
Appuyez sur la touche Barre oblique (/) pour positionner votre curseur dans la zone de recherche.
Recherche avec l'interface de ligne de commande
Vous pouvez également effectuer des recherches dans toutes vos ressources en utilisant la syntaxe de requête Lucene, avec une seule commande en utilisant le CLI IBM Cloud. Les attributs de ressources les plus couramment utilisés que vous pouvez interroger et récupérer sont les suivants :
name- Nom défini par l'utilisateur de la ressource.
region- Lieu géographique où la ressource est créée. Les valeurs autorisées sont, par exemple,
us-south,us-east,au-syd,eu-gb,eu-deetjp-tok. service_name- Le nom du service tel qu'il apparaît dans le segment
service-namedu CRN de la ressource. Vous pouvez obtenir les valeurs autorisées dans la colonne Nom de la sortie deibmcloud catalog service-marketplace. resource_group_id- L'identifiant du groupe de ressources de la ressource.
type- Le type de ressource tel qu'il apparaît dans le segment
resource-typedu CRN de la ressource, s'il existe. Les valeurs dépendent du service propriétaire. Exemples de valeurs :k8-clusterpour le servicecontainers-kubernetes;k8-locationetk8-connectorpour le servicesatellite;resource-grouppour le serviceresource-controller;vpc,volume,vpn,load-balancer,security-group, pour le serviceis;workspacepour le serviceschematics. creation_date- Date de création de la ressource.
modification_date- Date de dernière modification de la ressource.
tags- Les balises attachées à la ressource.
access_tags- Les étiquettes de gestion de l'accès attachées à la ressource.
service_tags- Les étiquettes de service attachées à la ressource.
tagReferences.tag.name- Etiquettes qui ont été associées à la ressource d'infrastructure classique. Nécessite que vous indiquiez le paramètre
-p classic-infrastructure. _objectType:- Type d'objet de la ressource d'infrastructure classique. Les valeurs autorisées sont :
SoftLayer_Virtual_DedicatedHost,SoftLayer_Hardware,SoftLayer_Network_Application_Delivery_Controller,SoftLayer_Network_Subnet_IpAddress,SoftLayer_Network_Vlan,SoftLayer_Network_Vlan_Firewall,SoftLayer_Virtual_Guest. Vous devez indiquer le paramètre-p classic-infrastructure.
tagReferences.tag.name et _objectType ne sont valables que si l'on utilise l'indicateur -p classic-infrastructure.
L'utilisation de -p classic-infrastructure for _objectType SoftLayer_Virtual_DedicatedHost, SoftLayer_Network_Vlan_Firewall, SoftLayer_Virtual_Guest et SoftLayer_Hardware (pour
les serveurs bare metal d'infrastructure classique uniquement) est obsolète puisque ces ressources peuvent désormais être recherchées comme toutes les autres ressources d'infrastructure non classique.
Recherche de ressources d'infrastructure classique
Pour rechercher des ressources d'infrastructure classiques, la chaîne de caractères doit être placée entre guillemets doubles afin d'obtenir une correspondance exacte avec la chaîne de caractères demandée. En outre, si vous saisissez un terme de recherche comprenant un trait d'union (-) et que vous n'entourez pas la chaîne d'un guillemet double, la recherche ne renverra pas une correspondance exacte. Les traits d'union au sein de la chaîne servent à scinder le terme en plusieurs chaînes.
Exemples de recherche
Les exemples suivants peuvent vous aider lors de la recherche de ressources de compte. Lorsque le paramètre -p classic-infrastucture n'est pas spécifié, la recherche couvre toutes les ressources à l'exception des ressources d'infrastructure
classique avec _objectType SoftLayer_Network_Application_Delivery_Controller, SoftLayer_Network_Subnet_IpAddress ou SoftLayer_Hardware (sauf serveurs bare metal).
-
Pour rechercher toutes vos ressources nommées
ABC, entrez la commande suivante :ibmcloud resource search ‘name:ABC’ -
Pour rechercher toutes les instances de service du concentrateur de messages, entrez la commande suivante :
ibmcloud resource search 'service_name:messagehub' -
Pour rechercher des ressources qui ne font pas partie de l'infrastructure classique et qui ont été créées entre le 16 et le 20 mai 2020, entrez la commande suivante :
ibmcloud resource search 'creation_date:["2020-05-16T00:00:00Z" TO "2020-05-20T00:00:00Z"]' -
Pour rechercher des ressources qui ne font pas partie de l'infrastructure classique et dont le nom commence par "my", classées par type, entrez la commande suivante :
ibmcloud resource search 'name:my*' -s type -
Pour rechercher des ressources qui ne sont pas des infrastructures classiques et qui ont été étiquetées avec
my-tag, entrez la commande suivante :ibmcloud resource search 'tags:my-tag' -
Pour rechercher tous les serveurs virtuels d'infrastructure classique dont le nom de domaine complet est
MyVM, entrez la commande suivante :ibmcloud resource search “doc.fullyQualifiedDomainName:MyVM AND service_name:virtual-server" -
Pour rechercher toutes les ressources de l'infrastructure classique qui ont été étiquetées avec
my-tag, entrez la commande suivante :ibmcloud resource search 'tagReferences.tag.name:my-tag' -p classic-infrastructure -
Pour rechercher toutes les infrastructures classiques de type
SoftLayer_Network_Vlan, entrez la commande suivante :ibmcloud resource search '_objectType:SoftLayer_Network_Vlan' -p classic-infrastructure
Rechercher à l'aide de l'API
Pour rechercher des ressources, appelez l'API Global Search and Tagging - Search. L'exemple suivant recherche toutes les ressources associées à l'étiquette "project:myproject".
Utilisez SearchOptions.Builder pour créer un objet SearchOptions qui contient les valeurs de paramètre de la méthode search.
Instanciez la structure SearchOptions et définissez les zones pour fournir des valeurs de paramètres pour la méthode 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))
Suppression de ressources
Lorsque vous n'avez plus besoin d'une ressource dans votre compte ou si un utilisateur de vote compte a créé une ressource et vous ne souhaitez pas qu'il l'utilise, vous pouvez supprimer l'instance de votre compte.
Suppression de ressources dans la console
Vous pouvez supprimer une ressource dans la console en procédant comme suit :
- A partir du tableau de bord, cliquez sur Afficher les ressources dans le widget récapitulant les ressources.
- Développez les sections et localisez l'instance de service que vous souhaitez supprimer.
- Cliquez sur l'icône Actions
> Supprimer pour la ligne.
Suppression de ressources à l'aide de l'interface de ligne de commande
Vous pouvez supprimer une ressource à l'aide de l'interface de ligne de commande IBM Cloud®. Pour plus d'informations sur la gestion des ressources IBM Cloud, voir Utilisation de ressources et de groupes de ressources.
-
Connectez-vous et sélectionnez le compte.
ibmcloud login -
Supprimez une instance de service en exécutant la commande
ibmcloud resource service-instance-delete, oùNAMEest le nom de l'instance de service, ID exclus etIDl'ID de l'instance de service, NAME exclus.ibmcloud resource service-instance-delete (NAME|ID) [-f, --force] [--recursive]Par exemple, la commande suivante supprime une instance de service de ressource nommée
my-service-instance:ibmcloud resource service-instance-delete my-service-instance
Suppression d'instances de ressource à l'aide de l'API
Vous pouvez supprimer une instance de ressource à l'aide d'un programme en appelant l'API du contrôleur de ressources, comme indiqué dans l'exemple de demande suivant. Pour plus d'informations sur l'API, voir l'API du contrôleur de ressources.
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)
Suppression d'instances de ressource à l'aide de Terraform
Suivez les étapes suivantes pour supprimer des instances de ressources à l'aide de Terraform.
-
Vous pouvez supprimer une instance de ressource en supprimant le bloc de code ci-après de votre fichier terraform. Vous devez avoir créé le site
resource_instanceà l'aide du fichier 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" } }Pour plus d'informations, voir les détails de la référence des arguments sur la page Terraform Resource Management.
-
Une fois que vous avez fini de construire votre fichier de configuration, initialisez le CLI Terraform. Pour plus d'informations, voir Initialisation des répertoires de travail.
terraform init -
Fournir les ressources à partir du fichier
main.tf. Pour plus d'informations, voir Provisionnement de l'infrastructure avec Terraform.-
Exécutez
terraform planpour générer un plan d'exécution Terraform afin de prévisualiser les actions proposées.terraform plan -
Exécutez le site
terraform applypour créer les ressources définies dans le plan.terraform apply
-
Vous pouvez également supprimer une instance de ressource en exécutant la commande suivante : terraform destroy:
terraform destroy -target RESOURCE_TYPE.NAME -target RESOURCE_TYPE2.NAME