Beispiele für die Verwendung von Ressourcengruppen mit AWS CLI - AWS Command Line Interface

Beispiele für die Verwendung von Ressourcengruppen mit AWS CLI

Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie AWS Command Line Interface mit Ressourcengruppen nutzen.

Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.

Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anleitungen zum Einrichten und Ausführen des Codes im Kontext finden.

Themen

Aktionen

Das folgende Codebeispiel zeigt, wie create-group verwendet wird.

AWS CLI

Beispiel 1: Erstellen einer Tag-basierten Ressourcengruppe

Im folgenden Beispiel für create-group wird eine Tag-basierte Ressourcengruppe von Amazon EC2-Instances in der aktuellen Region erstellt. Es basiert auf einer Abfrage nach Ressourcen, die mit dem Schlüssel Name und dem Wert WebServers gekennzeichnet sind. Der Name der Gruppe lautet tbq-WebServer. Die Abfrage befindet sich in einer separaten JSON-Datei, die an den Befehl übergeben wird.

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

Inhalt von query.json:

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

Ausgabe:

{ "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\"]}]}" } }

Beispiel 2: Erstellen einer CloudFormation stackbasierten Ressourcengruppe

Im folgenden Beispiel für create-group wird eine stackbasierte AWS-CloudFormation-Ressourcengruppe mit dem Namen sampleCFNstackgroup erstellt. Die Abfrage umfasst alle Ressourcen im angegebenen CloudFormation-Stack, die von AWS-Ressourcengruppen unterstützt werden.

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

Inhalt von 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\"}" }

Ausgabe:

{ "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\"}"}' } }

Weitere Informationen finden Sie unter Erstellen von Gruppen im Benutzerhandbuch zu AWS-Ressourcengruppen.

  • API-Details finden Sie unter CreateGroup in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie delete-group verwendet wird.

AWS CLI

So aktualisieren Sie die Beschreibung für eine Ressourcengruppe

Im folgenden Beispiel für delete-group wird die angegebene Ressourcengruppe aktualisiert.

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

Ausgabe:

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

Weitere Informationen finden Sie unter Löschen von Gruppen im Benutzerhandbuch zu AWS-Ressourcengruppen.

  • API-Details finden Sie unter DeleteGroup in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie get-group-query verwendet wird.

AWS CLI

So rufen Sie die einer Ressourcengruppe zugeordnete Abfrage ab

Im folgenden Beispiel für get-group-query wird die Abfrage angezeigt, die der angegebenen Ressourcengruppe zugeordnet ist.

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

Ausgabe:

{ "GroupQuery": { "GroupName": "tbq-WebServer", "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } } }
  • API-Details finden Sie unter GetGroupQuery in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie get-group verwendet wird.

AWS CLI

So rufen Sie Informationen zu einer Ressourcengruppe ab

Im folgenden Beispiel für get-group werden Details zur angegebenen Ressourcengruppe angezeigt. Verwenden Sie get-group-query, um die Abfrage an die Gruppe anzuhängen.

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

Ausgabe:

{ "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." } }
  • API-Details finden Sie unter GetGroup in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie get-tags verwendet wird.

AWS CLI

So rufen Sie die Tags ab, die an eine Ressourcengruppe angefügt sind

Im folgenden Beispiel für get-tags werden die Tag-Schlüssel und Wertepaare angezeigt, die der angegebenen Ressourcengruppe (der Gruppe selbst, nicht ihren Mitgliedern) zugeordnet sind.

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

Ausgabe:

{ "Arn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Tags": { "QueryType": "tags", "QueryResources": "ec2-instances" } }
  • API-Details finden Sie unter GetTags in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie list-group-resources verwendet wird.

AWS CLI

So listen Sie alle Ressourcen in einer Ressourcengruppe auf

Beispiel 1: Im folgenden Beispiel für list-resource-groups werden alle Ressourcen aufgelistet, die Teil der angegebenen Ressourcengruppe sind.

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

Ausgabe:

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

Beispiel 2: Im folgenden Beispiel werden alle Ressourcen in der Gruppe aufgelistet, die auch einen 'resource-type' der 'AWS::EC2::Instance' haben:

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

Das folgende Codebeispiel zeigt, wie list-groups verwendet wird.

AWS CLI

So listen Sie die verfügbaren Ressourcengruppen auf

Im folgenden Beispiel für list-groups wird eine Liste aller Ressourcengruppen angezeigt.

aws resource-groups list-groups

Ausgabe:

{ "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" } ] }
  • API-Details finden Sie unter ListGroups in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie list-resource-groups verwendet wird.

