如何在本地运行SAM时连接RDS实例?

问题描述 投票:0回答:1

我正在使用SAM(无服务器应用程序模型)来本地测试连接到云中的Aurora RDS实例的Lambda函数。

使用以下命令:

sam local invoke "lambda function name" --event event.json

正在执行Lambda函数,但是当返回SQL结果时,它返回null作为输出。

如何配置Docker容器以与RDS实例通信?

amazon-rds aws-sam aws-sam-cli
1个回答
1
投票

正如sam本地调用的帮助中所提到的,您可以将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实例,那应该可以解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.