Creazione di gruppi basati su interrogazioni inAWS Resource Groups - AWS Resource Groups

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

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 formatoAWS::service::resource 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.

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 tipiAWS::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 delResourceQuery 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 valoreTAG_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::service-id::resource-type— un elenco separato da virgole di stringhe di specifiche del tipo di risorsa con il seguente formato:, ad esempio"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 aQuery 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'Queryelemento. 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\"]}]}"

LaResourceQuery 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 esempioDELETE_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 valoreCLOUDFORMATION_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::service-id::resource-type— un elenco separato da virgole di stringhe di specifiche del tipo di risorsa con il seguente formato:, ad esempio"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'Queryelemento. 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.

Console
  1. Accedi alla console AWS Resource Groups.

  2. Nel riquadro di navigazione, scegli Create Resource Group.

  3. Nella pagina Crea gruppo basato su query, in Tipo di gruppo, scegli il tipo di gruppo basato su tag.

  4. In Criteri di raggruppamento, scegli i tipi di risorse che desideri inserire nel tuo gruppo di risorse. È possibile avere un massimo di 20 tipi di risorse in una query. Per questa procedura dettagliata, scegli AWS::EC2::Instancee AWS::S3::Bucket.

  5. Sempre in Criteri di raggruppamento, per i tag, specifica una chiave di tag o una coppia chiave e valore del tag, per limitare le risorse corrispondenti a includere solo quelle contrassegnate con i valori specificati. Scegliere Add (Aggiungi) o premere Invio al completamento del tag. In questo esempio, vengono filtrate le risorse con la chiave di tag di Stage (Fase). Il valore di tag è opzionale, ma restringe ulteriormente i risultati della query. È possibile aggiungere più valori per una chiave di tag aggiungendo unOR operatore tra i valori del tag. Per aggiungere ulteriori tag, scegliere Add (Aggiungi). Le query assegnano un operatore AND ai tag in modo da restituire le risorse che corrispondono ai tipi di risorsa specificati e a tutti i tag specificati.

  6. Sempre in Criteri di raggruppamento, scegli Anteprima delle risorse del gruppo per restituire l'elenco delle istanze EC2 e dei bucket S3 nel tuo account che corrispondono alla chiave o alle chiavi di tag specificate.

  7. Dopo aver ottenuto i risultati desiderati, crea un gruppo basato su questa query.

    1. In Dettagli del gruppo, in Nome del gruppo, digita un nome per il tuo gruppo di risorse.

      Il nome di un gruppo di risorse può avere un massimo di 128 caratteri, inclusi lettere, numeri, trattini, punti e trattini bassi. Il nome non può iniziare per AWS o aws, poiché sono riservati. Il nome di un gruppo di risorse deve essere univoco nella Regione corrente dell'account.

    2. (Facoltativo) In Group description (Descrizione gruppo), immettere una descrizione del tuo gruppo.

    3. (Facoltativo) Nell'area Group tags (Tag gruppo), aggiungere una chiave di tag e coppie di valore che si applicano solo al gruppo di risorse, non alle risorse membri del gruppo.

      I tag del gruppo sono utili se si prevede di rendere questo gruppo un membro di un gruppo più grande. Poiché è necessario specificare almeno una chiave di tag per creare un gruppo, assicurarsi di aggiungere almeno una chiave di tag in Group tags (Tag gruppo) ai gruppi che si prevede di annidare in gruppi più grandi.

  8. Quando hai finito, scegli Crea gruppo.

AWS CLI & AWS SDKs

Un gruppo basato su tag si basa su un tipo di query TAG_FILTERS_1_0.

  1. In una sessione AWS CLI, digitare quanto segue e premere Enter (Invio), sostituendo i valori del nome del gruppo, la descrizione, i tipi di risorse, le chiavi di tag e i valori di tag con quelli desiderati. Le descrizioni possono avere un massimo di 512 caratteri, inclusi lettere, numeri, trattini, trattini bassi, punteggiatura e spazi. È possibile avere un massimo di 20 tipi di risorse in una query. Il nome di un gruppo di risorse può avere un massimo di 128 caratteri, inclusi lettere, numeri, trattini, punti e trattini bassi. Il nome non può iniziare per AWS o aws, poiché sono riservati. Il nome di un gruppo di risorse deve essere univoco nell'account.

    Almeno un valore per ResourceTypeFilters è obbligatorio. Per specificare tutti i tipi di risorse, utilizzare AWS::AllSupported come valore di ResourceTypeFilters.

    $ aws resource-groups create-group \ --name resource-group-name \ --resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"resource_type1\",\"resource_type2\"],\"TagFilters\":[{\"Key\":\"Key1\",\"Values\":[\"Value1\",\"Value2\"]},{\"Key\":\"Key2\",\"Values\":[\"Value1\",\"Value2\"]}]}"}'

    Il comando seguente è un esempio.

    $ aws resource-groups create-group \ --name my-resource-group \ --resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"}'

    Il comando seguente è un esempio che include tutti i tipi di risorse supportati.

    $ aws resource-groups create-group \ --name my-resource-group \ --resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"TagFilters\":[{\"Key\":\"Stage\",\"Values\":[\"Test\"]}]}"}'
  2. I seguenti risultati vengono restituiti in risposta al comando.

    • Una descrizione completa del gruppo creato.

    • La query delle risorse utilizzata per creare il gruppo.

    • I tag associati al gruppo.

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.

