x-blood / alexa-sounds-of-rain

Alexa custom skill to play rain sound.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CircleCI

alexa-sounds-of-rain

五月雨(さみだれ)の音

セットアップ

node.jsのセットアップ(Linux OR Mac)

nvmがインストールされていることが前提

# nvmのバージョン確認
nvm --version

# Node.jsのインストール
nvm install 14.17.0

# Node.jsのバージョン確認
node -v

推奨:nvmのデフォルト設定(Linux OR Mac)

# デフォルトのNode.jsのバージョン指定
nvm alias default v14.17.0

必要な外部ライブラリのインストール

lambdaハンドラー

cd src/handlers
npm install

テスト

npm install -g chai
npm install -g mocha
cd test
npm install

ローカルテスト実行コマンド

mocha test/alexa-sounds-of-rain-tests.js

SAM LOCALによるローカル環境での動作確認方法

sam local invoke "serverlessFunction" --event "./test/event/SoundsOfRainIntent.json"

ASK CLIによるシミュレート

# 初期化(※profileはxbloodを指定←awsとはまた別)
ask init

# シミュレートの実行(LaunchRequest)
ask simulate --text "さみだれのおとを開いて" --locale ja-JP --skill-id ${ALEXA_SOUNDS_OF_RAIN_APP_ID}

# シミュレートの実行(SoundOfRainIntent)
ask simulate --text "リラックスしたい" --locale ja-JP --skill-id ${ALEXA_SOUNDS_OF_RAIN_APP_ID}

使用する環境変数

事前に下記の環境変数が定義されていること。
※exportsコマンドなどを用いてデプロイシェルから値を取得できるようにしておくこと。

項目名 説明
ALEXA_SOUNDS_OF_RAIN_SOUND_FILE_BASE_URL サウンドファイルが保存されているURL
ALEXA_SOUNDS_OF_RAIN_SOUND_FILE_BASE_NAME サウンドファイルの連番を付与する前の基本名
ALEXA_SOUNDS_OF_RAIN_APP_ID スキルID
ALEXA_SOUNDS_OF_RAIN_STAGE デプロイ対象の指定。"dev" or "prod"

Lambdaのエイリアス指定一覧

リリース(公開・再公開)する時のエンドポイントはエイリアスを指定している

エイリアス名 バージョン名 説明
prod $LATEST Production environment

デプロイコマンド

内容はデプロイシェル参照

sh ./deploy.sh

Lambdaファクションの本番環境デプロイ手順

新規

  1. 環境変数 ALEXA_SOUNDS_OF_RAIN_STAGEprod を指定する
  2. sh ./deploy.sh コマンドを実行し、LambdaファンクションをAWSにデプロイする
  3. エイリアス名 prod作成 する。この時、Versionは $LATEST を指定する
  4. エイリアス prod のトリガーに Alexa Skills Kitを設定する。スキルIDを入力する
  5. テストコンソールおよび実機で動作確認する

更新

  1. 環境変数 ALEXA_SOUNDS_OF_RAIN_STAGEprod を指定する
  2. sh ./deploy.sh コマンドを実行し、LambdaファンクションをAWSにデプロイする
  3. テストコンソールおよび実機で動作確認する

S3バケットのスタック作成(1度きりの作業)

# 検証実行
aws cloudformation validate-template \
  --template-body file://s3package.yml \
  --profile xblood

# スタックの作成
aws cloudformation create-stack \
  --stack-name alexa-sounds-of-rain-s3-buckets \
  --template-body file://s3package.yml \
  --profile xblood

# スタックの更新
aws cloudformation update-stack \
  --stack-name alexa-sounds-of-rain-s3-buckets \
  --template-body file://s3package.yml \
  --profile xblood

# スタックの削除
aws cloudformation delete-stack \
  --stack-name alexa-sounds-of-rain-s3-buckets \
  --profile xblood

参考情報

About

Alexa custom skill to play rain sound.

License:Apache License 2.0


Languages

Language:JavaScript 72.4%Language:HCL 20.6%Language:Shell 6.9%