我正在使用 SAM(无服务器应用程序模型)在本地测试连接到云中的 Aurora RDS 实例的 Lambda 函数。
使用以下命令:
sam local invoke "lambda function name" --event event.json
Lambda 函数正在执行,但在返回 SQL 结果时,它返回 null 作为输出。
如何配置Docker容器与RDS实例通信?
正如 sam local invoke 的帮助中提到的,您可以将 Docker 容器连接到现有的 Docker 网络:
▶ sam local invoke --help
...
--docker-network TEXT Specifies the name or id of an existing
docker network to lambda docker containers
should connect to, along with the default
bridge network. If not specified, the Lambda
containers will only connect to the default
bridge docker network.
因此,要列出您的 Docker 网络:
▶ docker network ls
NETWORK ID NAME DRIVER SCOPE
25a03c8453a6 bridge bridge local
00de89cf09d0 host host local
41597d91a389 none null local
然后,要将 Lambda 函数的 Docker 容器连接到主机网络:
▶ sam local invoke "lambda function name" --event event.json \
--docker-network 00de89cf09d0
请注意,您还可以使用环境变量SAM_DOCKER_NETWORK
:
▶ SAM_DOCKER_NETWORK=00de89cf09d0 sam local invoke "lambda function name" \
--event event.json
如上所述here.
假设主机网络可以访问 RDS 实例,这应该可以解决您的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)