Как получить AWS секрет в Makefile - PullRequest
1 голос
/ 06 февраля 2020

Я очень плохо знаком с Makefiles и хотел бы знать, как получить секреты AWS, хранящиеся в AWS Secret Manager в Makefile, и установить переменные, которые в дальнейшем будут использоваться в Makefile. Эти переменные будут использоваться для подключения MySQL (имя пользователя, пароль). Так что, если я просто смогу получить секретное значение пароля в DB_PASSWORD: =.

Я получу секреты в коде python по следующей ссылке (вы можете напрямую go к коду в конце страницы по ссылке ниже): https://www.capside.com/labs/using-aws-secrets-manager/

Однако я не смог найти никакого способа сделать это в Makefile.

Мой файл выглядит примерно так:

DB := prod
# DB := staging

ifeq ($(DB),staging)
DB_HOST := <staging database>
OBJ_DIR := ./obj/staging
else
DB_HOST := <prod database>
OBJ_DIR := ./obj/prod
endif
DB_PASSWORD := <password>
DB_USER := <user>
DB_PORT := 3306
DB_DATABASE := <database name>

MKDIR := mkdir -p
RM := rm
SRC_DIR := ./sql
SRC_FILES := $(wildcard $(SRC_DIR)/*.sql)
OBJECTS := $(SRC_FILES:%.sql=%.o)
OBJECTS := ${subst $(SRC_DIR),$(OBJ_DIR),$(OBJECTS)}

export MYSQL_PWD=$(DB_PASSWORD)

all: deploy

$(OBJ_DIR):
    $(MKDIR) $@

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.sql
    @cat $< | mysql -h $(DB_HOST) -P $(DB_PORT) -u $(DB_USER) $(DB_DATABASE)
    @touch $@
    @echo "Deploy of $< !"

clean:
    $(RM) $(OBJECTS)

deploy: $(OBJ_DIR) $(OBJECTS)
    @echo 'CALL create_views();' | mysql -h $(DB_HOST) -P $(DB_PORT) -u $(DB_USER) $(DB_DATABASE)
    @echo "Deploy complete on $(DB) !"

ПРИМЕЧАНИЕ / СОВЕТ: Секрет также может быть получен с помощью AWS CLI: https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/get-secret-value.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...