GitリポジトリをAlexa-hostedスキルにインポートする



GitリポジトリをAlexa-hostedスキルにインポートする

Alexa-hostedスキルを作成すると、AlexaはリソースをAWSでプロビジョニングおよび管理します。このサービスには、オンラインのコードエディタまたはAlexa Skills Kitコマンドラインインターフェイス(ASK CLI)やVisual Studio Codeなどのオフラインツールを使用して開発できるコードも保存されます。Alexa-hostedスキルの詳細については、Alexa-hostedスキルを使用してスキルをエンドツーエンドで作成するを参照してください。

開発者コンソールで提供されるテンプレートから作成するほか、公開されているGitプロジェクトをインポートしてAlexa-hostedスキルを作成することもできます。つまり、GitHubGitLabBitbucketなどのプラットフォームでAlexaコミュニティが共有するさまざまなオープンソーステンプレートを使用してスキル開発を始めることができます。

前提条件と要件

以下は、公開されているGitプロジェクトをAlexa-hostedスキルにインポートするための前提条件と要件です。

  • Gitプロジェクトアーカイブのサイズは50 MBを超えてはいけません。
  • Gitプロジェクトでは、Node.jsまたはPythonを使用する必要があります。
  • Gitプロジェクトには、スキルを作成するときにデフォルト言語として選択する言語が含まれている必要があります。
  • Gitプロジェクトのスキルコードには、対話モデルとレスポンスコードが含まれている必要があります。
  • プロジェクトファイルの構造が正しい必要があります。詳細については、サポートされているプロジェクト構造を参照してください。
  • ハンドラーを含むコードファイルの名前は、index.js(Node.jsの場合)またはlambda_function.py(Pythonの場合)にする必要があります。

GitリポジトリをAlexa-hostedスキルにインポートする

GitリポジトリをAlexa-hostedスキルにインポートする

  1. Alexa開発者コンソールを開いて、ログインします。
  2. スキルの作成をクリックします。新しいスキルを作成ページが表示されます。
  3. スキル名に名前を入力します。
  4. デフォルトの言語で言語を選択します。
  5. スキルに追加するモデルを選択カスタムを選択します。
  6. スキルのバックエンドリソースをホスティングする方法を選択で、Alexa-Hosted(Node.js)またはAlexa-Hosted(Python)を選択します。
  7. スキルを作成をクリックします。スキルに追加するテンプレートを選択ページが表示されます。
  8. スキルをインポートをクリックします。スキルをインポートダイアログが表示されます。
  9. インポートするスキルを含むGitリポジトリ(.git)のURLを入力します。
  10. インポートをクリックします。Alexa-hostedスキルを作成していますというメッセージが表示されます。インポートできるAlexaスキルがGitリポジトリに含まれていることを検証した後に、Alexa-hostedスキルが作成されます。

インポート後のタスク

Alexaがホストするスキルをインポートした後、次のような追加のタスクを実行する場合があります。

  • スキルに、Alexa-hostedスキルでサポートされていない依存サービス(DynamoDB、SageMaker、Amazon Translateなど)が含まれている場合は、個人のAWSリソースを使用する必要があります。詳細については、Alexa-hostedスキルで個人のAWSリソースを使用するを参照してください。
  • スキルでアカウントのリンクが必要な場合は、別途設定してください。詳細については、アカウントリンクとはをご覧ください。

サポートされているプロジェクト構造

Alexa-hostedスキルの作成時にインポートするプロジェクトには、特定の構造が必要です。プロジェクト構造には2つの選択肢があります。スキルパッケージ形式またはASK CLI v1形式を使用します。使用するプログラミング言語に対応するプロジェクト構造を選択します。

スキルパッケージの形式(Node.js)

SkillPackageName
├── lambda
│ ├── index.js
│ └── package.json
├── skill-package
│ ├── assets
│ │ └── images
│ │ ├── ja-JP_largeIcon.png
│ │ ├── ja-JP_smallIcon.png
│ │ ├── isp1
│ │ │ ├── ja-JP_largeIcon.png
│ │ │ └── ja-JP_smallIcon.png
│ │ └── isp2
│ │ ├── ja-JP_largeIcon.png
│ │ └── ja-JP_smallIcon.png
│ ├── interactionModels
│ │ └── custom
│ │ └── ja-JP.json
│ └── isps
│ ├── isps.json
│ └── isp2.json
└── skill.json

スキルパッケージの形式(Python)

SkillPackageName
├── lambda
│ ├── lambda_function.py
│ └── requirements.txt
├── skill-package
│ ├── assets
│ │ └── images
│ │ ├── ja-JP_largeIcon.png
│ │ ├── ja-JP_smallIcon.png
│ │ ├── isp1
│ │ │ ├── ja-JP_largeIcon.png
│ │ │ └── ja-JP_smallIcon.png
│ │ └── isp2
│ │ ├── ja-JP_largeIcon.png
│ │ └── ja-JP_smallIcon.png
│ ├── interactionModels
│ │ └── custom
│ │ └── ja-JP.json
│ └── isps
│ ├── isps.json
│ ├── isp1.json
│ └── exampleDirectory
│ └── isp2.json
└── skill.json

ASK CLI v1の形式(Node.js)

├── .ask/config
├── skill.json
├── isps/
├── lambda/
│   ├── index.js
│   └── package.json
├── models
│   └── xx-YY.json

ASK CLI v1の形式(Python.)

├── .ask/config
├── skill.json
├── isps/
├── lambda/
│   ├── lambda_function.py
│   └── requirements.txt
├── models
│   └── xx-YY.json