4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BeeXAdvent Calendar 2024

Day 15

「.S3key」と「asset:path」とは何か

Last updated at Posted at 2024-12-14

今回起きたこと

cdkバージョンアップ対応のため「aws-cdk」と「aws-cdk-lib」を更新しました。
その後、cdk diffで差分を取ったところ下記のような差分が出ておりました。
初見の差分だったため、今回は「s3key」と「asset:path」について調べてみました。

Resources
[~] AWS::Lambda::Function Custom::ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
 ├─ [~] Code
 │   └─ [~] .S3Key:
 │       ├─ [-] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.zip
 │       └─ [+] YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY.zip
 └─ [~] Metadata
     └─ [~] .aws:asset:path:
         ├─ [-] asset.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
         └─ [+] asset.YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

結論

CDKではビルド時にLambda のコード(アセット)のハッシュ値を計算して、差分の有無を判断している。
CDKのバージョンを変更すると、一部パッケージでアセットのハッシュ値計算方法が変わるため、差分が出てしまっていた。

調べてわかったこと

.S3keyとは

Cloudformation(CDKも)からLambdaを作成する際にソースコードをテンプレート外に置く場合に使用。
zip形式であらかじめ、S3バケットに配置しておく。

  • S3Bucket:S3のバケット名
  • S3key:S3バケット内でのオブジェクトのパス(暗号化鍵だと思っていた。。。)

asset:pathとは

assetとは、「本体のソースコードとは別にアプリで必要なもの」のこと。
assetpathとは、そのまま「アセットが格納されている場所のパス」のこと。

AWS CDK のアセットは以下の2種類がある

  • ファイルアセット
    • JSONファイルやLambdaコード一式を含むディレクトリなど
  • イメージアセット
    • DockerfileやDockerイメージのビルドに必要なファイル一式を含むディレクトリ

assetが格納される場所を「アセットストア」という。

  • ファイルアセット
    • S3
  • イメージアセット
    • ECR

参考

[DevAx::connect番外編] CDK実践勉強会の資料およびQ&A公開
S3Key of bundled lambda asset changes on every run in Github Actions workflow
CloudFormationでAWS Lambdaを作成・更新する際のベストプラクティス
もっとじっくり AWS CDK のコンセプト

4
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
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?