注意点
Macのzip
コマンドで圧縮する場合は毎回ハッシュが変わるので-X
オプションを付ける。
zip -X archive.zip index.js
時刻の情報などが拡張属性として入ってしまうっぽい。
man zip
より↓。
Do not save extra file attributes (Extended Attributes on OS/2, uid/gid and file times on Unix)
参考 http://qiita.com/knaka/items/c8673dfb4ed1b83d3585
SHA256の計算
zipファイルに対して行う。
shasum -a 256 archive.zip | awk '{print $1}' | xxd -r -p | base64
openssl
コマンドでも同じことが出来る。
openssl dgst -binary -sha256 < a.zip | base64
LambdaファンクションのCodeSha256の取得
既存のLambdaファンクションのCodeSha256を取得する。
aws
コマンドで取得する方法。
aws lambda get-function-configuration --function-name ...
{
"CodeSha256": "...",
"FunctionName": "...",
"CodeSize": 200,
"MemorySize": 128,
"FunctionArn": "arn:aws:lambda:...",
"Version": "$LATEST",
"Role": "arn:aws:iam::...",
"Timeout": 5,
"LastModified": "...",
"Handler": "index.handler",
"Runtime": "nodejs4.3",
"Description": "..."
}