因此,在生成AWS SAM模板“web后端”lambda后,我的函数不会连接到我的dynamodb docker实例。
这是我正在使用的JavaScript代码:
const docClient = new dynamoDb.DocumentClient({region: 'localhost', endpoint: 'http://127.0.0.1:8000/'});
const data = await docClient.scan(params).promise();
在我的终端上运行:
sam local start-api --docker-network lambda-local
docker run -d -p 8000:8000 --network=lambda-local amazon/dynamodb-local
命中生成的endpointhttp://127.0.0.1:3000/
终端给出错误信息:
ERROR Invoke Error {"errorType":"NetworkingError","errorMessage":"connect ECONNREFUSED 127.0.0.1:8000","code":"NetworkingError","message":"connect ECONNREFUSED 127.0.0.1:8000","errno":"ECONNREFUSED","syscall":"connect","address":"127.0.0.1","port":8000,"region":"localhost","hostname":"localhost","retryable":true,"time":"2021-01-03T15:21:11.468Z","stack":["Error: connect ECONNREFUSED 127.0.0.1:8000"," at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1144:16)"]}
如果我试着通过邮递员打发电机,我会得到:
{
"__type": "com.amazonaws.dynamodb.v20120810#MissingAuthenticationToken",
"message": "Request must contain either a valid (registered) AWS access key ID or X.509 certificate."
}
所以dynamodb服务器正在运行,因为我可以通过noSQL工作台连接到它,但是我的假设是sam本地api的docker容器看不到dynamodb的docker容器?
任何想法将不胜感激!谢谢。
充分披露:我作为一名无服务器开发倡导者为AWS工作,并经常直接与SAM合作。这不是你问题的答案,但我强烈鼓励你远离这种模式。SAM local可以轻松地在云中命中DynamoDB,就像它命中DDB local一样。事实上,这更容易,因为您不必与Docker网络搏斗。我在这段视频中讲述了它。希望有帮助!https://youtu.be/NzPqMrdgD1s
问题是您试图在endpoint:'http://127.0.0.1:8000/'
上命中本地DynamodDb终结点的方式
在sam中,本地容器127.0.0.1
指的是该容器,而不是dynamodb本地容器。
为了解决这个问题,您可以在启动dynamodb本地容器时给它一个名称,然后将endpoint更改为http://name_of_the_dynamodb_container:8000
,它会工作的。
例如,在本地启动dynamodb,如下所示:
docker run -name ddb_local -d -p 8000:8000 --network=lambda-local amazon/dynamodb-local
然后在其他容器中配置连接,如下所示:
const docClient = new dynamoDb.DocumentClient({region: 'localhost', endpoint: 'http://ddb_local:8000/'});
const data = await docClient.scan(params).promise();
这不是唯一的方法,但它应该适合你。
我认为埃里克·约翰逊是对的,在进行本地开发时,除了运行密封单元测试之外,你几乎永远不会想使用Dynamodb本地,但是能够做到这一点还是很好的。
我几乎可以向你保证这是一个Docker网络问题。当你有两个这样的容器需要互相交谈时,几乎总是这样。我建议您使用Docker Compose,它可以为您设置所有这些功能,而且要简单得多。DynamoDB文档为您提供了一个模板。
对于访问ID错误,您需要在运行Postman的位置运行aws configure
。ID等可以是任何东西,但必须有填充的内容。
更新:将非工作版本发布到https://github.com/justsomecoder/boot-rabbit-issue 我正在尝试实现一些基本的RabbitMQ发送和接收功能,但似乎无法让它在我的Spring Boot项目中运行。虽然我尝试了多个示例,但到目前为止,我在https://spring.io/guides/gs/messaging-rabbitmq/实现了该示例,唯一的例外是我在
当我试图运行我的Azure功能时,我在application insight中不断得到一个错误,它在我的计算机上本地工作,但在Azure中不工作。下面是错误消息: System.InvalidOperationExceptionMicrosoft.Azure.WebJobs.Extensions.CosmosDB.CosmosDBTriggerAttributeBindingProvider.Re
收到以下错误当我尝试连接到Salesforce时,我遗漏了什么重要的东西吗? //TID[-1234][EI][2019-03-19 20:40:40,174]错误{org.apache.axis2.description.clientutils}-系统无法从/services/createsfbuzz URL推断传输信息。 //tid[-1234][EI][2019-03-19 20:40:40
我是CI新手,我尝试使用普通的HMTL文件作为模板。因此,我在“应用程序/视图”中创建了一个名为“教育”的文件夹。我头球得分。php,导航。php,内容。php和页脚。php文件。在我写的控制器里 然后我像“http://localhost:8080/mvc/index.php/education/”一样访问了链接 但是样式表没有附加,它与文件位于同一文件夹中。我还尝试将样式表链接的href改为“
现在当我启动基于spring的应用程序时。我在调试器中看到,我的侦听器方法注册了,但是Spring不连接到ActiveMQ队列,我可以通过查看ActiveMQ web控制台轻松地看到这一点。此外,我没有看到任何来自spring的日志输出,而JMS的东西是这样做的。 我错过什么了吗?从这里走下去最好的路是什么?当然,我也测试了从ActiveMQ的web控制台中发送消息,但是如果没有客户端连接,就没有
Durpal 8的目录结构: 我的settings.php数据库配置 我的docker-compose.yml代码 使用上面的代码,我能够将phpmyadmin连接到mysql,并且工作正常,但是我无法将Drupal连接到mysql,并且出现以下错误: PDOException:79#0/var/www/html/core/lib/Drupal/Component/DependencyInject