AWSSNSからLINEへ通知を行うことが出来たので、備忘録として残します。
今回紹介する方法は、以下の図のような構成となります。
1、LINE Notify Tokenの発行
SAMCLIを実行する前に、「LINE Notify Token」を発行します。このトークンによって、通知先を選択できます。
1-1、ログインページへのアクセス
以下のページにアクセスし、右上の「ログイン」をクリックします。
1-2、認証情報の入力
メールアドレス・パスワードを設定します。
まだ、メールアドレス・パスワードを設定していない場合は、以下ページを参照して設定します。
1-3、トークン設定ページの表示
画面右上のユーザー名をクリックし、「マイページ」をクリックします。
1-4、トークン発行
「トークンを発行する」をクリックします。
トークン名とトークルームを設定します。
自分自身だけに通知をする場合は、図のように設定します。
表示されたトークンを、メモ帳などにコピーします。
※ここで表示されたトークンは再表示できません。
2、AWS SNSのセットアップ
AWS SNSからLineNotifyを利用できるよう構成します。
構成はSAMCLIを使用して行います。SAMCLIの実行環境がない場合は、「3、SAMCLIのセットアップ」の記事を参照してください。
2-1、設定ファイルのダウンロード
任意のディレクトリで以下のコマンドを実行して、構成ファイルをダウンロードします。
git clone https://github.com/nakamura-ryo727/Line_Notify_from_AWS_SNS.git
2-2、SNSの構成
以下のコマンドを実行して、AWS SNSを構成します。
sam deploy -g -t ./Line_Notify_from_AWS_SNS/template.yaml
入力箇所では以下のように入力します。
Configuring SAM deploy
======================
Looking for config file [samconfig.toml] : Not found
Setting default arguments for 'sam deploy'
=========================================
Stack Name [sam-app]: Line-Notify-From-AWS-SNS
AWS Region [us-east-1]: ap-northeast-1
Parameter FunctionName []: Line-Notify-From-AWS-SNS
Parameter SNSTopic []: Line-Notify-From-AWS-SNS
Parameter LINENOTIFYTOKEN []:
#Shows you resources changes to be deployed and require a 'Y' to initiate deploy
Confirm changes before deploy [y/N]: y
#SAM needs permission to be able to create roles to connect to the resources in your template
Allow SAM CLI IAM role creation [Y/n]:
Save arguments to configuration file [Y/n]:
SAM configuration file [samconfig.toml]:
SAM configuration environment [default]:
- Stack Name:CloudFormationのスタック名(_を使用することはできません)
- AWS Region:デプロイするリージョン
- FunctionName:Lambda関数名
- SNSTopic:SNSTopic名
- LINENOTIFYTOKEN:「1-4」で取得したトークン
3、SAMCLIのセットアップ
ここではSAMCLIのセットアップ方法について説明します。
ここで紹介する方法は以下の環境で実行することを想定しています。
Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-1012-raspi aarch64)
AWS公式の手順で構成する場合は、以下を参照してください。
3-1、パッケージのインストール
以下のコマンドを実行して、必要なパッケージをインストールします。
sudo apt-get install curl unzip zlib1g-dev git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev
3-2、awscliのインストール
以下のコマンドを実行して、awscliをインストールします。
curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
-->aws-cli/~~が表示されること
3-3、Pythonのインストール
3-3-1、pyenvのインストール
以下のコマンドを実行して、pyenvをインストールします。
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
3-3-2、Pythonのインストール
以下のコマンドを実行して、Pythonをインストールします。
※終了するまで、時間がかかります。
pyenv install 3.8.0
pyenv global 3.8.0
3-4、SAMCLIのインストール
以下のコマンドを実行して、SAMCLIをインストールします。
pip install aws-sam-cli
sam --version
->SAM CLI, version X.X.X
3-5、認証情報の設定
以下のコマンドを実行して、認証情報を設定します。
※事前にアクセスキー・シークレットキーを取得しておきます。
aws configure
AWS Access Key ID [None]: XXXXXXXXXXXX
AWS Secret Access Key [None]: XXXXXXXXXXXX
Default region name [None]:
Default output format [None]: