ヤマムギ

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認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

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

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

 - AWS

  関連記事

AWSセルフマネージドAD環境にEC2 Windowsサーバーをドメイン参加する

AWSクイックスタートのActive Directory Domain Serv …

LINE BOT AWARDS 2017に応募しました

LINEの友達追加QRです。 動作のご確認にどうぞ LINE BOT AWARD …

AWS LambdaをVPC設定したときに「The provided execution role does not have permissions to call CreateNetworkInterface on EC2」

The provided execution role does not hav …

EC2 セッションマネージャにEC2インスタンスの一覧から接続できるようになりました

EC2に接続する時に、どうしてもSSHクライアントから接続しないといけない場合を …

AWS APIリクエストにPostmanで署名を作成する

新年明けましておめでとうございます! 署名バージョン4 「AWSはマネジメントコ …

Amazon VPCのAmazonProvidedDNSとほかメモ

VPCユーザーガイドのAmazon DNS について理解するの記載内容について実 …

Amazon SageMaker Canvas Immersion Dayワークショップのエンドツーエンド機械学習の記録

Amazon SageMaker Canvas Immersion Dayという …

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー」執筆裏話

今日2019/4/20発売となりました「AWS認定資格試験テキスト AWS認定ク …

VPCピア接続した先のVPCインターフェイスエンドポイントを使用する

VPC1とVPC2でピア接続しています。 VPC2にはKMSのインターフェイスエ …

AtomエディタでEC2のファイルを直接編集する

Webページを編集していてEC2のファイルをvimエディタでさわったりしています …