matze1508
Goto Top

AWS Tagging mit Lambda über Commandline

Hallo Leute,

ich wollte über ein Skript alle Ressourcen in meinem Account Taggen lassen.

Habt ihr damit Erfahrungen gemacht? Ich finde keine Möglichkeiten den Ressourcen Editor in der Konsole ausgeben zu lassen.

Bisher habe ich einen Befehl gefunden mit dem ich die Ressource komplett ausgegeben bekommen:
aws ec2 describe-instances
Kann ich bei diesem Befehl den Output verändern und nur die Ressource ID ausgeben lassen? Dann könnte man dann eine IF Anweisung schreiben damit erst gecheckt wird ob der TAG vorhanden ist und notfalls wenn nicht ihn einfügt.

Der Befehl ist nicht global anwendbar sondern nur für jede einzelne Instanz-ID
aws ec2 create-tags --resources i-1234567890abcdef0 --tags 'Key=\"[Group]\",Value=test'


Viele Grüße

Content-ID: 381740

Url: https://administrator.de/forum/aws-tagging-mit-lambda-ueber-commandline-381740.html

Ausgedruckt am: 23.12.2024 um 18:12 Uhr

colinardo
Lösung colinardo 30.07.2018 aktualisiert um 13:43:29 Uhr
Goto Top
Servus,
die Ausgabe der Commandline (welches OS?) habe ich gerade nicht verfügbar da du aber auch kein OS für deine CMD nennst poste ich dir einfach mal den Code für die das AWSPowershell-Module mit dem du alle EC2 Instanzen die noch kein Group-Tag haben mit diesem taggen kannst, im Beispiel das Tag mit dem Key 'Group' und dem Value 'test'.
Get-RGTResource | ?{$_.Tags.Key -notcontains 'Group'} | %{Add-RGTResourceTag -ResourceARNList $_.ResourceARN -Tag @{Group='test'}}  

Viel Spaß
Grüße Uwe
Matze1508
Matze1508 30.07.2018 aktualisiert um 15:24:17 Uhr
Goto Top
Servus,

ok vielen dank schonmal dafür, der Tag auf der EC2 Instanz hat direkt funktioniert!! Geht es auch für alle Ressourcen nicht nur ec2? Auch sowas wie S3 Buckets oder ähnliches?

Ich hab außerdem diesen Fehler erhalten:

Add-RGTResourceTag : Rate exceeded
In Zeile:1 Zeichen:57
+ ...  'MGI'} | %{Add-RGTResourceTag -ResourceARNList $_.ResourceARN -Tag @ ...  
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (Amazon.PowerShe...sourceTagCmdlet:AddRGTResourceTagCmdlet) [Add-RGTResourceTag], InvalidOperationException
    + FullyQualifiedErrorId : Amazon.ResourceGroupsTaggingAPI.Model.ThrottledException,Amazon.PowerShell.Cmdlets.RGT.AddRGTResourceTagCmdlet

Ich benutze die AWS Konsole. Hast du ne gute Quelle zum Einlesen dafür?

VIelen Dank,
Mateusz
colinardo
Lösung colinardo 30.07.2018 aktualisiert um 18:33:49 Uhr
Goto Top
Zitat von @Matze1508:
ok vielen dank schonmal dafür, der Tag auf der EC2 Instanz hat direkt funktioniert!! Geht es auch für alle Ressourcen nicht nur ec2? Auch sowas wie S3 Buckets oder ähnliches?
Für jeden Service hast du die entsprechenden CMDLets und API -Tools, einfach die Doku bemühen:
https://aws.amazon.com/de/documentation/

Für jede Ressource geht das Tagging mit Add-RGTResourceTag, so lange du aus deiner Resource eine ARN bilden kannst:
Siehe Referenz zum Amazon Resource Naming Scheme
https://docs.aws.amazon.com/de_de/general/latest/gr/aws-arns-and-namespa ...

Ich hab außerdem diesen Fehler erhalten:

Add-RGTResourceTag : Rate exceeded
> In Zeile:1 Zeichen:57
> + ...  'MGI'} | %{Add-RGTResourceTag -ResourceARNList $_.ResourceARN -Tag @ ...  
> +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     + CategoryInfo          : InvalidOperation: (Amazon.PowerShe...sourceTagCmdlet:AddRGTResourceTagCmdlet) [Add-RGTResourceTag], InvalidOperationException
>     + FullyQualifiedErrorId : Amazon.ResourceGroupsTaggingAPI.Model.ThrottledException,Amazon.PowerShell.Cmdlets.RGT.AddRGTResourceTagCmdlet
> 
> 
Pause bzw. retry im Loop einfügen, damit entsprechende Limits nicht getriggert werden.
https://forums.aws.amazon.com/thread.jspa?threadID=274487
Limits für AWS-Services

Ich benutze die AWS Konsole. Hast du ne gute Quelle zum Einlesen dafür?
API-Doku reicht völlig dafür, Powershell-Grundkenntnisse vorausgesetzt (wenn nicht Powershell Grundkurs machen):
https://docs.aws.amazon.com/powershell/latest/reference/Index.html