ASK CLI v1からv2への移行ガイド



ASK CLI v1からv2への移行ガイド

このガイドでは、ASK CLI v1とv2の違い、およびASK CLI v2で同様に動作させるために必要な手順を説明します。

CLI v2を使ったデプロイに必要な新しいスキルプロジェクト構造

ASK CLI 1.xで作成したスキルをASK CLI v2でデプロイするには、プロジェクト構造を更新する必要があります。新しい形式にプロジェクトをアップグレードするには、必要な変更を行う際にask util upgrade-projectコマンドを使います。

アップグレードするには、次の手順を実行します。

  1. ASK CLI 1.xを使用してスキルをデプロイします。
     $ ask deploy
    
  2. ASK CLI v2をインストールします。
     $ npm install -g ask-cli@2
    
  3. ASK CLI v2でスキルプロジェクトをアップグレードします。プロジェクトのルートディレクトリから、次のコマンドを実行します。
     $ ask util upgrade-project
    

    コマンドにより、CLI v1プロジェクト構造に以下の変更が加えられます。

    プロジェクトコンポーネント v1.x v2.x
    プロジェクトコンフィギュレーション .ask/config ask-resources.json
    スキルパッケージ skill.json skill-package/skill.json
      models/xx-YY.json skill-package/interactionModels/xx-YY.json
      isps/ skill-package/isps/
     
    スキルコード lambda/ lambda/
    スキルホスティングインフラストラクチャ なし infrastructure/

    アップグレードの前に、v1プロジェクトのコピーを含む./legacyという非表示フォルダーも作成されます。アップグレードが成功しなかった場合は、./legacyフォルダーのコンテンツを使ってスキルプロジェクトを前の状態に復元します。

  4. アップグレードが完了したら、CLI v2のdeployコマンドを使ってアップグレードできたことを確認します。
     $ ask deploy
    

注:

  • upgrade-projectコマンドは、CLI v1を使ってプロジェクトを作成したことを前提にしています。
  • 既存のAWSリソースは変更されません。ASK CLI v2は、スキルに既存のLambda ARN(複数可)を使用します。
  • hooks/はプロジェクトテンプレートから削除され、デプロイの際に不要となります。

アップグレードプロセスで問題が発生した場合は、GitHubで課題(Issue)を作成してください。

ask apiask smapiに置き換え

ASK CLI v2では、ask apiコマンドがask smapiコマンドに置き換えられ、コマンドがスキル管理API(SMAPI)と対話することがわかるようになりました。

ask initask configureに置き換え

ASK CLI v2では、ask initコマンドがask configureコマンドに置き換えられ、コマンドの用途がわかるようになりました。

ASK CLIを使ってデプロイする既存のスキルプロジェクトの初期化にask initを追加

ASK CLI v2では、ASK CLIを使ってデプロイする既存のスキルプロジェクトの初期化にask initを使うようになりました。

Alexa-hostedスキルの場合はask deployの代わりにgit pushを使用

Alexa-hostedスキルの場合、リモートのAlexa-hostedスキルのmasterブランチをデプロイする際に、ASK CLI v2ではgit pushを使用する必要があります。ask deployをAlexa-hostedスキルに実行しても何も変わりません。

ask created-hosted-skillの削除に伴いask newを使用

ASK CLI v2では、Alexa-hostedスキルの作成に使用していたask create-hosted-skillが削除されました。CLI v2でAlexa-hostedスキルを作成するには、ask newを実行し、ホスティングソリューションとしてAlexa-hostedを選択します。

ask cloneを削除

ASK CLI v2では、AWSでホストされるスキルのローカルマシンへのクローン作成に使用していたcloneコマンドが削除されました。

AWS Lambdaでホストされるスキルコードをローカルマシンに移行するには、AWS Lambdaからスキルコードをエクスポートします。スキルコードをダウンロードしたら、プロジェクトディレクトリ内でask initを実行してAlexaのスキルパッケージリソースをダウンロードし、ASK CLIを使ったデプロイ用にプロジェクトをセットアップします。

Alexa-hostedスキルのコードをローカルマシンに移行するには、Alexa-hostedスキルのスキルIDを指定してask init --hosted-skill-id <スキルID>を実行します。

高レベルのISPコマンド、addremovestatusを削除

ASK CLI v2では、スキルの追加、削除、スキルへのISPの変更ステータスの確認に使用していた高レベルコマンドのaddremovestatusが削除されました。今後、ISPリソースはスキルパッケージリソースで管理されます。ISP JSONファイルの追加と削除は、スキルプロジェクトのskill-package/ispsディレクトリから直接実行し、スキルをデプロイできます。

ask simulateを削除

ASK CLI v2では、高レベルコマンドのsimulateが削除されました。スキルをシミュレートしてシミュレーション結果を取得するには、次の2つのコマンドを使用します。

  1. simulate-skill
  2. get-skill-simulation

ask validateを削除

ASK CLI v2では、高レベルコマンドのvalidateが削除されました。スキルを検証して検証結果を取得するには、次の2つのコマンドを使用します。

  1. submit-skill-validation
  2. get-skill-validations

ask lambdaを削除

ASK CLI v2では、AWS Lambdaのダウンロードとアップロードに使用していたlambdaコマンドが削除されました。AWS CLIをインストールして、AWS Lambda関数を直接管理します。

ask diffを削除

ASK CLI v2では、ローカルおよびリモートのAlexaスキルリソースの比較に使用していたdiffコマンドが削除されました。正式なソースコードを常にローカルリポジトリに保持してから、リモートリポジトリにプッシュして変更をデプロイするようにしてください。