Console
  1. Accedi alla console AWS Resource Groups.

  2. Nel riquadro di navigazione, scegli Create Resource Group.

  3. In Crea gruppo basato su query, in Tipo di gruppo, scegli il tipo di gruppo basato sulloCloudFormation stack.

  4. Scegli lo stack che si desidera sia alla base del gruppo. Un gruppo di risorse può essere basato su un solo stack. Per filtrare l'elenco di stack, iniziare a digitare il nome dello stack. Solo gli stack con gli stati supportati sono riportati nell'elenco.

  5. Scegliere i tipi di risorse nello stack che si desidera includere nel gruppo. Per questo scenario, mantenere l'impostazione predefinita, All supported resource types (Tutti i tipi di risorse supportati). Per ulteriori informazioni su quali tipi di risorse sono supportati e possono essere presenti nel gruppo, vedere Tipi di risorse utilizzabili con AWS Resource Groups e Tag Editor.

  6. Scegliere View group resources (Visualizza gruppo di risorse) per restituire l'elenco delle risorse nello stack AWS CloudFormation he corrispondono ai tipi di risorse selezionate.

  7. Dopo aver ottenuto i risultati desiderati, crea un gruppo basato su questa query.

    1. In Dettagli del gruppo, in Nome del gruppo, digita un nome per il tuo gruppo di risorse.

      Il nome di un gruppo di risorse può avere un massimo di 128 caratteri, inclusi lettere, numeri, trattini, punti e trattini bassi. Il nome non può iniziare per AWS o aws, poiché sono riservati. Il nome di un gruppo di risorse deve essere univoco nella Regione corrente dell'account.

    2. (Facoltativo) In Group description (Descrizione gruppo), immettere una descrizione del tuo gruppo.

    3. (Facoltativo) Nell'area Group tags (Tag gruppo), aggiungere una chiave di tag e coppie di valore che si applicano solo al gruppo di risorse, non alle risorse membri del gruppo.

      I tag del gruppo sono utili se si prevede di rendere questo gruppo un membro di un gruppo più grande. Poiché è necessario specificare almeno una chiave di tag per creare un gruppo, assicurarsi di aggiungere almeno una chiave di tag in Group tags (Tag gruppo) ai gruppi che si prevede di annidare in gruppi più grandi.

  8. Quando hai finito, scegli Crea gruppo.

AWS CLI & AWS SDKs

Un gruppo basato su stack AWS CloudFormation si fonda su una query di tipo CLOUDFORMATION_STACK_1_0.

  1. Esegui il comando seguente, sostituendo i valori per il nome del gruppo, la descrizione, l'identificatore dello stack e i tipi di risorse con i tuoi. Le descrizioni possono avere un massimo di 512 caratteri, inclusi lettere, numeri, trattini, trattini bassi, punteggiatura e spazi.

    Se non si specificano i tipi di risorse, Resource Groups include tutti i tipi di risorse supportati nello stack. È possibile avere un massimo di 20 tipi di risorse in una query. Il nome di un gruppo di risorse può avere un massimo di 128 caratteri, inclusi lettere, numeri, trattini, punti e trattini bassi. Il nome non può iniziare per AWS o aws, poiché sono riservati. Il nome di un gruppo di risorse deve essere univoco nell'account.

    Lo stack_identifier è l’ARN dello stack, come mostrato nel comando di esempio.

    $ aws resource-groups create-group \ --name group_name \ --description "description" \ --resource-query '{"Type":"CLOUDFORMATION_STACK_1_0","Query":"{\"StackIdentifier\":\"stack_identifier\",\"ResourceTypeFilters\":[\"resource_type1\",\"resource_type2\"]}"}'

    Il comando seguente è un esempio.

    $ aws resource-groups create-group \ --name My-CFN-stack-group \ --description "My first CloudFormation stack-based group" \ --resource-query '{"Type":"CLOUDFORMATION_STACK_1_0","Query":"{\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack\/AWStestuseraccount\/fb0d5000-aba8-00e8-aa9e-50d5cEXAMPLE\",\"ResourceTypeFilters\":[\"AWS::EC2::Instance\",\"AWS::S3::Bucket\"]}"}'
  2. I seguenti risultati vengono restituiti in risposta al comando.

    • Una descrizione completa del gruppo creato.

    • La query delle risorse utilizzata per creare il gruppo.