Exemples d’utilisation de l’AWS CLI avec des groupes de ressources - AWS Command Line Interface

Exemples d’utilisation de l’AWS CLI avec des groupes de ressources

Les exemples de code suivants montrent comment réaliser des actions et mettre en œuvre des scénarios courants en utilisant l’AWS Command Line Interface avec des groupes de ressources.

Les actions sont des extraits de code de programmes plus larges et doivent être exécutées dans leur contexte. Alors que les actions vous indiquent comment appeler des fonctions de service individuelles, vous pouvez les voir en contexte dans leurs scénarios associés.

Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la configuration et l’exécution du code en contexte.

Rubriques

Actions

L’exemple de code suivant montre comment utiliser create-group.

AWS CLI

Exemple 1 : pour créer un groupe de ressources basé sur des balises

L’exemple create-group suivant montre comment créer un groupe de ressources basé sur des balises d’instances Amazon EC2 dans la région actuelle. Il est basé sur une requête pour les ressources balisées avec la clé Name et la valeur WebServers. Le nom du groupe est tbq-WebServer. La requête se trouve dans un fichier JSON distinct qui est transmis à la commande.

aws resource-groups create-group \ --name tbq-WebServer \ --resource-query file://query.json

Contenu de query.json :

{ "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" }

Sortie :

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" }, "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } }

Exemple 2 : pour créer un groupe de ressources basé sur une pile CloudFormation

L’exemple create-group crée un groupe de ressources basé sur une pile AWS CloudFormation nommé sampleCFNstackgroup. La requête inclut toutes les ressources de la pile CloudFormation spécifiée qui sont prises en charge par AWS Resource Groups.

aws resource-groups create-group \ --name cbq-CFNstackgroup \ --resource-query file://query.json

Contenu de query.json :

{ "Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}" }

Sortie :

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNstackgroup", "Name": "cbq-CFNstackgroup" }, "ResourceQuery": { "Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-east-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}"}' } }

Pour plus d’informations, consultez Création de groupes dans le Guide de l’utilisateur AWS Resource Groups.

  • Pour plus de détails sur l’API, consultez CreateGroup dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser delete-group.

AWS CLI

Pour mettre à jour la description d’un groupe de ressources

L’exemple delete-group suivant met à jour le groupe de ressources spécifié.

aws resource-groups delete-group \ --group-name tbq-WebServer

Sortie :

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:1234567890:group/tbq-WebServer", "Name": "tbq-WebServer" } }

Pour plus d’informations, consultez Suppression des groupes dans le Guide de l’utilisateur AWS Resource Groups.

  • Pour plus de détails sur l’API, consultez DeleteGroup dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-group-query.

AWS CLI

Pour attacher la requête à un groupe de ressources

L’exemple get-group-query suivant montre une requête attachée au groupe de ressources spécifié.

aws resource-groups get-group-query \ --group-name tbq-WebServer

Sortie :

