Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用ECONREFUSSED本地连接到发电机B时出现故障_Node.js_Amazon Web Services_Amazon Dynamodb - Fatal编程技术网

Node.js 使用ECONREFUSSED本地连接到发电机B时出现故障

Node.js 使用ECONREFUSSED本地连接到发电机B时出现故障,node.js,amazon-web-services,amazon-dynamodb,Node.js,Amazon Web Services,Amazon Dynamodb,我试图将表单提交保存到DynamoDB表,但是,在本地连接时遇到问题。目前我正在本地运行DynamoDB,但稍后我想将其移回一个可以从Elastic Beanstalk访问的普通DDB实例 我已经下载并解压缩了dynamodb local到一个目录中,并运行了java-Djava.library.path=./DynamoDBLocal_lib-jar DynamoDBLocal.jar-sharedDb 命令,确保我位于适当的目录中。当我运行命令时,我得到以下信息: Initializ

我试图将表单提交保存到DynamoDB表,但是,在本地连接时遇到问题。目前我正在本地运行DynamoDB,但稍后我想将其移回一个可以从Elastic Beanstalk访问的普通DDB实例

我已经下载并解压缩了
dynamodb local
到一个目录中,并运行了
java-Djava.library.path=./DynamoDBLocal_lib-jar DynamoDBLocal.jar-sharedDb
命令,确保我位于适当的目录中。当我运行命令时,我得到以下信息:

    Initializing DynamoDB Local with the following configuration:
    Port:   8000
    InMemory:       false
    DbPath: null
    SharedDb:       true
    shouldDelayTransientStatuses:   false
    CorsParams:     *
此时,我试图在
app.js
中向我的POST端点提交表单,但在运行DynamoDB local的终端中,我遇到了这个重复错误:

    Jan 12, 2019 1:24:25 PM com.almworks.sqlite4java.Internal log
    WARNING: [sqlite] cannot open DB[1]: 
    com.almworks.sqlite4java.SQLiteException: [-91] cannot load library: java.lang.UnsatisfiedLinkError: C:\cygwin64\home\Administrator\dynamodb_local_latest\DynamoDBLocal_lib\sqlite4java-win32-x64.dll: Access is denied
    Jan 12, 2019 1:24:25 PM com.almworks.sqlite4java.Internal log
    SEVERE: [sqlite] SQLiteQueue[shared-local-instance.db]: error running job queue
    com.almworks.sqlite4java.SQLiteException: [-91] cannot load library: java.lang.UnsatisfiedLinkError: C:\cygwin64\home\Administrator\dynamodb_local_latest\DynamoDBLocal_lib\sqlite4java-win32-x64.dll: Access is denied
        at com.almworks.sqlite4java.SQLite.loadLibrary(SQLite.java:97)
        at com.almworks.sqlite4java.SQLiteConnection.open0(SQLiteConnection.java:1441)
        at com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:282)
        at com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:293)
        at com.almworks.sqlite4java.SQLiteQueue.openConnection(SQLiteQueue.java:464)
        at com.almworks.sqlite4java.SQLiteQueue.queueFunction(SQLiteQueue.java:641)
        at com.almworks.sqlite4java.SQLiteQueue.runQueue(SQLiteQueue.java:623)
        at com.almworks.sqlite4java.SQLiteQueue.access$000(SQLiteQueue.java:77)
        at com.almworks.sqlite4java.SQLiteQueue$1.run(SQLiteQueue.java:205)
        at java.base/java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.UnsatisfiedLinkError: C:\cygwin64\home\Administrator\dynamodb_local_latest\DynamoDBLocal_lib\sqlite4java-win32-x64.dll: Access is denied
        at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
        at java.base/java.lang.ClassLoader$NativeLibrary.load(Unknown Source)
        at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(Unknown Source)
        at java.base/java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.base/java.lang.Runtime.load0(Unknown Source)
        at java.base/java.lang.System.load(Unknown Source)
        at com.almworks.sqlite4java.Internal.tryLoadFromPath(Internal.java:340)
        at com.almworks.sqlite4java.Internal.loadLibraryX(Internal.java:117)
        at com.almworks.sqlite4java.SQLite.loadLibrary(SQLite.java:95)
        ... 9 more
