環境
- Windows 10 Pro 20H2
- docker desktop Version 3.1.0(51484)
docker desktop インストール
-
Docker Desktop for Windows
Get Docker よりインストーラーをダウンロードして実行
ちなみに、私のPCではインストール実行後、以下の問題が出て解決するまで時間がかかりました。
amazonlinux 起動
- docker desktop 起動後、PowerShell より以下のコマンドを実行
docker pull amazonlinux
- docker desktop の images > Images on disk より amazonlinux を RUN ボタンを押して Optional Settings を選択
- Optional Settings で Container Name, Volumes を設定して Run ボタンを押す
Windows のローカルフォルダ D:\lambda を Amazonlinuxコンテナの /windows にマウントする例
# Container Name
lambda
# Host Path
/d/lambda
# Container Path
/windows
- Containers / Apps より amazonlinux の CLI 起動
必要コマンドのインストール
- CLI に入るとroot状態で、まっさらな状態なので yum コマンドにて 諸々インストール
yum -y install util-linux procps wget jq sudo
yum -y groupinstall 'Development tools'
yum -y install zlib-devel openssl-devel
yum -y install libffi-devel
ユーザー作成
useradd username
sudo を利用できるようにする
- visudo で /etc/sudoers を編集
visudo
- コメントアウトを外して保存
# %wheel ALL=(ALL) NOPASSWD: ALL
↓
%wheel ALL=(ALL) NOPASSWD: ALL
- ユーザーを wheel グループに追加
usermod -aG wheel username
- ユーザーにスイッチ
su username
以降、スイッチしたユーザーでPythonなどインストール。
Python3.7のインストール
mkdir -p /tmp/python3.7
cd /tmp/python3.7
wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
tar zxvf Python-3.7.9.tgz
cd Python-3.7.9
./configure
make
sudo make install
python3 --version
aws cli インストール
mkdir -p /tmp/awscli
cd /tmp/awscli
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
lambda 環境構築
python-lambda-local, lambda-uploader を利用する例。
cd ~
python3 -m venv lambda
. ./lambda/bin/activate
pip install -U pip
pip install boto3
pip install python-lambda-local
pip install lambda-uploader
LANG を UTF-8 に設定
~/.bashrc に以下を追加する。
export LANG=ja_JP.utf-8
localtime を UTC から JST に変更
日本との時差が9時間出てしまうのを修正。
date
Mon Mar 1 15:26:48 UTC 2021
ll /etc/localtime
lrwxrwxrwx 1 root root 25 Feb 14 04:21 /etc/localtime -> ../usr/share/zoneinfo/UTC
cd /etc/
sudo ln -sf ../usr/share/zoneinfo/Japan localtime
ll localtime
lrwxrwxrwx 1 root root 27 Mar 1 23:44 localtime -> ../usr/share/zoneinfo/Japan
date
Tue Mar 2 00:26:19 JST 2021
その他
lambda開発に慣れてきたらこの辺りも試したいところです。
参考
- Amazon Linuxでpyminizipがインストールできない - Qiita
- CentOS 7.3 : sudoコマンドのインストール - Qiita
- CentOSでuserをsudo可能にする - Qiita
- Linux での AWS CLI バージョン 2 のインストール、更新、アンインストール - AWS Command Line Interface
- Blue21: Docker コンテナなら誰でも AmazonLinux が使える
- Docker - すでに作ったコンテナでホスト側ディレクトリをマウントするには?|teratail
- 【AWS】python-lambda-localとlambda-uploaderを使ってみた - 学びノート