km_output

お勉強と趣味のアウトプット

【AWS】CloudFormationテンプレート内に日本語(マルチバイト文字)が使えなくて英語力を試された話

英語表現を知っていると捗るんだろうなあ。

実現したいこと

  • CloudFormationテンプレートを使ってLambda関数を新規作成したい。

もともとCloudFormationテンプレートで構築した環境に、Lambda関数を新規作成して連携させたい。

ハマったところ、エラー内容

CloudFormation>変更スタック作成画面にてS3にアップロードしたテンプレートのURLを貼りつけ、「次へ」ボタン押すとエラーになった。

今回お目にかかったのは以下のエラー。

Cannot parse template as YAML : special characters are not allowed

解決方法、結論

Lambda関数のソースコード内のコメントに日本語(=マルチバイト文字)を含めていたのでエラーが出ていた。

日本語を全て英語に直したところ、エラーもなくすんなり変更セットの作成完了。

エンジニアなら誰しも日本語を英語で言い換える場面があると思うのだが、こういうとき「どのレベルの英語を採用すべきか」で悩む。

万人が分かるように易しい、かつこちらの意図が伝わるような英語表現で書かないといけないからだ。

(文法よりも伝わりやすさ重視なので造語ちっくな英語もよく見かける)

今回は「Lambda関数の中で特定の条件に合致した場合、別のLambda関数を非同期処理で呼び出す部分」の説明に少し悩んだ。

該当箇所は以下。

# Lambda asynchronous call
    lambda_asynchronous_call = os.environ['lambda_asynchronous_call']
    response = boto3.client('lambda').invoke(
      FunctionName=lambda_asynchronous_call,
      InvocationType='Event',
      Payload=data
    ) 

これだとコメントの意味ないよなあ、と思いつつも、他になんて書けばいいか分からなかった。

コメントなくしたらなくしたで、この処理注目されずにスルーされるのが怖い。

ソースレビューしてもらえる環境で働けるように精進せねば。