{ "GroupQuery": { "GroupName": "tbq-WebServer", "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } } }
  • Pour plus de détails sur l’API, consultez GetGroupQuery dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-group.

AWS CLI

Pour obtenir les informations sur un groupe de ressources

L’exemple get-group suivant affiche les détails sur le groupe de ressources spécifié. Pour attacher la requête au groupe, utilisez get-group-query.

aws resource-groups get-group \ --group-name tbq-WebServer

Sortie :

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer", "Description": "A tag-based query resource group of WebServers." } }
  • Pour plus de détails sur l’API, consultez GetGroup dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-tags.

AWS CLI

Pour récupérer les balises attachées à un groupe de ressources

L’exemple get-tags suivant affiche les paires clé/valeur de balise attachées au groupe de ressources spécifié (le groupe lui-même, pas ses membres).

aws resource-groups get-tags \ --arn arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer

Sortie :

{ "Arn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Tags": { "QueryType": "tags", "QueryResources": "ec2-instances" } }
  • Pour plus de détails sur l’API, consultez GetTags dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-group-resources.

AWS CLI

Pour créer une liste de toutes les ressources d’un groupe de ressources

Exemple 1 : l’exemple list-resource-groups suivant répertorie toutes les ressources qui font partie du groupe de ressources spécifié.

aws resource-groups list-group-resources \ --group-name tbq-WebServer

Sortie :

{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-09f77fa38c12345ab", "ResourceType": "AWS::EC2::Instance" } ] }

Exemple 2 : l’exemple suivant répertorie toutes les ressources du groupe qui ont également un « resource-type » de « AWS::EC2::Instance » :

aws resource-groups list-group-resources --group-name tbq-WebServer --filters Name=resource-type,Values=AWS::EC2::Instance

  • Pour plus de détails sur l’API, consultez ListGroupResources dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-groups.

AWS CLI

Pour créer une liste des groupes de ressources disponibles

L’exemple list-groups suivant affiche une liste de tous les groupes de ressources.

aws resource-groups list-groups

Sortie :

{ "GroupIdentifiers": [ { "GroupName": "tbq-WebServer", "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer3" }, { "GroupName": "cbq-CFNStackQuery", "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNStackQuery" } ], "Groups": [ { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" }, { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNStackQuery", "Name": "cbq-CFNStackQuery" } ] }
  • Pour plus de détails sur l’API, consultez ListGroups dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-resource-groups.

AWS CLI

Pour créer une liste de toutes les ressources d’un groupe de ressources

L’exemple list-resource-groups suivant crée une liste de toutes les ressources qui font partie du groupe de ressources spécifié.

aws resource-groups list-group-resources \ --group-name tbq-WebServer

Sortie :

{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-09f77fa38c12345ab", "ResourceType": "AWS::EC2::Instance" } ] }
  • Pour plus de détails sur l’API, consultez ListResourceGroups dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser put-group-configuration.

AWS CLI

Pour attacher une configuration de service à un groupe de ressources

Exemple 1 : l’exemple put-group-configuration suivant indique que le groupe de ressources doit contenir uniquement les réserves de capacité Amazon EC2 pour les instances des familles C5 ou M5.

aws resource-groups put-group-configuration \ --group MyTestGroup \ --configuration file://config.json

Contenu de config.json :

[ { "Type": "AWS::EC2::HostManagement", "Parameters": [ { "Name": "allowed-host-families", "Values": [ "c5", "m5" ] }, { "Name": "any-host-based-license-configuration", "Values": [ "true" ] } ] }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": [ "AWS::EC2::Host" ] }, { "Name": "deletion-protection", "Values": [ "UNLESS_EMPTY" ] } ] } ]

Cette commande ne génère pas de sortie si elle réussit.

Pour plus d’informations, consultez Service configurations for resource groups dans le Guide de référence des API de groupes de ressources.

  • Pour plus de détails sur l’API, consultez PutGroupConfiguration dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser search-resources.

AWS CLI

Pour rechercher des ressources correspondant à une requête

L’exemple search-resources suivant récupère une liste de toutes les ressources AWS qui correspondent à la requête spécifiée.

aws resource-groups search-resources \ --resource-query file://query.json

Contenu de query.json :

{ "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Patch Group\", \"Values\":[\"Dev\"]}]}" }

Sortie :

{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-01a23bc45d67890ef", "ResourceType": "AWS::EC2::Instance" } ] }
  • Pour plus de détails sur l’API, consultez SearchResources dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser tag.

AWS CLI

Pour attacher une balise à un groupe de ressources

L’exemple tag suivant attache les paires clé/valeur de balise spécifiées au groupe de ressources spécifié (le groupe lui-même, pas ses membres).

aws resource-groups tag \ --tags QueryType=tags,QueryResources=ec2-instances \ --arn arn:aws:resource-groups:us-west-2:128716708097:group/tbq-WebServer

Sortie :

{ "Arn": "arn:aws:resource-groups:us-west-2:128716708097:group/tbq-WebServer", "Tags": { "QueryType": "tags", "QueryResources": "ec2-instances" } }

Pour plus d’informations, consultez Gestion des balises dans le Guide de l’utilisateur AWS Resource Groups.

  • Pour plus de détails sur l’API, consultez Tag dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser untag.

AWS CLI

Pour supprimer des balises d’un groupe de ressources

L’exemple untags suivant supprime toute balise avec la clé spécifiée du groupe de ressources lui-même, et non de ses membres.

aws resource-groups untag \ --arn arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer \ --keys QueryType

Sortie :

{ "Arn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Keys": [ "QueryType" ] }

Pour plus d’informations, consultez Gestion des balises dans le Guide de l’utilisateur AWS Resource Groups.

  • Pour plus de détails sur l’API, consultez Untag dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser update-group-query.

AWS CLI

Exemple 1 : pour mettre à jour la requête pour un groupe de ressources basé sur des balises

L’exemple update-group-query suivant met à jour la requête attachée au groupe de ressources basé sur des balises spécifié.

aws resource-groups update-group-query \ --group-name tbq-WebServer \ --resource-query '{"Type":"TAG_FILTERS_1_0", "Query":"{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}"}'

Sortie :

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-east-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" }, "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } }

Pour plus d’informations, consultez Mettre à jour les groupes dans le Guide de l’utilisateur AWS Resource Groups.

Exemple 2 : pour mettre à jour la requête concernant un groupe de ressources basé sur une pile CloudFormation

L’exemple update-group-query suivant met à jour la requête attachée au groupe de ressources basé sur une pile AWS CloudFormation spécifié.

aws resource-groups update-group-query \ --group-name cbq-CFNstackgroup \ --resource-query '{"Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}"}'

Sortie :

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNstackgroup", "Name": "cbq-CFNstackgroup" }, "ResourceQuery": { "Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}" } }

Pour plus d’informations, consultez Mettre à jour les groupes dans le Guide de l’utilisateur AWS Resource Groups.

  • Pour plus de détails sur l’API, consultez UpdateGroupQuery dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser update-group.

AWS CLI

Pour mettre à jour la description d’un groupe de ressources

L’exemple update-group suivant met à jour la description du groupe de ressources spécifié.

aws resource-groups update-group \ --group-name tbq-WebServer \ --description "Resource group for all web server resources."

Sortie :

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" "Description": "Resource group for all web server resources." } }

Pour plus d’informations, consultez Mettre à jour les groupes dans le Guide de l’utilisateur AWS Resource Groups.

  • Pour plus de détails sur l’API, consultez UpdateGroup dans la Référence des commandes de l’AWS CLI.