Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Creazione di gruppi basati su interrogazioni inAWS Resource Groups
Argomenti
Tipi di interrogazioni sui gruppi di risorse
InAWS Resource Groups, una query è la base di un gruppo basato su query. È possibile basare un gruppo di risorse su uno dei due tipi di query.
- Tag-based (Basato su tag)
-
Le query basate su tag includono elenchi di tipi di risorse specificati nel formato
AWS::
seguente e tag. I Tags (tag) sono chiavi che consentono di identificare e ordinare le risorse all'interno della propria organizzazione. I tag possono includere valori per le chiavi.service
::resource
Per una query basata su tag, è anche possibile specificare i tag condivisi dalle risorse che si desidera siano membri del gruppo. Ad esempio, se desideri creare un gruppo di risorse con tutte le istanze Amazon EC2 e i bucket Amazon S3 che stai utilizzando per eseguire la fase di test di un'applicazione e hai istanze e bucket etichettati in questo modo, scegli i tipi
AWS::EC2::Instance
e leAWS::S3::Bucket
risorse dall'elenco a discesa, quindi specifica la chiave del tagStage
, con un valore di tag pari aTest
.La sintassi del
ResourceQuery
parametro di un gruppo di risorse basato su tag contiene i seguenti elementi:-
Type
Questo elemento indica il tipo di interrogazione che definisce questo gruppo di risorse. Per creare un gruppo di risorse basato su tag, specificate il valore
TAG_FILTERS_1_0
come segue:"Type": "TAG_FILTERS_1_0"
-
Query
Questo elemento definisce l'interrogazione effettiva utilizzata per confrontare le risorse. Contiene una rappresentazione di stringa di una struttura JSON con i seguenti elementi:
-
ResourceTypeFilters
Questo elemento limita i risultati solo ai tipi di risorse che corrispondono al filtro. Puoi specificare le seguenti valori:
-
"AWS::AllSupported"
— per specificare che i risultati possono includere risorse di qualsiasi tipo che corrispondono all'interrogazione e che sono attualmente supportate dal servizio Resource Groups. -
"AWS::
— un elenco separato da virgole di stringhe di specifiche del tipo di risorsa con il seguente formato:, ad esempioservice-id
::resource-type
"AWS::EC2::Instance"
.
-
-
TagFilters
Questo elemento specifica le coppie di stringhe chiave/valore che vengono confrontate con i tag allegati alle risorse. Quelli con una chiave e un valore di tag che corrispondono al filtro sono inclusi nel gruppo. Ogni filtro è composto dai seguenti elementi:
-
"Key"
— una stringa con un nome chiave. Solo le risorse che hanno tag con un nome chiave corrispondente corrispondono al filtro e fanno parte del gruppo. -
"Values"
— una stringa con un elenco di valori separati da virgole per la chiave specificata. Solo le risorse con una chiave tag corrispondente e un valore che corrisponde a uno in questo elenco fanno parte del gruppo.
-
-
Tutti questi elementi JSON devono essere combinati in una rappresentazione in stringa a riga singola della struttura JSON. Ad esempio, considera a
Query
con la seguente struttura JSON di esempio. Questa query è pensata per corrispondere solo alle istanze Amazon EC2 che hanno un tag «Stage» con un valore «Test».{ "ResourceTypeFilters": [ "AWS::EC2::Instance" ], "TagFilters": [ { "Key": "Stage", "Values": [ "Test" ] } ] }
Quel JSON può essere rappresentato come la seguente stringa a riga singola e utilizzato come valore dell'
Query
elemento. Poiché il valore di una struttura JSON deve essere una stringa tra virgolette doppie, è necessario evitare qualsiasi carattere incorporato tra virgolette doppie o barra anteriore precedendo ciascuno con una barra rovesciata, come illustrato di seguito:"Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"
La
ResourceQuery
stringa completa viene quindi rappresentata come mostrato qui, come parametro del comando CLI:--resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"}'
-
- AWS CloudFormationbasato su stack
-
In una query AWS CloudFormation basata su stack, scegliere uno stack AWS CloudFormation nel tuo account nella regione corrente, quindi scegliere i tipi di risorse nello stack che si desidera siano presenti nel gruppo. È possibile basare la query solo su uno stack AWS CloudFormation.
Nota
UnaAWS CloudFormation pila può contenere altre pileAWS CloudFormation «secondarie». Tuttavia, un gruppo di risorse basato su uno stack «principale» non ottiene tutte le risorse degli stack secondari come membri del gruppo. I gruppi di risorse aggiungono gli stack secondari al gruppo di risorse dello stack principale come membri singoli del gruppo e non li espandono.
Resource Groups supporta le query basate suAWS CloudFormation stack con uno dei seguenti stati.
-
CREATE_COMPLETE
-
CREATE_IN_PROGRESS
-
DELETE_FAILED
-
DELETE_IN_PROGRESS
-
REVIEW_IN_PROGRESS
Importante
Solo le risorse create direttamente come parte dello stack della query sono incluse nel gruppo di risorse. Le risorse create successivamente dai membri delloAWS CloudFormation stack non diventano membri del gruppo. Ad esempio, se un gruppo con auto-scaling viene creato daAWS CloudFormation come parte dello stack, quel gruppo con auto-scaling è un membro del gruppo. Tuttavia, un'istanza Amazon EC2 creata da quel gruppo di auto-scaling come parte della sua operazione non è membro del gruppo di risorseAWS CloudFormation basato sullo stack.
Se si crea un gruppo basato su unoAWS CloudFormation stack e lo stato dello stack cambia in uno che non è più supportato come base per una query di gruppo, ad esempio
DELETE_COMPLETE
, il gruppo di risorse esiste ancora, ma non ha risorse membri. -
Dopo aver creato un gruppo di risorse, è possibile eseguire attività sulle risorse del gruppo.
La sintassi delResourceQuery
parametro di un gruppo di risorse CloudFormation basato sullo stack contiene i seguenti elementi:
-
Type
Questo elemento indica il tipo di interrogazione che definisce questo gruppo di risorse.
Per creare un gruppo di risorseAWS CloudFormation basato sullo stack, specificate il valore
CLOUDFORMATION_STACK_1_0
come segue:"Type": "CLOUDFORMATION_STACK_1_0"
-
Query
Questo elemento definisce l'interrogazione effettiva utilizzata per confrontare le risorse. Contiene una rappresentazione di stringa di una struttura JSON con i seguenti elementi:
-
ResourceTypeFilters
Questo elemento limita i risultati solo ai tipi di risorse che corrispondono al filtro. Puoi specificare le seguenti valori:
-
"AWS::AllSupported"
— per specificare che i risultati possono includere risorse di qualsiasi tipo che corrispondono all'interrogazione. -
"AWS::
— un elenco separato da virgole di stringhe di specifiche del tipo di risorsa con il seguente formato:, ad esempioservice-id
::resource-type
"AWS::EC2::Instance"
.
-
-
StackIdentifier
Questo elemento specifica l'ARN (Amazon Resource Name) delloAWS CloudFormation stack di cui intendi includere le risorse nel gruppo.
-
Tutti questi elementi JSON devono essere combinati in una rappresentazione in stringa a riga singola della struttura JSON. Ad esempio, considera aQuery
con la seguente struttura JSON di esempio. Questa query è pensata per corrispondere solo ai bucket Amazon S3 che fanno parte delloAWS CloudFormation stack specificato.
{ "ResourceTypeFilters": [ "AWS::S3::Bucket" ], "StackIdentifier": "arn:aws:cloudformation:us-west-2:123456789012:stack/
MyCloudFormationStackName
/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE" }
Quel JSON può essere rappresentato come la seguente stringa a riga singola e utilizzato come valore dell'Query
elemento. Poiché il valore di una struttura JSON deve essere una stringa tra virgolette doppie, è necessario evitare qualsiasi carattere incorporato tra virgolette doppie o barra anteriore precedendo ciascuno con una barra rovesciata, come illustrato di seguito:
"Query":"{\"ResourceTypeFilters\":[\"AWS::S3::Bucket\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack\/
MyCloudFormationStackName
\/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE\"
LaResourceQuery
stringa completa viene quindi rappresentata come mostrato qui, come parametro del comando CLI:
--resource-query '{"Type":"CLOUDFORMATION_STACK_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::S3::Bucket\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack\/
MyCloudFormationStackName
\/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE\"}'
Crea una query basata su tag e crea un gruppo
Le procedure seguenti mostrano come creare una query basata su tag e utilizzarla per creare un gruppo di risorse.
Crea un gruppoAWS CloudFormation basato sullo stack
Le procedure seguenti mostrano come creare una query basata su stack e utilizzarla per creare un gruppo di risorse.