68

スクリプトで「現在のユーザー」のアカウント IDを取得する必要がありboto3ます。これまでの私の最善の解決策は、現在のユーザーarnを解析することです:

>>> import boto3
>>> account_id = boto3.resource('iam').CurrentUser().arn.split(':')[4]

しかし、もっと「軽量」なアプローチがあるかどうか疑問に思っていました。実際には

>>> timeit.timeit("boto3.resource('iam').CurrentUser().arn",
... 'import boto3', number=10)
4.8895583080002325

CurrentUser実際には、スクリプトにリソースは必要ありません。

4

2 に答える 2

1

編集:呼び出すことができる API があります。mixja の回答を参照してください。

まず、 から直接アカウント ID を取得する方法はありませんboto3。それを伝えることができるローカルに保存された情報はなく、ARN のコンテキスト外でそれを返すサービス API はありません。boto3したがって、ARN を調べずに取得する方法はありません。

第 2 に、クライアントまたはリソースを初めて作成するとき (サービス定義はその場でロードされます) に少しウォームアップ時間がかかるため、 orを使用timeitすると非常に誤解を招く可能性があります。boto3botocore

于 2015-10-27T06:32:46.713 に答える