許してください、私はラムダとノードで全く新しいです。
AWS IoTボタンを使用してピザを注文するために this gitを複製しようとしています。
私の現在のコードは:
var pizzapi = require('dominos');
var myStore = new pizzapi.Store(
{
ID: 'Example'
}
);
var myAddress = new pizzapi.Address(
{
Street: 'Example',
City: 'Example',
Region: 'Example',
PostalCode: 'Example'
}
);
var myCustomer = new pizzapi.Customer(
{
firstName: 'Example',
lastName: 'Example',
address: myAddress,
phone: 'Example',
email: '[email protected]'
}
);
var order = new pizzapi.Order(
{
customer: myCustomer,
storeID: myStore.ID
}
);
var cardNumber='Example';
var cardInfo = new order.PaymentObject();
cardInfo.Amount = order.Amounts.Customer;
cardInfo.Number = cardNumber;
cardInfo.CardType = order.validateCC(cardNumber);
cardInfo.Expiration = 'Example';
cardInfo.SecurityCode = 'Example';
cardInfo.PostalCode = 'Example';
order.Payments.Push(cardInfo);
function orderDominos(event, context) {
var clickType = event.clickType;
switch(clickType.toLowerCase()) {
case "single": {
order.addItem(
new pizzapi.Item(
{
code: 'P_14SCREEN',
options: {},
quantity: 1
}
)
);
break;
}
case "double": {
order.addItem(
new pizzapi.Item(
{
code: 'P_14SCREEN',
options: {},
quantity: 1
}
)
);
break;
}
case "long": {
order.addItem(
new pizzapi.Item(
{
code: 'P_14SCREEN',
options: {},
quantity: 1
}
)
);
break;
}
}
order.validate(
function(result) {
console.log("Order is Validated");
}
);
order.price(
function(result) {
console.log("Order is Priced");
}
);
order.place(
function(result) {
console.log("Price is", result.result.Order.Amounts, "\nEstimated Wait Time",result.result.Order.EstimatedWaitMinutes, "minutes");
console.log("Order placed!");
context.succeed(event);
}
);
}
exports.handler = orderDominos;
ファイル構造は次のとおりです。
ファイルを圧縮し、Lambdaにアップロードし、ヘッダーを「index.handler」にポイントしました
私は何を間違えていますか?
編集:エラー
Unable to import module 'orderDominos': Error
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/var/task/node_modules/dominos/src/http-json.js:1:74)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
私の場合、Handler
をindex.handler
として言及しましたが、ルートファイル名はapp.js
です。これをindex.js
に変更すると機能しました。
また、Zipファイルにindex.js, node_modules and package.json
が直接含まれていることを確認してください。
する必要があります:
Zip file --> index.js
package.json
node_modules
ない
Zip file --> some_folder_name --> index.js
package.json
node_modules
'node_modules'フォルダーのアクセス許可を777に変更し、zip圧縮してアップロードした後、それは機能していました。
この問題にも遭遇しました。私にとってそれを解決したのは、Windowsマシンでファイルパスが長すぎることを認識することでした。 zip圧縮した後、node_modulesの内容が空であることに気付きました。 zip用のファイルをより高いレベルのパスにコピーしました。 C:\ User \および指定されたファイルを圧縮します。お役に立てれば!
私のために働いたのは、次のファイルを圧縮してZIPをアップロードすることでした(フォルダにnpmインストールを行った後):
私は同じ問題を抱えていて、以下の手順で解決しました
cd foldername
Zip -r foldername.Zip *
Javascriptファイルa.jsで言う
var func = function(){
}
export.func = func ;
Index.jsで
var a = require('a.js')
exports.handler(event, context, callback){
a.func
}