我是Makefile的新手,想知道如何在Makefile中获取存储在AWS Secret Manager中的AWS机密,并设置将在Makefile中进一步使用的变量。这些变量是将用于连接MySQL的变量(用户名,密码)。因此,如果我只能够在DB_PASSWORD:=中获取密码秘密值。
我成功通过以下链接获取了“ python代码”中的机密(您可以直接在以下链接的页面末尾转到代码): 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