Tweet

2018年11月23日金曜日

Amazon Alexa スキル開発 トラブルシューティング_Lambda 関数 「~~~~」のデプロイパッケージが大きすぎて、インラインコード編集を有効にできません。ただし、関数を呼び出すことはできます。

こういう人向け

  • 「Lambda 関数 「test_01」のデプロイパッケージが大きすぎて、インラインコード編集を有効にできません。ただし、関数を呼び出すことはできます。」
    • このメッセージが出て、何も分からない人。
  • Amazon Alexa スキル公式ヘルプページを読み進めてサンプルスキル作成に取り掛かっている人。
  • はじめてAmazon Alexaスキルを取り組む人。
  • Alexaスキル開発トレーニングシリーズ 第1回 初めてのスキル開発を読んでいる人。



おことわり


今回ご紹介する方法は100%正しい方法ではないと思います。
ただ、全く問題なく解決するのでOKという考えです。
出来ればめっちゃ正しい方法をコメントなどでご教示いただきたいです。
私は今回ご紹介する方法で何も問題なくスキル開発出来ております。

また、Amazon公式ヘルプページでサンプルZIPファイルを配布しておりますが、
こちらで配信している内容をそのままではハマる場合が多いのでGoogleドライブでzipファイルを再配布しております。
当ファイル配信で私は収益を得ませんし、営利目的ではございません。


「インラインコード編集」を有効にできません。ただし関数を呼び出すことは出来ますってどういう意味?


インラインコード編集とは、ネットブラウザ上でコーディング出来る機能になります。

<イメージ図>
こんな感じの完成イメージですね。
これはChrome上で動作しているキャプチャーになります。

インラインコード編集のメリット
  • 公式準拠プログラミング環境
  • ブラウザを使って更新するので更新・変更がお手軽(右上から即時保存)
インラインコード編集を使わない場合は、zipファイルの中身を毎回更新して圧縮してアップロードになります。
それに比べたら、いかにインラインコード編集が便利かっていう話です。
めっちゃいいでしょ。

だから、「関数を呼び出すことは出来ます」と書いてあるんですよね。
zipファイル内部を更新してアップロードしても関数自体は機能しますよ、と。

用意するもの

Chromeブラウザ

ファイルダウンロードなどに深い知識がある場合以外はChromeブラウザ使ってください。
こちらからダウンロードできます。 https://www.google.com/intl/ja_ALL/chrome/
(safariでDLすると自動解凍とかされるのでそれを防ぐ為です。)

Chromeブラウザでこちらの配布用URLをお開きください。

私が用意したGoogleドライブです。

右上のダウンロードボタンをクリックしてダウンロード。
zipファイルでダウンロードできたらOK。ファイルの場所は確認しておいてください。
(Google Chrome公式ヘルプ:ファイルをダウンロードする-パソコン

AWS の関数の関数コードにzipファイルをアップロードする


コードエントリタイプ > .zipファイルをアップロード
関数パッケージ > さきほどダウンロードしたzipファイル

キャプチャー通りに行い、右上の「保存」を押します。

フォルダ階層を正しい形に整理する


File not found '/index.js'
こちらのメッセージが出てくると思いますが、スルーでOKです。
正しい位置に「/index.js」が存在していないのでシステムが見つけられませんでしたというメッセージですから。

アップロードしたばかりのフォルダ階層をチェックしてみましょう。


▶test_01(関数名と同一)
 ▶フォルダ「_MACOSX」
 ▶フォルダ「AWS lambda アップロード」
   ▶フォルダ「node_modules」
   ▶ index.js
   ▶package.json

上記のようなフォルダ構造になっております。

上記の中で必要なのは色の付いたファイルだけになりますので、
フォルダ「test_01」の直下に置いてあげましょう。

一番上をファイルを押して一番下のファイルをshiftキー押せば複数選択が出来ます。
青くした状態で「test_01」へドラック&ドロップしてください。
ここらへんはパソコンのフォルダ整理と一緒だから大丈夫だよね・・・?


フォルダ整理後


上記3ファイルが階層が上がり、左側に移動したのが分かりますか。
これでOKです。
不要な「_MACOSX」「AWS lambdaアップロード」フォルダは右クリックで削除しましょう。
deleteという選択肢でOKです。

これで保存すればインラインコード編集が可能となります。




なぜ記事を書いたのか。


結構いろんな人ハマりやすそうなのにネットで調べても一切無かったからです。
iga34が調べた限り、本当の理由は
「Alexa SDKをダウンロードする時に依存ライブラリとしてAWS SDKまでnode_modulesにダウンロードされ、zipサイズが大きくなってしまう為」とか書いてあった。

正直はじめて開発する人にこれ解決しろはキツくないかな…
だからトラブルシューティング記事書きました。

エラーメッセージで検索して、この記事が出てきてくれれば嬉しいね。

0 件のコメント:

コメントを投稿