空飛ぶITコンサルタント

中小企業診断士が「AI」「パン」「補助金」について語ります

AWS LambdaでPythonを使う時、気をつける5つの事

中小企業診断士(登録予定)のヨシダです。GWはいかがお過ごしですか。

私は下の写真のように家族で野球を見に行ったりしながら、空き時間AWS LambdaAWS CloudWatchをを使って、openWeatherMapから気象情報を取得するアプリを作っていました。

f:id:yoshidaagri:20180505134532j:plain
(問題です。このドームはどのドームでしょう?)

その際、Pythonのお作法や、AWS Lambdaのクセに苦労したのでご紹介します。

私は経営戦略が得意で、特にマーケティングや販売促進、SEO対策に知見を持ちますが、開発者としては並、黄昏開発者です。

 

1.[AWS Lambda]ファイルはプログラム実行ディレクトリに作れない

AWSさん「S3があるんだから勝手な場所に、一時ファイル作るのは禁止」

まあ理解出来ますが、お作法わかりにくいんですよねAWSのマニュアル。

 

2.[AWS Lambda]LambdaUpLoaderが作るZIPファイルは激重

AWS Lambdaで標準準備されているライブラリを使いこなせればベストなのですが、黄昏開発者のヨシダにとって、初体験のpythonではWeb記事のパズルプログラミングが限界です。記事が少ないAWS Lambdaのライブラリ利用は敷居が高いです。

docs.aws.amazon.com

故にLambda UpLoaderを使って開発環境のライブラリもまとめてUPするのですが、「あれ?28Mbyte??」と激重。ダイエットどうにかならないでしょうか?

誰かAWS標準ライブラリの使い方ご教示いただけないでしょうか...

3.[AWS CloudWatch]cronはUTC基準

AWSさん「無料枠でcron実行させてやるから黙ってろ」

いやいや、1ドル払っているはずですが...という反論は野暮ですので辞めましょう。

cronはUTC基準です。JST基準の時間で設定できないもんでしょうか。

 

4.[Python]datetimeの使い方が面倒

datatime関数から現在時刻を取得する時に現在日付を取得するとき、なぜdatetime.datetime.now()とネストしてnow()を指定しないと駄目なんですか?聞いた100人全員「面倒」って言いますよコレ!Way Python!!

 

5.[AWS Lambda]boto3でCSVファイルに追記ができない

これは困りました。s3の特定バケットCSVファイルを作り、1時間おきにファイルにAPI取得データを追記する、というプログラムを簡単に書こうを思い立つも、boto3ライブラリのadd関数は完全上書き。Delete-Insert、OH MY GOD!

 

以上です。ブログ機能の見たまま編集モードを使っていた為、ソースコードのハイライトが面倒です。サンプルをご覧いただきたい方はQiitaにも同じ記事をソースコード付きで載せましたのでご確認願います。

 

 

にほんブログ村 士業ブログ 中小企業診断士へ
にほんブログ村

にほんブログ村 資格ブログ IT系資格へ
にほんブログ村