LoginSignup
1
0

More than 5 years have passed since last update.

[AWS] Lambda Function の CodeSha256 をPythonで計算する

Posted at

やりたいこと

AWSに登録済みのLambda Functionのコードと、これから更新しようとしているコードが同一かどうか判断するには、CodeSha256を比較します。… よね?
わざわざコードを落としてきて比較とかしないですよね?

登録済みのコードのCodeSha256はAWS側で勝手に計算されていますが、手元にあるコードのCodeSha256は自力で計算する必要があります。そういうことをやってくれるツールを使っていなければ。

というわけで、PythonでCodeSha256を計算する方法です。
名前はCodeSha256ですが、単純にSHA256の計算だけすればいいというわけでもなかったりします。

CodeSha256 計算

計算方法

  • zipファイルのバイナリの
  • SHA256を計算し
  • base64エンコードする。

以上。

サンプルコード

前提

  • Python 3.6

コード

python3.6
# coding: utf-8

# required
import hashlib
import base64

# for sample
import json

if __name__ == '__main__':

    # zipファイルをバイナリモードで読み込み
    function_zip_path   = "/path/to/lambda_function.zip"
    f = open(function_zip_path, 'br')
    function_zip_bynary = f.read()
    f.close()

    # sha256算出
    sha256               = hashlib.sha256(function_zip_bynary).digest()
    sha256_base64        = base64.b64encode(sha256)
    sha256_base64_str    = sha256_base64.decode()

    # 表示
    print(json.dumps(sha256_base64_str, indent=2))

base64.b64encode()は bytes を返しますので、最後に.decode()でstrに変換してます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0