質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

2547閲覧

google apps script から aws lambda node.jsへの読み替え

blossan

総合スコア154

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2016/12/09 05:37

編集2016/12/09 05:38

御世話になります。
google apps script から aws lambda node.jsへの読み替えをお願いしたいと思います。

[ 背景]
ソラコムというapiを利用したいと考えています。
実行環境としては、aws lambda で言語は node.js になります。
このapiを遠隔的に操作するために、lambda が便利だと分かりましたが、lamdba と node.jsに関して不勉強でうまく実装できない状態です。
ただ、apiということで、http通信をすることは分かり、自分が知っている言語:google apps script でapiの認証結果を受け取ることが出来ました。

コード

google

1function myFunction() { 2 var url = 'https://api.soracom.io/v1/auth'; 3 var headers = { 4 "Accept": "application/json" 5 }; 6 7 var payload = { 8 "email":"登録したメール", 9 "password":"登録したパスワード" 10 }; 11 12 var options = 13 { 14 15 'contentType': 'application/json', 16 "headers":headers, 17 "method": "post", 18 "payload" : JSON.stringify(payload) 19 }; 20 21 var response = UrlFetchApp.fetch(url,options); 22 var data = JSON.parse(response.getContentText()); 23 Logger.log(data); 24} 25

結果

google

1 {apiKey=〇〇, userName=null, operatorId=××, token=△△}

これをベースに、awsで node.js を利用している記事を参考に、以下のソースコードを作成しました。

lambda node.js コード(自作読み替え)

node.js

1// Generated by CoffeeScript 1.10.0 2var https; 3 4https = require('https'); 5 6exports.handler = function(event, context) { 7 var headers,payload,options,req; 8 9 headers = { 10 "Accept": "application/json" 11 }; 12 13 payload = { 14 "email":"登録したメール", 15 "password":"登録したパスワード" 16 }; 17 18 options = { 19 method: 'POST', 20 hostname: 'https://api.soracom.io', 21 port: 443, 22 path: '/v1/auth' 23 }; 24 25 req = https.request(options, function(res) { 26 res.setEncoding('utf8'); 27 return res.on('data', function(d) { 28 console.log(d); 29 context.succeed(d); 30 }); 31 }); 32 req.on('error', function(e) { 33 context.fail(e.message); 34 }); 35 req.write(JSON.stringify(payload)); 36 req.end(); 37}; 38 39return;

エラーがこちらになります。

node.js

1{ 2 "errorMessage": "getaddrinfo ENOTFOUND https://api.soracom.io https://api.soracom.io:443" 3}

【聞きたい内容】
google apps script で実現した結果を、lambda のログで確認したいです。

もし足りない情報がありましたら、コメントを頂ければと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

結論を先に書くと、optionsの指定方法が合っていません。

エラーが出る際には、「そのエラーが何を意味しているのか」「関数等の使用方法は間違っていないか」をきちんと確認する必要があります。
ドキュメントにある通りhttps.requestの呼び出し時のoptions引数の値に使うhostnameに入れるべきなのは文字通りホスト名です。プロトコル名は含みません。

javascript

1 options = { 2 method: 'POST', 3 hostname: 'api.soracom.io', // <-- ここを変える 4 port: 443, 5 path: '/v1/auth' 6 };

こう変えることで、上記のエラーにはならなくなると思います。

投稿2016/12/09 15:07

attakei

総合スコア2738

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

blossan

2016/12/11 11:05

分かりづらい質問に回答して頂きありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問