Как упомянуто в справке для локального вызова 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
Затем для подключения контейнера Docker вашей функции Lambda к сети хоста:
▶ 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, это должно решить вашу проблему.