.../articles/

Serverless小ネタ

ServerlessでAWS Lambdaへデプロイする時、 `package.json` を読み込んで情報を付与する方法を紹介します。

最近は個人開発をはじめとした様々な案件でServerlessを利用しています。

簡単に言うとAWS LambdaやGoogle Cloud Functionsなどの FaaS と呼ばれる類のリソースの作成や更新といった操作を効率よくできるツールです。

ApexやAWSの提供するSAM CLIなども類似のツールと言えるかと思います。


背景

Serverlessはコマンド一発でデプロイが可能なので、コードや依存パッケージをまとめてからアップロードするなどの作業が不要です。
そのため手元から更新したり、CIから実行するのもとても容易です。

デプロイのフローが完全に一本化されていれば問題はないかもしれませんが、普段はCIからデプロイしてるけどちょっとした修正なので手元からデプロイしたい、または失敗したのでロールバックしたいとなることもあります。

このような時に「今どの状態になってるんだっけ?」となることがたまにあるので、バージョン情報を簡単に付与できたらなと思っていました。

そこで package.json の情報を読み込んでデプロイする時に追加するようにしてみました。


やったこと

追加の情報などを別のYAMLファイルで管理したりはしていましたが、JSONファイルも読み込めることを最近になって知りました。

serverless をnpmやyarnでプロジェクト配下にインストールしていれば package.json があるはずなのでこれの version を追加で読み込みます。

例としてディレクトリにソースコードと package.json, serverless.yml があるとします。

package.json1.0.0 というバージョン情報を持っています。

{
  ...
  "version": "1.0.0",
  ...
}

serverless.yml でこれを読み込むには以下のようにします。

custom:
  package: ${file(./package.json)} # package.jsonを読み込む

この状態であれば ${self:custom.package.version} とすることで 1.0.0 というバージョン情報をserverlessのデプロイ時に付与できるようになりますので VERSION という環境変数に渡してみました。

provider:
  ...
  environment:
    VERSION: ${self:custom.package.version} # 環境変数VERSIONにあてる

バージョン情報を適宜更新するという前提はありますが、これで現在どの状態でデプロイされているかを簡単に確認できるようになりました。

.../articles/

Articles

記事

AWS AmplifyにmonorepoのNext.js(App Router)をデプロイする

AWS AmplifyにmonorepoのNext.js(App Router)をデプロイする

monorepo管理しているNext.jsをAmplifyにデプロイしようとした際にいくつか躓く内容があったのでまとめておきます。

リモートワーク・オンライン会議でも、スムーズに制作を進めるために大切なこと[資料編]

リモートワーク・オンライン会議でも、スムーズに制作を進めるために大切なこと[資料編]

コロナ禍の影響により、リモートワークの導入をおこなっている制作会社も多く、実際に弊社でも導入しています。

売れるECサイトデザインを作るために。参考にしたいおしゃれな事例の探し方。

売れるECサイトデザインを作るために。参考にしたいおしゃれな事例の探し方。

売れるECサイトのデザインは、「この形式」という決まりはありません。ECサイトで売り上げを上げるなら、しっかりとしたコンセプトと、コンセプトを決定するまでのリサーチが必要です。

制作会社の考える、業務効率化ツールのおすすめ。個人でも使いやすいサービスなど。

制作会社の考える、業務効率化ツールのおすすめ。個人でも使いやすいサービスなど。

新型コロナウイルス感染拡大の影響で、リモートワークが主流になり、弊社でも週のほとんどは各自宅で作業をしています。

Figmaでデザインのコミット履歴を残せるプラグイン【Thought Recorder】をリリースしました

Figmaでデザインのコミット履歴を残せるプラグイン【Thought Recorder】をリリースしました

Figmaを利用するWebデザイナーの助けになれると嬉しいです。使い方は本記事をご覧ください。

ECの構築方法、おすすめのECサービス。

ECの構築方法、おすすめのECサービス。

ファッションや家電、スーパーの買い物でさえもECサイトを利用することが当たり前になりました。加えて新型コロナウイルスの影響もあり、弊社にも「どんなプラットフォームを利用したら良いか」「どれくらいコストがかかるのか」などECに関するさまざまなご相談を頂きます。

FastAPIのスキーマクラスをOpenAPIから生成する方法

FastAPIのスキーマクラスをOpenAPIから生成する方法

PythonでAPIを構築する要件があり、フレームワークに比較的モダンなFastAPIを採用しました。FastAPIはバックエンドの開発を行えば自動でOepnApi定義を生成する機能が備わっていますが、今回はこれを使わず、事前に用意したOepnApi定義からFastAPIで利用するスキーマクラスを生成する方法を紹介します。

Laravel 日本一解りやすい全文検索のマイグレーション記載方法解説

Laravel 日本一解りやすい全文検索のマイグレーション記載方法解説

Laravel + MySQLで全文検索を実装する

GiFT1号目新卒デザイナーの2021年振り返り

GiFT1号目新卒デザイナーの2021年振り返り

いつの間に、年末ですね。入社してもう、9ヶ月も立っていたようです。2021年の振り返りを記事にしました。

TimesclaeDBのデータ圧縮に関して

TimesclaeDBのデータ圧縮に関して

TimescaleDBはデータベース内の一部のテーブルを時系列データとして扱えるPostgreSQLの拡張です。PostgreSQLの機能拡張なので非常に手軽に導入できます。今回はこのTimesaceDBの圧縮について調べたので備忘録として書き綴りました。

すべての記事

お問い合わせ