Функция Cloud + Cloud Build: как добавить файл для работы во время сборки - PullRequest
0 голосов
/ 07 июня 2019

У меня есть сценарий, в котором у меня есть секретный json-файл в хранилище, который я бы хотел cp поместить в каталог облачной функции во время сборки в Cloud Build.

Команда cp работает, но файл не находится ни в zip-файле, который развертывается, ни в коде во время выполнения, поскольку функция выдает ошибку при вызове из-за отсутствующих значений конфигурации.

Вотcloudbuild.yaml

steps:
  - name: "gcr.io/cloud-builders/gsutil"
    args: ["cp", "gs://GCP-PROJECT/production.json", "./config/production.json"]
  - name: "gcr.io/cloud-builders/gsutil"
    args: ["cp", "gs://GCP-PROJECT/default.json", "./config/default.json"]
  - name: gcr.io/cloud-builders/gcloud
    args:
      - beta
      - functions
      - deploy
      - --region=europe-west1
      - --memory=128
      - --runtime=nodejs8
      - --trigger-topic=mailsend-sg
      - --stage-bucket=gen-function1-stage
      - --timeout=20s
      - --source=.
      - --entry-point=sendMail
      - send-sendgrid
  - name: gcr.io/cloud-builders/gcloud
    args:
      - beta
      - functions
      - deploy
      - --region=europe-west1
      - --memory=128
      - --runtime=nodejs8
      - --trigger-http
      - --stage-bucket=gen-function2-stage
      - --timeout=20s
      - --source=.
      - --entry-point=makeMail
      - make-fs-mail
timeout: "1600s"

Я делаю что-то не так с путем локального файла?

Спасибо stackoverflow:)

1 Ответ

1 голос
/ 12 июня 2019

В ваших шагах сборки 'args' вы помещаете production.json и default.json в папку / config.

Так что вам нужно указать - --source=./config в ваших шагах сборки вместо - --source=., вот так:

steps:
  - name: "gcr.io/cloud-builders/gsutil"
    args: ["cp", "gs://GCP-PROJECT/production.json", "./config/production.json"]
  - name: "gcr.io/cloud-builders/gsutil"
    args: ["cp", "gs://GCP-PROJECT/default.json", "./config/default.json"]
  - name: gcr.io/cloud-builders/gcloud
    args:
      - beta
      - functions
      - deploy
      - --region=europe-west1
      - --memory=128
      - --runtime=nodejs8
      - --trigger-topic=mailsend-sg
      - --stage-bucket=gen-function1-stage
      - --timeout=20s
      - --source=./config
      - --entry-point=sendMail
      - send-sendgrid
  - name: gcr.io/cloud-builders/gcloud
    args:
      - beta
      - functions
      - deploy
      - --region=europe-west1
      - --memory=128
      - --runtime=nodejs8
      - --trigger-http
      - --stage-bucket=gen-function2-stage
      - --timeout=20s
      - --source=./config
      - --entry-point=makeMail
      - make-fs-mail
timeout: "1600s"

Это должно решить проблему развертывания облачных функций.Если вы все еще сталкиваетесь с ошибками, опубликуйте журнал ошибок / отладки здесь

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