python - Boto3 AWS 创建用户 Try catch 不允许 for 循环继续
问题描述
我有这个python脚本,它将遍历我的所有帐户并在每个帐户中创建一个用户,但是当用户已经存在'botocore.errorfactory.EntityAlreadyExistsException:'时出现错误,或者它只会在帐户中创建用户,直到它命中和错误 for 循环结束并且永远不会在数组中的现有帐户中创建用户。我已经尝试了 botocore 异常并将异常传递移动到代码中的其他行,但我没有得到任何输出。这也创建了第二组密钥。我是 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)
解决方案
执行try/except
for 循环内部:
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
推荐阅读
- android - 哪个是颤振更好的做法?
- java - 100% - 40 在 Java 中是如何工作的?
- android - 任务':app:preDebugBuild'的执行失败反应原生android
- css - CSS 类在未设置的地方被拾取
- dialogflow-es - 从 Skype 聊天机器人 Dialogflow 的用户接收文件/图像
- python - 在 postgresql 中取消 plpython 运行时
- unicode - Phantomjs 更改文本符号
- javascript - Bootstrap4:将一些内容放在导航图标的顶部
- c# - c# 是否可以查看用户输入中的拼写错误?
- c# - ASP.NET Web API 2 上没有值的 URL 查询参数