Функции gcloud развертываются с ошибкой gitlab Ci - PullRequest
0 голосов
/ 07 сентября 2018

Я работаю над развертыванием Google cloud functions (python) с использованием gitlab.ci yaml-файлов.

Моя цель - либо обновить уже существующую облачную функцию (удалив и повторно развернув ее), либо развернуть новую функцию на основе имени облачной функции (и региона) в качестве входных аргументов.

Ниже приведен сценарий, который я написал:

    #!/usr/bin/env bash

FUNCTION_NAME=$1
REGION=$2
touch functionslist.txt
gcloud beta functions list >> functionslist.txt

isInFile=$(cat functionslist.txt | grep -c FUNCTION_NAME)

if [ $isInFile -eq 0 ]; then
   echo "New Cloud Function Name, hence it shall be deployed "
else
   echo "Cloud Function Updated, hence it shall be deleted and redeployed"
   gcloud beta functions delete  ${FUNCTION_NAME} --region${REGION}
fi

Этот скрипт вызывается на следующем этапе развертывания:

 deploy:
  stage: deploy
  image: google/cloud-sdk
  script:
    - apt-get update && apt-get --only-upgrade install kubectl google-cloud-sdk
    - gcloud config set project $GCP_PROJECT_ID
    - chmod +x delete_function.sh
    - ./delete_function.sh ${FUNCTION_NAME} ${REGION}
    - gcloud beta functions deploy ${FUNCTION_NAME} --memory ${MEMORY} --stage-bucket ${STAGE_BUCKET}  --region ${REGION}  --runtime ${RUNTIME} --trigger-http

Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я запускаю конвейер для обновленной облачной функции, он всегда рассматривает первый случай, поэтому отображается «Новое имя облачной функции, следовательно, оно должно быть развернуто», даже если облачная функция уже существует. Я должен увидеть следующее сообщение: «Облачная функция обновлена, поэтому она должна быть удалена и повторно развернута».

Возможно, сценарий оболочки, который я написал, ошибочен. Любая идея, чтобы решить это.

...