Boto3 AWS создание пользователя Попробуйте catch, не позволяя продолжить для l oop - PullRequest
0 голосов
/ 27 марта 2020

У меня есть сценарий python, который будет go через все мои учетные записи и создает пользователя в каждой, но я получаю сообщение об ошибке, когда пользователь уже существует 'botocore.errorfactory.EntityAlreadyExistsException:' или он будет создавать только пользователя в учетной записи до тех пор, пока она не нажмет и не выдаст ошибку, для l oop заканчивается и никогда не создает пользователя в существующих учетных записях в массиве. Я пробовал исключения botocore и перемещал проход исключения в другие строки в коде, когда я делаю это, я не получаю вывод. Также это создает второй набор ключей. Я немного новичок ie с Python ...

import boto3
import pprint
import sys
from botocore.exceptions import ClientError, ParamValidationError
pp = pprint.PrettyPrinter(indent=4)
username='musicman'
Password = 'Welcome'
accounts = ["account1", "account2", "account3", "account4", "account5", "account6"]
try:
for account in accounts:
    boto3.setup_default_session(profile_name=account)
    #brooksprod = boto3.session.Session(profile_name='account1')
    iam = boto3.client('iam')

    # create a user
    iam.create_user( UserName=username)
except Exception:
       pass
response = iam.add_user_to_group(
    GroupName='Admin',
    UserName=username
)
response = iam.create_login_profile(
    UserName= username,
    Password= Password,
    PasswordResetRequired=True
)    
    #pp.pprint(response)
response = iam.get_user(UserName = username)
pp.pprint(response)

response = iam.create_access_key(
    UserName=username
)
#print(response.get('AccessKey','SecretAccessKey'))
pp.pprint(response)

1 Ответ

1 голос
/ 27 марта 2020

Do try/except внутри для l oop:

for account in accounts:
  try:
    boto3.setup_default_session(profile_name=account)
    #brooksprod = boto3.session.Session(profile_name='account1')
    iam = boto3.client('iam')

    # create a user
    iam.create_user( UserName=username)
  except Exception:
    pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...