学期末考査も終わり、ついに三回生が終わりました。テスト期間中はお休みをいただいていたので、約2週間が空いて久しぶりの大阪オフィスです。
2週間ぶりにしようと思うと、やっていたことも見事に頭から抜け去り、思い出すところからスタートだったので、やはり継続は大切だなと改めて感じました。
今回は”Cloud Automatorのハンズオンセミナーの環境準備を効率化するツールの作成”という最終ゴールに向けて、課題を出していただきました!
実行環境を整える段階が第一ステップ
私は少しだけ大学でPythonを触っていたので、サーバーワークスのインターンでもPythonを使っています。VSCode内でPythonをインストールしたので、環境が整っていると思っていたら、不十分だったのですね・・・今まで、自分で開発環境を整える機会もなかったため、今回の最初の関門でした。使いたいIDEを入れていいよ、とおっしゃっていただいたのですが、そもそもなんや、IDEというスタート地点。
検索し、見よう見まねでとりあえず環境が整ったっぽい・・・?社員さんに確認していただき、オッケーをいただいたので、続いての課題。
EC2インスタンスの一覧を取得する
boto3を利用し、EC2 Describe Instanceを実行して、あるアカウントの東京リージョンにあるEC2インスタンスの一覧を取得することでした。describe instancesとはEC2インスタンスの情報を返すためのもの。この課題はなんとなくわかったので、一覧を取得し終了。
その後は、その結果を変数に格納し、型を取得し、判定するという課題です。type関数を使い、型を取得、判定しました。結果は辞書型。その次に、辞書型変数の出力する課題をし、いよいよ今日の難所、IDを取得し、リスト化するという課題に・・・
EC2インスタンスのID"だけ一覧にし、整理する
前に一度使ったことのあるFilitersなどを使うのかと思ったら、大外れでした。boto3を使うとqueryが使えないようだったので、必要部分以外を省き、空のリストを作り、そこにIDのみを追加していく・・・必要のないものだけを省けばいいので簡単そうに見えていたのですが、実際やると、省きすぎてエラーが出たり、逆にいらないところまではいってしまったり、[0]という数値が出てきて、これは何者なのだとなったり・・・1ではなく0番目から数えるため、0が入るのだと教えていただいて、なんとかIDだけを出力しました。
取ってきたIDのインスタンスを起動させる
似たような記事がなかなか見つからず、見つかってもうまくいかずが繰り返された、この課題。
社員の方が紙に書いてくださって解説してくださり、そこからもう一度自分で考え直してようやく成功しました!
2個共のインスタンスを起動する必要性があったのに、後半ずっと1個しか動かず苦労しました・・・
繰り返し、繰り返し。
何回もインデントでミスをする
出力する際のインデントの位置のミスで同じものが二回出力されたり、逆に一個しか出力されなかったり。見直せば防げるミスを連発しました。
今回書いたプログラムは関数になっていたり、関数になっていなかったりと混じってしまっていたため、あとから見返したときに見づらいものになっていました。とりあえず書いてみて、関数に直してみる。何事も繰り返ししてみることが大切だなと感じました。