1

JavascriptファイルにDynamoDBを実装しようとしています。私は連続して複数のチュートリアルを試してみました。私がしようとしているのは、Javascriptコード(HTMLページで実行されている)内からクエリを作成することだけです。残念なことに、私のコードはそれまで立ち上がらない。 AWS-SDKが必要なときにエラーが表示されます。私はNode.jsでaws-sdkをインストールしました。JavascriptでAWSが必要な問題がある

HTML::

<!DOCTYPE html> 
<html> 

<head> 
<script src="http://requirejs.org/docs/release/2.2.0/r.js"></script> 
<script src="boom.js"></script> 
</head> 

<body></body> 

</html> 

のJavaScript(boom.js):

require(['aws-sdk'], function (foo) { 

    var CONF = require("./super_secure_conf.json"); 
    var AWS = require("aws-sdk"); 

    function init(){ 
     AWS.config = new AWS.Config({ 
      access_key_id: CONF.AWS_ACCESS_KEY_ID, 
      secretAccessKey: CONF.AWS_SECRET_ACCESS_KEY, 
      region: "us-east-1" 
     }); 
     DynamoDB = new AWS.DynamoDB(); 

    } 
});  

ファイル "super_secret_conf.json" は、複数のチュートリアルによって混同された後、私は次のコードになってしまいましたAWS資格情報を含むJSONファイル私は以前に~/.aws/credentialsに資格情報を保存しようとしましたが、それは動作しませんでした。 (credentialsをフォルダやファイルにする必要がありますか?私は空白のファイルに証明書を保存しようとしましたが、拡張子はつけませんでした)私はJSONメソッドを使用すると言った別のチュートリアルを続けましたそれはあなたがここに見えるものです)は非常に不安です。

Error: Module name "super_secure_conf.json" has not been loaded yet for context: _. Use require([])

すべてとすべてのヘルプは大歓迎されています。私はまだかかわらず、エラーが発生します。

答えて

1

初めてAWSを呼び出す場合は、fooとなります。そして、あなたはconfig.jsonからのコールバックを待っているわけではありません(あるいはコールバック関数を渡すことさえできます)。パス"./super_secure_conf.json"が実際に仕事に行くされている場合、私はよく分からないが

require(['aws-sdk', "./super_secure_conf.json"], function (AWS, CONF) {  
    function init(){ 
     AWS.config = new AWS.Config({ 
      access_key_id: CONF.AWS_ACCESS_KEY_ID, 
      secretAccessKey: CONF.AWS_SECRET_ACCESS_KEY, 
      region: "us-east-1" 
     }); 
     DynamoDB = new AWS.DynamoDB();  
    } 
});  

:私はあなたのコードは次のように見えるように変更する必要があると考えています。これは、ブラウザ側のJavaScriptアプリケーションではなく、サーバー側のNodeJSアプリケーションでファイルをロードするために使用するパスのように見えます。

このように設定をロードする必要がある理由は、~/.aws/credentials AWS設定を読み込むメソッドがブラウザで実行されているJavaScriptアプリケーションで機能しないためです。私はブラウザでJavaScriptに完全に翻訳されないNodeJSチュートリアルを読んでいると思います。 AWS SDK for JavaScript in the Browserのドキュメントを読むことから始めて、特にConfiguring the SDK in the Browserのページを読むことを強くお勧めします。

+0

ありがとうございます。あなたの答えは問題の半分を解決しましたが、依然として 'IdentityPoolId'を設定する必要がありました。それ以外は、あなたの助けをありがとう! –

関連する問題