我已经使用AWS sam本地设置了api gateway/aws lambda对,并确认我可以在运行后成功调用它
sam local start-api
然后我在docker容器中添加了一个本地dynamodb实例,并使用aws cli在其上创建了一个表
但是,将代码添加到lambda以写入我收到的dynamodb实例:
2018-02-22T11:13:16.172Z ed9ab38e-fb54-18a4-0852-db7e5b56c8cd错误:无法写入表:{"message":"connect ECONNREFUSED 0.0.0.0:8000","code":"NetworkingError", "错误号": "ECONNREFUSED", "系统调用": "连接", "地址": "0.0.0.0", "端口":8000, "区": "EU-西-2", "主机名":"0.0 .0.0","retryable":true,"time":"2018-02-22T11:13:16.165Z"}从命令写入事件:{"name":"test","geolocation":"xyz","输入":"createDestination"} END RequestId:ed9ab38e-fb54-18a4-0852-db7e5b56c8cd
我在网上看到你可能需要连接到同一个docker网络,所以我创建了一个网络docker network create lambda-local并将我的启动命令更改为:
sam local start-api --docker-network lambda-local
和
docker run -v "$PWD":/dynamodb_local_db -p 8000:8000 --network=lambda-local cnadiminti/dynamodb-local:latest
但仍然收到相同的错误
山姆本地打印出来 2018/02/22 11:12:51 Connecting container 98b19370ab92f3378ce380e9c840177905a49fc986597fef9ef589e624b4eac3 to network lambda-local
我正在使用以下方法创建dynamodbclient:
const AWS = require('aws-sdk')
const dynamodbURL = process.env.dynamodbURL || 'http://0.0.0.0:8000'
const awsAccessKeyId = process.env.AWS_ACCESS_KEY_ID || '1234567'
const awsAccessKey = process.env.AWS_SECRET_ACCESS_KEY || '7654321' …Run Code Online (Sandbox Code Playgroud)