コマンドラインからAlexaスキルをデプロイするときのLambda関数名を変更する方法


はじめに

こちらの記事でコマンドラインからAlexaスキルをデプロイする手順について書きました。
その中で、AWS Lambdaにデプロイされる関数名が以下のようにいくつかの情報が付与された形式で作成され、それを変更する方法があると述べました。

今回は、その方法についてです。

手順紹介

スキルのプロジェクトフォルダに移動してください。

その中に「.ask」というフォルダがあるので、移動してください。

「.ask」フォルダ内のconfigファイルをテキストエディタで開いてください。

configファイルの中身は、デプロイしたことがあるかないかで変わります。

また、以下の説明はスキル作成時に以下のコマンドで作成したことを前提としています。

> ask new --skill-name MyFirstSkill --lambda-name alexa-skill-MyFirstSkill

まだ一度もデプロイしたことがない場合

configファイルの中身は以下のようなJSON形式のデータになっています。

{
  "deploy_settings": {
    "default": {
      "skill_id": "",
      "was_cloned": false,
      "merge": {
        "manifest": {
          "apis": {
            "custom": {
              "endpoint": {
                "uri": "ask-custom-alexa-skill-MyFirstSkill-default"
              }
            }
          }
        }
      }
    }
  }
}

この中で"uri"の項目が、AWS LambdaにLambda関数が配置されるときの名前になります。
ここを希望の名前に変更すればOKです。
例えば以下のように。

{
  "deploy_settings": {
    "default": {
      "skill_id": "",
      "was_cloned": false,
      "merge": {
        "manifest": {
          "apis": {
            "custom": {
              "endpoint": {
                "uri": "ask-alexa-skill-MyFirstSkill"
              }
            }
          }
        }
      }
    }
  }
}

それではデプロイしてみましょう。

> ask deploy

AWS Lambdaを確認してみると、関数名が指定したとおりになっていますね。

注意:
頭にask-をつけたままにしてあるのは、ask cliから利用する際に用いるユーザーのLambdaに関する権限設定において、以下のような制限をかけているからです。

ask-*

この辺の権限を緩めればより自由な変更を加えることができます。
しかし、権限の設定は慎重に行ってください。

デプロイ済みの場合

後ほど。