Alexaスキル開発のバージョン管理はlambdaのエイリアスが超便利だった

Alexaスキル開発のバージョン管理はlambdaのエイリアスが超便利だった

Alexaスキル開発しているとやはりまだ、スマホアプリの開発などに比べるとググっても出てくる情報が非常に少ないので、出来る限り自分が悩んだorハマッた内容は、雑にでもブログに備忘録として残していこうと思います。

執筆者のプログラマとしてのスキルは小学生レベルなので、万が一参考にされる方は話半分でお願いいたします。

開発環境

  • Alexa Developers console
  • エンドポイントLambda (node.js sdk-v2)ブラウザ上の編集

Alexaスキル開発におけるバージョン管理はLambdaエイリアスを使う

サーバー上での開発や、スマホアプリ開発などではバージョン管理にgitを使うと思うのですが、lambdaではamazon様がバージョン管理ツールを用意してくれてます。

  • バージョン
  • エイリアス

どちらも後から編集出来ません。ただ、Alexaスキルをリリースした後に誤ってユーザーが使っているLambda関数を変更してしまうとそのままユーザーに変更内容が反映されてしまいます。

なので、必ずスキルの申請前にスキルのエンドポイントを最新状態のLambda関数ではなく、新しいバージョンを発行し(後述)エンドポイントにそのバージョンを指定するのが良いかと思います。

バージョン指定する問題点

ただ、バージョン指定してしまうとリリース後は、Lambda上のどんな些細に変更もamazon様に申請して申請が通ってから出ないと反省されません。読上げのテキスト・言い回しを微妙に変更するだけでも申請が必要です。

これは、面倒くさい。

そこで、登場するのがエイリアスです。

エイリアスはただのポインタです。(参照といった方がいいのか?)なので、スキルのエンドポイントで指定するのは、直接のバージョンではなく、エイリアスを指定します。

エイリアスを作成すると、指し示すバージョンを確認されます。これはいつでも変更可能です。

スキルのエンドにエイリアスを指定し、amazon様の申請を通す。Lambda側で開発を続け、バグ取りなどが終了すれば、新しいバージョンを発行し、ユーザーが使用しているエイリアスも切り替える。

とういうバージョン管理方法が、今の所ベストでは無いかと。

Lambdaのバージョンの作成方法

Lambdaのアクションからバージョンの発行も、エイリアスの作成も行えます。


バージョンを発行すると、連番でバージョンが発行されます。

この後エイリアスを作成するのですが、上の画像では「releace」というエイリアスを作成し「バージョン16」を指定しています。(おい、綴り・・・。)

ユーザーが使用するスキルはエンドポイントでreleace を指定しています。amazonの申請が通った後に、Lambdaを修正したくなった場合は、最新のLATESTを編集しバージョン17を発行します。

ここでエイリアスreleaceの指定を17に切り替えるとamazonへの申請を経由せずに新たなバージョンのLambdaをユーザーに使ってもらうことが出来ます。

以上。

本日はAlexaスキルのバージョン管理でした。

不備・内容の誤り等有りましたらご指摘いただけると幸いです。