Giter VIP home page Giter VIP logo

skill-sample-nodejs-web-api-my-cactus's Introduction

Alexa Web API for Games 公式デモ "my-cactus" 非公式日本語版

⚠️ 注意

本レポジトリは、Amazon公式のAlexa Web API for Gamesのサンプルとして公開されている"skill-sample-nodejs-web-api-my-cactus"をfolkして、kun432が非公式に日本語化したものです。

以下の修正を行っています。

  • 各種メッセージの日本語化
  • AWSリソースのセットアップ先を東京リージョンに変更
  • セットアップ方法を本レポジトリに合わせて修正および補足追加

手元でざっくり動作することは確認していますが、本レポジトリを利用した事によって生ずる如何なる損害についても責任を負いません。予めご了承ください。

また、うまく動作しない場合等は本レポジトリにissueを立ててください。公式のレポジトリにissueや問い合わせを送ることは絶対にやめていただけますようお願いいたします。

セットアップ手順は以下に記載の内容に従えばOKですが、ブログの方にもまとめましたので、そちらもご覧ください。 https://kun432.hatenablog.com/entry/alexa-web-api-for-games-sample-for-japanese

Alexaサボテン育成シミュレーションゲーム

Alexaサボテン育成シミュレーションゲームのリポジトリです。このAlexaスキルでは、サボテンの光と水やりを管理します。ユーザはこまめにチェックインして、サボテンが生き生きと幸せになるように管理しなければなりません。

このスキルは、Alexa Web API for Gamesを使用して、対応デバイス上で3Dグラフィックスを表示します。このゲームは音声で操作するため、Alexaがいる場所であればどこでも完全に遊ぶことができます。

Alexaスキルの利用方法

このプロジェクトはASK CLI V2での利用を想定しています。AWSインフラの使用が前提であり、そのためのAWSアカウントも必要になります。これはASK CLI V2のcfn-deployerを使用して行われます。インフラストラクチャはskill-stack.yamlで定義されています。コードはlambdaディレクトリに定義されています。

レポジトリの取得

このサンプルを実行する場合は、ASK CLI v2を実行できることを確認してください。CLIを使用するためのAWS IAMユーザの設定方法については、テクニカルリファレンスドキュメントを参照してください。

ターミナルから以下を実行してください。

ask new --template-url https://github.com/kun432/skill-sample-nodejs-web-api-my-cactus --template-branch master

質問が表示されたら、AWS with CloudFormation を選択します。

それ以外はそれぞれのデフォルトを選択すれば良いと思います。これでスキルの設定が行われ、ローカルにskill-sample-nodejs-web-api-my-cactusディレクトリが作成されますので、そこに移動します。

cd skill-sample-nodejs-web-api-my-cactus

次に、サンプルをビルドするために、まずnodeのパッケージをビルドします。

  1. cd lambda
  2. npm install
  3. cd ..

そして、CLIに関連付けられたAWSエンティティに対して、次に挙げるリソースを作成・管理するためのアクセスが必要になります: Cloudformation、IAM、AWS Lambda、Cloudfront、S3。AWSコンソールにアクセスし、IAMユーザーに以下のパーミッションを追加します。

たとえば、以下のようなポリシーを追加することで、必要なデプロイアクセスをすべて許可します。

  • AWSLambdaFullAccess
  • IAMFullAccess
  • AmazonS3FullAccess
  • CloudFrontFullAccess
  • AWSCloudFormationFullAccess

これで、このディレクトリから ask deploy を使ってデプロイすることができるようになります。

ask deploy

これにより(Cloudformationの)スタックがセットアップされますが、必要なWebアセットはアップロードされません。アップロードを行うには、cloudformationデプロイで作成したPublicRead S3バケットの名前を取得し、環境変数として設定する必要があります。たとえば以下のようにします。

export MY_CACTUS_S3="ask-pricklypete-default-skillstack-s3webappbucket-1234abc56789"

次に、webappディレクトリに移動して、以下を実行します。

npm install npm run build npm run uploadS3

これでファイルがアップロードされ、テストが可能になり、コードはクラウド上でホストされている公開サイトを指し示します。公開されているリンクの値をローカルのものにオーバーライドしたい場合(たとえば、ローカル環境からアセットを提供している場合など)、Lambdaコンソールを開いて、"Domain" 環境変数をご自身の環境に合わせてでオーバーライドします。詳しい説明は webapp ディレクトリ を参照してください。

Gitレポジトリのクローン

レポジトリに変更を加えたい場合や、以前の方法でスキルを設定している場合は、以下の手順に沿って実施してください。これにより、必要な場合は最新のコードをpullしたり、独自のpullリクエストを作成したりできます。

トップレベルのディレクトリで、以下を実行します。

git init .

以下でoriginを追加します。

git remote add origin https://github.com/alexa/skill-sample-nodejs-web-api-my-cactus.git

もしくは、以下でもOKです。

git remote add origin [email protected]:alexa/skill-sample-nodejs-web-api-my-cactus.git

メインのブランチにupstreamを向けます。

git branch --set-upstream-to=origin/master

これで、pullにより最新の状態に更新できます。

git pull

また、中止する場合は、いつでもブランチをハードリセットできます。

git reset --hard origin/master

これでいつでもコードを最新化することができるようになりました。

Webアプリケーションのセットアップ

Node.jsで書かれたWebアプリケーションのコードや情報は、webappディレクトリ以下にあります。

バグを見つけたら

GitHub issuesを使ってGitHub上でバグをレポートしてください。再現するための手順を含めてください。改善提案も同じところから行えます。

もちろん、修正や改善点については、遠慮なくforkしてpullリクエストを送ってください。

セキュリティ

詳細は、コントリビュートについて を御覧ください。

ライセンス

このライブラリは、Amazon Software Licenseに基づいてライセンスされています。

skill-sample-nodejs-web-api-my-cactus's People

Contributors

joemocode avatar sleepydeveloper avatar kun432 avatar amazon-auto avatar dependabot[bot] avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.