Я предоставляю как промежуточное, так и временное местоположение через интерфейс командной строки gcloud dataflow flex-template run
. Это оба допустимых необязательных флага (согласно документам ), и нет никакого упоминания о том, что вы должны или не должны предоставлять оба.
Почему еще может появиться эта ошибка?
ОШИБКА: (gcloud.dataflow.flex-template.run) нераспознанные аргументы: --temp-location (вы имели в виду '--staging-location'?) gs://gcs-имя-бакета
Обновлено: добавление контекста по запросу
Процесс выполняется в конвейере Buildkite CI/CD, поэтому, вообще говоря, агент/шаг Buildkite вызывает контейнер gcloud Docker, который запускает сценарий bash. Я также могу запустить эту команду и комбинацию контейнеров локально просто отлично - ошибка присутствует только во время работы в конвейере.
Dockerfile
FROM gcr.io/google.com/cloudsdktool/cloud-sdk
COPY docker/scripts/gcloud-deploy-flex-template.sh /app/gcloud-deploy-flex-template.sh
WORKDIR /app
# RUN sudo apt-get install google-cloud-sdk <-- threw error
ENTRYPOINT "/app/gcloud-deploy-flex-template.sh"
gcloud-deploy-flex-template.sh
gcloud dataflow flex-template run ${JOB_NAME} \
--template-file-gcs-location ${TEMPLATE_PATH}.json \
--region us-central1 \
--staging-location ${GCS_PATH}/staging/${JOB_NAME} \
--temp-location ${GCS_PATH}/temp \
--parameters requirements_file=requirements.txt \
--parameters input_subscription=${INPUT_SUBSCRIPTION} \
--parameters output_table=${OUTPUT_TABLE} \
--parameters subject=${SUBJECT} \
--parameters schema_registry_url=${SCHEMA_REGISTRY_URL} \
--subnetwork=${SUBNETWORK} \
--service-account-email=${SERVICE_ACCOUNT_EMAIL}
Обновлен ли ваш интерфейс командной строки gcloud? Я попытался указать и --temp-location
, и --staging-location
, и все работает нормально.
Спасибо за ответы @MazlumTosun @BrunoVolpato Я добавил контекст и дважды проверю версию gcloud (это хорошее предложение). Это не должно быть проблемой, потому что аргумент flex-template
является частью новой бета-версии, и в старой версии он выдавал бы ошибку по-другому.
Почему вы напрямую не используете официальное google cloud sdk
изображение: google/cloud-sdk:412.0.0
? Можете ли вы использовать точное gcloud sdk
ваше изображение, пожалуйста?
добавление тега изображения помогло! не стесняйтесь конвертировать ваши комментарии в ответ @MazlumTosun, и я приму в качестве ответа: FROM gcr.io/google.com/cloudsdktool/cloud-sdk:408.0.1
Как я предложил в своем комментарии, вы можете использовать официальное google
sdk
изображение с последней версией:
FROM google/cloud-sdk:412.0.0
COPY docker/scripts/gcloud-deploy-flex-template.sh /app/gcloud-deploy-flex-template.sh
WORKDIR /app
# RUN sudo apt-get install google-cloud-sdk <-- threw error
ENTRYPOINT "/app/gcloud-deploy-flex-template.sh"
или
FROM gcr.io/google.com/cloudsdktool/cloud-sdk:408.0.1
COPY docker/scripts/gcloud-deploy-flex-template.sh /app/gcloud-deploy-flex-template.sh
WORKDIR /app
# RUN sudo apt-get install google-cloud-sdk <-- threw error
ENTRYPOINT "/app/gcloud-deploy-flex-template.sh"
Можете ли вы поделиться полной командой с поддельными значениями, пожалуйста?