ヤマムギ

growing hard days.

*

AWS Organizationsでアカウントを50作って指定したOUに移動するスクリプト

   

AWS Organizationsでアカウントを50個作る必要がありましたので、Pythonスクリプトで実行しました。
OUに移動するまでを自動化しました。

CLIで実行した場合の課題

アカウント作成の同時実行数が5ですので、作成完了を待たずに6以上になるとリクエスト拒否になります。
OUへの移動もしたいので、作成完了を待つ必要がありましたので、Python SDKのboto3で作成して実行しました。
GitHubにも置いてます。

Pythonのコード

create_accountの後に、move_account してOUに移動したいのですが、create_account直後はまだアカウントIDもないし、作成も完了してないのでmove_accountできません。

そこでOrganizationsのWaiterを探します。
Organizationsには、Clientにget_waiterはありますが、そこで指定するWaiterのクラスはありません。

Waiterが用意されている場合は次のコードでも確認できるのですが、結果の配列は空でした。

検索してたら、create-account.pyに辿り着きまして、カスタムでWaiterを作成されてたので、そのまま使わせていただきました。
こうやってWaiterを作るのですね。

waiter_configでポーリング間隔や確認回数を指定して、CreateAccountStatus.StateがSUCCEEDEDになったらsuccessで、IN_PROGRESSの場合はretry、FAILEDはfailureとしてます。
waiter_configでモデルを定義して、create_waiter_with_clientでOrganizations Clientに関連付けてます。

create_accountレスポンスのCreateAccountStatusのリクエストIDに対してWaiterがポーリングして、successになるまで2秒ごとの再試行を20回繰り返して待ってくれました。

次にアカウントIDの取得ですが、ステータスが更新されたCreateAccountStatusをdescribe_create_account_statusにより現時点の情報を参照して取得しました。
これで無事OUにmove_accountできました。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「AWS教科書 AWS認定デベロッパーアソシエイト テキスト&問題集 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS

  関連記事

Amazon WorkSpaces Web Accessを有効化する

仕事がら、Amazon WorkSpacesをディレクトリも含めて一時的にセット …

AWS Elastic Beanstalkによって作成されたS3バケットはDeleteBucketが拒否されていた

ちょっとした検証をしたあとに、Elastic Beanstalkのアプリケーショ …

「雲勉 第1回【勉強会:新技術好き!】AWSマネージドサービス勉強会」に行ってきました

「雲勉 第1回【勉強会:新技術好き!】AWSマネージドサービス勉強会」に行ってき …

Amazon EC2(Amazon Linux 2)にRedmine3.4をインストール

久しぶりに新しい環境でRedmineを構築したくなり、せっかくなのでAmazon …

CloudWatch インテリジェントオペレーションでこのブログのログを調査してみました

CloudWatch インテリジェントオペレーションを設定しました。 設定 マネ …

新規アカウントでAWS Budgetsの設定をしました

新規で組織を作ってAWS Budgetsを久しぶりに設定しました。 作成してすぐ …

Amazon EC2 Auto Scalingのライフサイクルフック

EC2 Auto Scalingにライフサイクルフックという機能があります。 ス …

CloudFormation StackSetsでOrganizations組織のアカウントに一気にIAMロールを作成した

Organizationsで管理している各アカウントにIAMロールを作成したい場 …

AWS Summit Tokyo 2017 Day3 開場~基調講演~Dev Day Night

AWS Summit Tokyo 2017 参加2日目のDay3です。 基調講演 …

AWS Summit 2016 Tokyoに参加してきました (Day3)

飛天3日目です。 JAWS-UGブースのすぐ前にあったこのお水がめちゃめちゃおい …