【问题标题】:How do I connect to mysql from a Lambda function in localstack?如何从 localstack 中的 Lambda 函数连接到 mysql?
【发布时间】:2019-04-23 18:26:24
【问题描述】:

我已经设置了在 docker 上运行的 localstack。我有一个 .Net Core 2.1 c# Lambda 函数,它试图连接到本地主机上的 MySql 数据库。这是我在控制台中得到的:

“无法连接到任何指定的 MySQL 主机”

这是我的连接字符串的样子:

"数据源=localhost;初始目录=xxx;主机=localhost;连接超时=10;用户ID=xxxx;密码=xxxx;SSL 模式=none"

我尝试了各种 IP 地址(127...等),包括我们的实时数据库连接字符串。

编辑(2019 年 4 月 23 日): 我在 localstack 文件夹上运行的命令:

docker-compose up

这是我正在使用的 docker 文件:

version: '2.1'

services:   localstack:
    image: localstack/localstack
    ports:
      - "4567-4593:4567-4593"
      - "${PORT_WEB_UI-8080}:${PORT_WEB_UI-8080}"
    environment:
      - SERVICES=lambda,sqs,dynamodb,s3
      - DEBUG=1
      - DATA_DIR=/tmp/localstack/data
      - PORT_WEB_UI=${PORT_WEB_UI- }
      - LAMBDA_EXECUTOR=docker-reuse
      - KINESIS_ERROR_PROBABILITY=${KINESIS_ERROR_PROBABILITY- }
      - DOCKER_HOST=unix:///var/run/docker.sock
    volumes:
      - "${TMPDIR:-/tmp/localstack}:/tmp/localstack"
      - "/var/run/docker.sock:/var/run/docker.sock"

【问题讨论】:

  • 能否提供你正在使用的dockerfile和docker run命令?
  • 谢谢,@Mihai - 我已经添加了我认为你需要的内容(抱歉耽搁了 - 这里是复活节周末!)
  • 您可以运行“docker-compose config”并确保所有环境变量都设置正确吗?你也可以运行“docker-compose ps”并发布结果吗?与此同时,我也在尝试自己运行它。
  • @Mihai - 谢谢你的时间,我实际上已经解决了这个问题,结果我只是一个傻瓜......我的 MySql 连接字符串中有 localhost。我需要将其更新为以太网适配器的 IP。它现在可以工作了,所以我会把它作为答案发布。

标签: c# mysql docker localstack


【解决方案1】:

所以我自己解决了这个问题,毕竟我只是很傻......

我必须将 MySql 连接字符串的“主机”从“localhost”更新为以太网适配器 IP 的 IP 地址,如下所示:

"数据源=172.x.x.x;初始目录=xxx;主机=localhost;连接超时=10;用户ID=xxxx;密码=xxxx;SSL 模式=无"

【讨论】:

    猜你喜欢
    • 2018-03-29
    • 2016-07-24
    • 2019-02-12
    • 2021-07-02
    • 1970-01-01
    • 2017-03-09
    • 2019-06-07
    • 2019-10-10
    • 2018-05-13
    相关资源
    最近更新 更多