【2024/10/23更新】
神アップデートが来ました!!
Lambda関数のコードエディタがVSCodeに!!
https://aws.amazon.com/jp/about-aws/whats-new/2024/10/aws-lambda-code-editor-based-code-oss/
なんと、このエディターの大幅改良により、以下のバグは再現が見られなくなっている模様で、解決されているようにみえます。
時間がかかったけど、ありがとうAWS!
以下は、参考までに残しておきます。
Deployボタンを押して保存したはずなのに
AWS Lambdaでは、いくつかの言語でWeb上のコードエディタで直接コードが編集できます。
ある程度のコードを書いた後、保存するときに押すのが Deploy ボタンです。
以前から Deployボタンを押す直前に入力したいくつかの文字が保存されない 場合がある問題(バグっぽいもの)があり、悩まされています。
再現方法とログ
いつも再現できるか分かりませんが、手元では以下のように実施して一発で再現できました。
Pythonで、一から作成として、普通にサンプルのプログラムを作成します。
そこに、以下の1行を追記します。
print('abcdefghijklmnopqrstuvwxyz')
まず1回目の Deploy ボタンを押します。
z の後に、今度は大文字で ABCDEFGHIJKLMNOPQRSTUVWXYZ
を追記して、2回目の Deploy ボタンを押して更新します。
コードとしては以下が入力された状態です。
print('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
サンプルの入力データで、テストを実行します。→ 最後の3文字が抜け落ちました。
XYZ
が欠けた例
感覚的には、25%以上の確率でこうなります。
原因?
異なるパソコン、異なるWebブラウザ、異なるAWSアカウントでも発生し、Skill Builderの一時的な環境でも発生することを確認していますので、自分の環境の問題ではないでしょう。
内部の動作であれば、推測することしかできないですが、エディタは Cloud9 が使われているようなので、そこへ最後の文字が渡るタイミングより前に、Deployの処理(Zip化とか)が先に動いているのでは?と思ったりします。
回避策
自分でやっているのは、全ての文字を入力した後に 意味のない改行を3~5文字ぐらい入れて、その改行を消す、ということを、Deploy 前に毎回やっています。
一般的なスクリプト言語は、改行の量が多少違ってるぐらいだと全く影響がないですので。
うーん、改善されてほしい
マネージメントコンソールの左下にある feedback
リンクから、ここ1年以内で 日本語で2回、英語で1回、合計3回、フィードバックしていますので、ぜひ中の人はよろしくお願いします。