- ソリューションアーキテクト
- プロジェクトマネージャー
- テクニカルオペレーション
- Other occupations (4)
- Development
- Business
- Other
春休みで、すっかり生活リズムが崩れている、たいがーです。
学生の皆さんは春休み、いかがお過ごしでしょうか。三回生の皆さんは、もうすぐ就職活動解禁ということでそわそわしているかもしれませんね。私もそのうちの一人です。
自己分析をすればするほど、どんどんわからなくなっていく気がして…これでいいのか?という思いで不安ですよね。きっと、多くの人がそういう状況だと信じたいです。笑
そんな感じでほわほわしていますが、今日の振り返りをしていきたいと思います!
今日も前回の続き、Cloud Automaterのハンズオンの事前準備を効率化するツール作成です。前回の内容はこちらからご覧ください~!
https://www.wantedly.com/companies/serverworks/post_articles/154173
AWS Lambdaを使うときは関数宣言が必要
まず、Lambdaの作業に入る前にIAMロールを作成します。今回はEC2のIDを知るために情報を取ってくる必要があるので、IAMロールにEC2ReadOnlyPolicyをつけました。そのロールによって、そのLambdaによってEC2インスタンスの読み取り専用機能が許可されます。
前回までの課題で、ローカル環境ではそのリージョンのインスタンスIDを取り出し、起動ができるようになっていたので、あとはLambdaに突っ込んだら終わり!!と思っていたら、Handlerがないというエラーが…
そもそもLambda関数を作るときには、ハンドラー指定が必須らしく、前回のものだと宣言していない状態だったので、エラーが出ました。
Lambda関数を"一から作る"設定にした際、このようなコードがもともと表示されています。
import json
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
こちらを少し応用して、#TODO implementより下の部分を以前組んだものに応用させました。
前回同様一つのインスタンスしか動かない事態に陥ったので、またインデントをミスしていると思ったのですが、今回は前回と違いました。インスタンスの情報の取ってくる範囲の指定を変えることによって、見事インスタンスをLambdaを使って起動することができました!
開発環境整えることは最初の高い壁
私はエディタにVirtual Studio Codeを使用しているのですが、今日なぜかPythonを実行しようとするとエラーが出て、実行できないという事件が発生しました。前回動いていたのに、なんでなのでしょう。もしかして間違ってどこか消してしまったのか、理由は不明です…
最終的にパソコン上に存在しないドライブを指定していたために発生していたエラーであったため、無事に、またローカル環境でPythonを触れるようになりました。
インターンシップ中は支給されたパソコンを使っています。先日、自分のパソコンで開発環境を整えようと思っていて、途中で挫折したのですが、もう一度チャレンジしてみたいと思います。
辞書型とリスト型の区別
さて、一つのアカウント内でできたということは、すべてのアカウントにあるインスタンスを起動させるという最終ゴールが見えてきました…!
その前にアカウント情報を管理するための事前準備として、辞書型、リスト型の基本からやりなおすために、課題を出していただきました。
初めにリスト型にするところから始まり、その中からある要素だけを取る。次に辞書型変数の要素を指定して出力する。
基本中の基本ですが、難しく考えすぎて意外とてこずりました。準備体操が終わったところで、いよいよ・・・!
ハンズオンのアカウント20個すべてのEC2インスタンスを起動させる。
まず、アカウント情報として、アカウントのアクセスキー、シークレットキーを辞書型にし、さらにアカウント20個をすべてリスト化させます。
とりあえず、いったんそこまで進め、出力すると、リストとしては出力することができました。次は、辞書型の要素を一旦出力。
こちらも出力することができたのですが、アクセスキー、シークレットキーを、それぞれ個々のデータとして出力することが難しく、少しヒントをもらいました。
そこまでできると、あとは一つのアカウントでしていたことと同じように進め、それをfor文で回すと・・・ついに!というところで、今日はタイムオーバー。
少しずつでも、できるようになってきたのでは…?
前よりも、少しずつ理解するのが早くなってきた気がします。最初はPythonも久しぶりでしたし、分からないことだらけだったので、なかなか進めないことも多かったのですが、最初の頃よりはだいぶすんなり理解できるようになってきた気がします。
この調子で、少しずつでも進んでいけたらと思います!
株式会社サーバーワークスでは一緒に働く仲間を募集しています