Lambda レイヤーにライブラリを追加する ( Terraform 編)
概要
Lambda から Terraform コマンドを利用できるようにするため、Lambda レイヤーに Terraform を追加します。
Lambda レイヤーに Terraform を追加する手順
最終的なデプロイパッケージ( zip ファイルアーカイブ)のフォルダ構成
Copied!
.
└── bin
└── terraform
作業用ディレクトリとレイヤーパスの作成
Copied!
mkdir -p ~/terraform_layer/bin
Terraform のダウンロード
bin
ディレクトリに Terraform のバイナリーファイルを追加します。
Copied!
cd ~/terraform_layer/bin
# wget もしくは curl いづれかのコマンドで Terraform のバイナリーファイルをダウンロードします。
# Lamda レイヤーを使用する Lambda 関数の アーキテクチャが x86_64 の場合は以下の URL からダウンロードします。
wget https://releases.hashicorp.com/terraform/1.1.2/terraform_1.1.2_linux_amd64.zip
curl -O https://releases.hashicorp.com/terraform/1.1.2/terraform_1.1.2_linux_amd64.zip
# Lamda レイヤーを使用する Lambda 関数の アーキテクチャが arm64 の場合は以下の URL からダウンロードします。
wget https://releases.hashicorp.com/terraform/1.1.2/terraform_1.1.2_linux_arm64.zip
curl -O https://releases.hashicorp.com/terraform/1.1.2/terraform_1.1.2_linux_arm64.zip
# ファイルを解凍します。
unzip terraform_1.1.2_linux_amd64.zip
# 実行権限を付与しておきます。
chmod 755 terraform
デプロイパッケージ化( zip ファイルアーカイブ)
Copied!
cd ~/terraform_layer
zip -r9 terraform_layer.zip bin
Lambda レイヤーの作成
デプロイパッケージを使用した Lambda レイヤーの作成手順はこちらにまとめてあります。
動作確認
作成した Lambda レイヤーを使用する Lambda 関数を作成し、テスト実行してみます。
使用するカスタムランタイムはなんでもいいですが、本記事ではカスタムランタイムである Amazon Linux 2 を使用します。
特にエラーが発生せず、実行結果のログに terraform のバージョンが表示されていれば成功です。
Copied!
function handler () {
EVENT_DATA=$1
terraform --version
RESPONSE="{\"statusCode\": 200, \"body\": \"Hello from Lambda!\"}"
echo $RESPONSE
}
個人開発したサービス