在运行节点工作者集群的终端中,我从每个工作者(8)获得以下错误输出,然后是DDB错误:

    Failed to create table in DB.
     { Error: connect ECONNREFUSED 127.0.0.1:8000
        at Object.exports._errnoException (util.js:1022:11)
        at exports._exceptionWithHostPort (util.js:1045:20)
        at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:14)
      message: 'connect ECONNREFUSED 127.0.0.1:8000',
      code: 'NetworkingError',
      errno: 'ECONNREFUSED',
      syscall: 'connect',
      address: '127.0.0.1',
      port: 8000,
      region: 'us-west-2',
      hostname: 'localhost',
      retryable: true,
      time: 2019-01-12T20:31:00.742Z }
    DDB Error: NetworkingError: connect ECONNREFUSED 127.0.0.1:8000
我保证我会完成的。下面是我创建DDB表的代码(我将
const DDB=new AWS.DynamoDB()
作为
app.js
中的参数传递):

我不知道我哪里做错了。然而,我所有的验证和端点都可以工作,当需要创建一个表时,我的代码让我在错误中跌跌撞撞。我也有一种感觉,我可能需要稍微调整一下我的
options.config
文件,但我不确定如何格式化它。提前感谢您的帮助!我试图彻底解决我的问题,但请告诉我是否可以扩展其他内容。

而不是使用您的计算机IP。它会起作用的。
示例:您是否尝试过仅使用AWS CLI进行连接?只是为了确保dynamodb local正确运行,并从混合中删除SDK。感谢您的建议。我试图列出我的表,但它抛出了我在上面发布的错误(与SQLite相关的Git Bash终端错误)。似乎将问题缩小到无法执行
DynamoDBLocal_lib
目录中的任何内容,但这只是我的新假设。仍然得到
errcondensed
NetworkingError
。我希望保留SDK,因为我正在将它移回DynamoDB,以便从Elastic Beanstalk访问。如果这是一个实际的问题,那么我不想承诺使用本地版本(制作脚本?)。还在学习很多AWS。@Kirk我在GitLab CI上运行时也会遇到同样的错误,本地运行非常好。我正在使用
dynamodb-local
版本
0.0.25
。我已经用
child.stdout.on('data',data=>console.log(data.toString())向子进程添加了一个侦听器
child.stderr.on('data',data=>console.error('error!',data.toString())
但它似乎只打印配置详细信息…你找到解决方案了吗?这解决了我的问题,但是我应该如何不必在每次网络连接更改时更改配置?我是Docker的新手,所以我很可能错过了什么。。。
    const AWS = require('aws-sdk');

    function createDDBTable(ddb, tableName) {
        // console.log('ddb:\n',ddb);
        const tableParams = {
            AttributeDefinitions: [
                {
                    AttributeName: 'email',
                    AttributeType: 'S'
                },
                {
                    AttributeName: 'id',
                    AttributeType: 'S'
                }
            ],
            KeySchema: [
               {
                AttributeName: 'email',
                KeyType: 'HASH'
               },
               {
                    AttributeName: 'id',
                    KeyType: 'RANGE'
               }
            ],
            ProvisionedThroughput: {
                ReadCapacityUnits: 8,
                WriteCapacityUnits: 8
            },
            TableName: tableName,
            StreamSpecification: {
                StreamEnabled: false
            }
        };
        ddb.createTable(tableParams, (err, data) => {
            if(err) console.error('Failed to create table in DB.\n', err);
            else console.log('Success creating table!', data);
        })
    }
    module.exports = createDDBTable;