Ключ "—environment" утилиты AWS Cli заменяет все переменные, на те которые вы укажете в качестве аргумента. Чтобы изменить значение только одной переменной не стирая другие, или не перечисляя их все, можно воспользоваться следующим BASH скриптом:
aws_lambda_update_env.sh:
#!/usr/bin/env bash # VARIABLES LAMBDA='ARTEM-SERVICES' REGION='us-east-1' VARIABLE='ECR_TAG' NEW_VALUE='1.0.1' CURRENTVARIABLES="$(aws lambda get-function-configuration --region $REGION --function-name $LAMBDA | jq '.Environment.Variables')" NEWVARIABLES=$(echo $CURRENTVARIABLES | jq --arg VARIABLE $VARIABLE --arg NEW_VALUE $NEW_VALUE ".$VARIABLE |= \"$NEW_VALUE\"") COMMAND="aws lambda update-function-configuration --region $REGION --function-name $LAMBDA --environment '{\"Variables\":$NEWVARIABLES}'" eval $COMMAND
Для работы этого скрипта нужна утилита jq
Скрипт вычитывает все текущие переменные, подменяет значение переменной "ECR_TAG" на значение "1.0.1" и обновляет все переменные с измененным значением переменной "ECR_TAG".