Ausgabe
Ich versuche, eine vorhandene Autoscaling-Gruppe mit Python und Boto3 zu markieren.
Ich kann die ASGs definitiv namentlich beschreiben:
import boto3
asg_client = boto3.client("autoscaling")
asg_name = "foo-bar20220502044025104700000001"
response = asg_client.describe_auto_scaling_groups(AutoScalingGroupNames=[asg_name])
Das Problem, das ich mit den Methoden create_or_update_tags()
und habe delete_tags()
, ist, dass sie anscheinend keine Liste von ASG-Namen akzeptieren. Das geht zB nicht:
asg_client.create_or_update_tags(
AutoScalingGroupNames=[asg_name],
Tags=[my_tag]
)
Um es klar zu stellen:
- die ASG existiert bereits, ich erstelle sie hier nicht
- Weitere Änderungen an der ASG möchte ich nicht vornehmen
- Alles, was ich will, ist in der Lage zu sein, eine ASG zu markieren, wenn ich ihren Namen kenne
- Ich muss dafür boto3 von Python verwenden
Die Tag-bezogenen Methoden scheinen sich von allen anderen ASG-Client-Methoden darin zu unterscheiden, dass sie keinen ASG-Namen oder eine Namensliste als Parameter akzeptieren.
Lösung
Sie können dies tun, Sie müssen nur eine andere Eingabe machen. Die ResourceId
dieser Client-Methoden können mit einem ASG-Namen versorgt werden.
Hier ist die boto3-Dokumentation für den create_or_update_tags
Anruf.
Hier ist ein Beispiel:
asg_client.create_or_update_tags(
Tags=[
{
'ResourceId': asg_name,
'ResourceType': 'auto-scaling-group',
'Key': 'myTagKey',
'Value': 'myTagValue',
'PropagateAtLaunch': True
},
]
)
Beantwortet von – JD D
Antwort geprüft von – Marie Seifert (FixError Admin)