首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongodb连接从openwhisk动作超时

Mongodb连接从openwhisk动作超时
EN

Stack Overflow用户
提问于 2022-11-22 03:00:20
回答 1查看 21关注 0票数 0

我正在通过我的开发盒上的jar运行openwhisk。我可以从节点和命令行连接到mongo。然而,当我尝试从一个启动器动作连接时,它就超时了。

curl -u $tok "http://172.17.0.1:3233/api/v1/namespaces/_/actions/openwhiskmongo?blocking=true&result=true" -X POST -H "Content-Type: application/json" -d '{"username":"jonboy"}' {"error":{"message":"Operation users.findOne()buffering timed out after 10000ms","name":"MongooseError","stack":"MongooseError: Operationusers.findOne() buffering timed out after 10000ms\n at Timeout.<anonymous> (/nodejsAction/hTFYlZze/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:153:23)\n at listOnTimeout (internal/timers.js:557:17)\n at processTimers (internal/timers.js:500:7)"}}

Mongo从命令行连接良好。

代码语言:javascript
复制
mongo mongodb://172.17.0.1
MongoDB shell version v4.4.17
connecting to: mongodb://172.17.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("9777739e-0a81-4ef4-852a-a19a515ac376") }
MongoDB server version: 4.4.17
---
The server generated these startup warnings when booting: 
        2022-11-21T21:32:14.551-05:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem
        2022-11-21T21:32:16.601-05:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---
>

172.17.0.1应通过码头进入。

代码语言:javascript
复制
ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:efff:fecc:f630  prefixlen 64  scopeid 0x20<link>
        ether 02:42:ef:cc:f6:30  txqueuelen 0  (Ethernet)
        RX packets 153  bytes 11410 (11.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 278  bytes 7650054 (7.6 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

这是我的行动守则。

openmongowhisk.js

代码语言:javascript
复制
const mongoose = require('mongoose');

async function main(args) {
    require('./config/database');
    require('./models/user');
    const User = mongoose.model('User');

    const name = args && args.username;
    var result = 'not initialized';

    var user = await User.findOne({username: name}).exec();

    if (user) {
      result = 'found';
    } else {
      result = 'not found';
    }

    return { user: user, result: result };
}

exports.main = main;

database.js

代码语言:javascript
复制
const mongoose = require('mongoose');

const devConnection = "mongodb://172.17.0.1";

mongoose.connect(devConnection, {
    useNewUrlParser: true,
    useUnifiedTopology: true
});

mongoose.connection.on('connected', () => {
    console.log('Database connected');
});

user.js

代码语言:javascript
复制
const mongoose = require('mongoose');

const UserSchema = new mongoose.Schema({
    id: String,
    username: String,
});

mongoose.model('User', UserSchema);

编辑:添加码头网络信息

代码语言:javascript
复制
[
    {
        "Name": "bridge",
        "Id": "441a18a8d66ef7e29aaae1f2d5fee8b5e2f2edf39200b54a91f0df8b17407a46",
        "Created": "2022-11-19T09:03:56.78026462-05:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "13d0e2d487f03d2c806a917199857eefd77d9fb216eb9c68647ec5d7e93810e0": {
                "Name": "wsk0_243_prewarm_nodejs14",
                "EndpointID": "938de84937bfe214486713b4490645145a76f85cbff06f7ac49904beba9d8699",
                "MacAddress": "02:42:ac:11:00:03",
                "IPv4Address": "172.17.0.3/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        },
        "Labels": {}
    }
]```

Any ideas?
EN

回答 1

Stack Overflow用户

发布于 2022-11-23 19:35:43

我禁用了我的计算机上的代理设置,现在它正在工作。不敢相信我没想过早点试一试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74527034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档