Вы можете go - эту статью , в которой есть несколько примеров использования AWS SAM для создания различных AWS ресурсов.
Проблема в вашем случае может заключаться в том, что Имя параметра DATABASE_URI
содержит не алфавитные символы c символов (подчеркивание в вашем примере). Попробуйте переименовать его в DatabaseUri
и сделать то же самое в вашей команде sam invoke local
. Это должно работать.
Кроме того, вам нужны изменения в template.yaml
, а не packaged.yaml
. packaged.yaml генерируется автоматически при запуске команды sam package
.
При внесении этих изменений у меня работает следующий шаблон.yaml.
Parameters:
DatabaseUri: # Changed this to remove underscore
Description: 'Required. MongoDB connection URL'
Type: 'String'
Resources:
BUDAuthorizeUserHandler:
Type: AWS::Serverless::Function
Properties:
FunctionName: BUDAuthorizeUserHandler
Handler: index.pingWithEnvVariable # Ignore this change, my test function is at this location
Runtime: nodejs10.x
Environment:
Variables:
MONGODB_URI: !Ref DatabaseUri # Removed underscore from here as well, obviously
index. js ( возвращает значение переменной env в вывод для тестирования)
exports.pingWithEnvVariable = async event => {
const response = {};
response.statusCode = 200;
const env = process.env.MONGODB_URI;
response.body = JSON.stringify({ env });
return response;
};
использовал тот же env. json, что и ваш
$ sam local invoke BUDAuthorizeUserHandler --env-vars env.json
START RequestId: 6a9d398c-fecd-1b07-c9a0-d9fe4293cfe1 Version: $LATEST
END RequestId: 6a9d398c-fecd-1b07-c9a0-d9fe4293cfe1
REPORT RequestId: 6a9d398c-fecd-1b07-c9a0-d9fe4293cfe1 Init Duration: 211.76 ms Duration: 5.66 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 43 MB
{"statusCode":200,"body":"{\"env\":\"mongodb+srv://USER:PASSWORD@HOST/bud?retryWrites=true\u0026w=majority\"}"}
Работает также с переопределениями параметров
$ sam local invoke BUDAuthorizeUserHandler --parameter-overrides 'ParameterKey=DatabaseUri,ParameterValue=mongodb+srv://USER:PASSWORD@HOST/bud?retryWrites=true&w=majority'
START RequestId: e0415251-2655-139b-e5df-5f9db658ca01 Version: $LATEST
END RequestId: e0415251-2655-139b-e5df-5f9db658ca01
REPORT RequestId: e0415251-2655-139b-e5df-5f9db658ca01 Init Duration: 163.06 ms Duration: 6.88 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 43 MB
{"statusCode":200,"body":"{\"env\":\"mongodb+srv://USER:PASSWORD@HOST/bud?retryWrites=true\u0026w=majority\"}"}