AWS CLI

So listen Sie alle Ressourcen in einer Ressourcengruppe auf

Im folgenden Beispiel für list-resource-groups werden alle Ressourcen aufgelistet, die Teil der angegebenen Ressourcengruppe sind.

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

Ausgabe:

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

Das folgende Codebeispiel zeigt, wie put-group-configuration verwendet wird.

AWS CLI

So hängen Sie eine Servicekonfiguration an eine Ressourcengruppe an

Beispiel 1: Im folgenden Beispiel für put-group-configuration wird angegeben, dass die Ressourcengruppe nur Amazon EC2-Kapazitätsreservierungen für Instances der C5- oder M5-Familien enthalten soll.

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

Inhalt von 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" ] } ] } ]

Dieser Befehl erzeugt keine Ausgabe, wenn er erfolgreich ist.

Weitere Informationen finden Sie unter Servicekonfigurationen für Ressourcengruppen in der Resource Groups API-Referenz.

Das folgende Codebeispiel zeigt, wie search-resources verwendet wird.

AWS CLI

So finden Sie Ressourcen, die einer Abfrage entsprechen

Im folgenden Beispiel für search-resources wird eine Liste aller AWS-Ressourcen abgerufen, die der angegebenen Abfrage entsprechen.

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

Inhalt von query.json:

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

Ausgabe:

{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-01a23bc45d67890ef", "ResourceType": "AWS::EC2::Instance" } ] }
  • API-Details finden Sie unter SearchResources in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie tag verwendet wird.

AWS CLI

So fügen Sie einer Ressourcengruppe einen Tag hinzu

Im folgenden Beispiel für tag werden der angegebene Tag-Schlüssel und Wertepaare an die angegebene Ressourcengruppe angehängt (die Gruppe selbst, nicht ihre Mitglieder).

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

Ausgabe:

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

Weitere Informationen finden Sie unter Verwalten von Tags im AWS-Ressourcengruppen-Benutzerhandbuch.

  • API-Details finden Sie unter Tag in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie untag verwendet wird.

AWS CLI

So entfernen Sie Tags von einer Ressourcengruppe

Im folgenden Beispiel für untags werden alle Tags mit dem angegebenen Schlüssel aus der Ressourcengruppe selbst entfernt, nicht von ihren Mitgliedern.

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

Ausgabe:

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

Weitere Informationen finden Sie unter Verwalten von Tags im Benutzerhandbuch zu AWS Resource Groups.

  • API-Details finden Sie unter Untag in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie update-group-query verwendet wird.

AWS CLI

Beispiel 1: So aktualisieren Sie die Abfrage für eine tagbasierte Ressourcengruppe

Im folgenden Beispiel für update-group-query wird die Abfrage aktualisiert, die der angegebenen tagbasierten Ressourcengruppe zugeordnet ist.

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\"]}]}"}'

Ausgabe:

{ "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\"]}]}" } }

Weitere Informationen finden Sie unter Aktualisieren von Gruppen im Benutzerhandbuch zu AWS-Ressourcengruppen.

Beispiel 2: So aktualisieren Sie die Abfrage für eine stackbasierte CloudFormation-Ressourcengruppe

Im folgenden Beispiel für update-group-query wird die Abfrage aktualisiert, die an die angegebene stackbasierte AWS-CloudFormation-Ressourcengruppe angehängt ist.

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\"}"}'

Ausgabe:

{ "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\"}" } }

Weitere Informationen finden Sie unter Aktualisieren von Gruppen im Benutzerhandbuch zu AWS-Ressourcengruppen.

Das folgende Codebeispiel zeigt, wie update-group verwendet wird.

AWS CLI

So aktualisieren Sie die Beschreibung für eine Ressourcengruppe

Im folgenden Beispiel für update-group wird die Beschreibung für die angegebene Ressourcengruppe aktualisiert.

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

Ausgabe:

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

Weitere Informationen finden Sie unter Aktualisieren von Gruppen im Benutzerhandbuch zu AWS-Ressourcengruppen.

  • API-Details finden Sie unter UpdateGroup in der AWS CLI-Befehlsreferenz.