Я пытаюсь написать лямбда-функцию в AWS, которая запускается один раз для каждого существующего пользователя.Нужно подсчитать, сколько экземпляров работает у пользователя (у меня уже есть что-то, что помечает каждый экземпляр с помощью UserId его создателя).Поэтому я пытался написать фильтр, который получает все запущенные экземпляры пользователя, а затем подсчитывает их.Проблема в том, что мне как-то не удается получить UserId от пользователя после того, как я получил список всех пользователей.В настоящее время это выглядит так:
users = client.list_users()
for user in users:
#here is where I dont know how to get the UserId i´ve tried things like:
#userId=user.UserId or userId=user['UserId'] and other things but I just cant get it to work
instancefilters = [{
{
'Name': 'instance-state-name',
'Values': ['running']
},
{
'Name': 'PrincipalId',
'Values': [userId]
}
}
]
instances = ec2.instances.filter(Filters=instancefilters)
RunningInstances = [instance.id for instance in instances]
Я надеюсь, что кто-то может мне помочь. Я чувствую, что должно быть действительно простое решение, но я как-то не могу его найти
Редактировать: Я использую Boto3за это.Boto3's client.list_users () возвращает dict со списком пользователей с указанием их данных, например:
{
'Users': [
{
'Path': 'string',
'UserName': 'string',
'UserId': 'string',
'Arn': 'string',
'CreateDate': datetime(2015, 1, 1),
'PasswordLastUsed': datetime(2015, 1, 1),
'PermissionsBoundary': {
'PermissionsBoundaryType': 'PermissionsBoundaryPolicy',
'PermissionsBoundaryArn': 'string'
},
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
},
],
'IsTruncated': True|False,
'Marker': 'string'
}