Ошибка отправки сборки Gcloud

Вопрос или проблема

У меня есть папка со скриптами, содержащая python-скрипт, docker-файл и файл requirements.txt

Мой python-скрипт работает отдельно и корректно на локальной машине.

Python-скрипт

import os
import time
from fastapi import FastAPI
import uvicorn

app = FastAPI()


SHARED_VOLUME_PATH = '/mnt/shared'
@app.get("/")
def process_data():
    data = "От основного автомобиля"
    
    with open(os.path.join(SHARED_VOLUME_PATH, 'shared_data_file.txt'), 'w') as f:
        f.write(data)
    
    print("Данные обработаны и сохранены в общем хранилище")
    response = "Данные обработаны и сохранены в общем хранилище"
    return response

if __name__ == '__main__':
    port = int(os.environ.get("PORT", 8080))
    uvicorn.run(app, host="0.0.0.0", port=port)
    process_data()

Содержимое docker-файла следующее

FROM python:3.11

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY main.py .

CMD ["python", "main.py"]

Когда я выполняю команду

gcloud builds submit --tag europe-west4-docker.pkg.dev/<GCP-project-ID>/artifactory/scar-prim-component:latest

Я получаю эту ошибку.

ERROR: (gcloud.builds.submit) HTTPError 412: 'us' нарушает ограничение 'constraints/gcp.resourceLocations'

Я не очень силен в этой области. Пожалуйста, подскажите, что мне нужно изменить, чтобы я мог загрузить свой код как компонент артефактов в GCP.

Я выполнил тот же скрипт и проделал те же шаги в другом проекте GCP, и все сработало хорошо и было развернуто.

Если есть альтернативный способ сборки и загрузки в артефакторы, пожалуйста, опишите шаги (подробно)

Ответ или решение

Ошибка при использовании команды gcloud builds submit с сообщением:

ERROR: (gcloud.builds.submit) HTTPError 412: 'us' violates constraint 'constraints/gcp.resourceLocations'

указывает на то, что вы пытаетесь выполнить операцию, которая не соответствует ограничениям по размещению ресурсов в вашем проекте Google Cloud Platform (GCP). Эта проблема может быть связана с тем, что ваши ресурсы находятся в регионе, который не поддерживается для ваших текущих настроек проекта.

Причины и Решения Ошибки

  1. Проверка Регионов:

    • Убедитесь, что ваш проект настроен на использование правильного региона. Ошибка говорит о том, что вы пытаетесь использовать регион us, хотя ваши ресурсы или ресурсы, к которым вы пытаетесь получить доступ, могут быть расположены в europe-west4.
    • Вы можете проверить настройки региона вашего проекта, используя команду:
      gcloud config get-value compute/region
  2. Изменение Региональных Настроек:

    • Если ваша сборка должна происходить в europe-west4, вам нужно будет переключить ваш текущий проект на использование этого региона. Используйте следующую команду для установки региона:
      gcloud config set compute/region europe-west4
  3. Проверка Политик Ограниающих Ресурсы:

    • Возможно, в проекте установлены политики, ограничивающие использование определенных регионов. Убедитесь, что у вашего проекта нет ограничений, которые могут блокировать создание или размещение ресурсов в заданном регионе.
  4. Правильность Docker-Repo URL:

    • Проверьте правильность вашего URL для Docker-репозитория. Он должен быть в формате <REGION>-docker.pkg.dev/<GCP-project-ID>/artifactory/scar-prim-component:latest. Убедитесь, что все поля заменены корректными значениями и совпадают с вашим проектом.

Альтернативный Способ Сборки и Публикации

Если ваша текущая методология не работает, вы можете попробовать ручную сборку и отправку Docker-образа:

  1. Локальная Сборка Docker-образа:

    • Перейдите в директорию со скриптом и Docker-файлом.
    • Выполните команду для сборки образа:
      docker build -t scar-prim-component:latest .
  2. Вход в Google Container Registry (GCR):

    • Войдите в GCR, используя:
      gcloud auth configure-docker
  3. Пометить и Отправить Образ:

    • Видоизмените ваш образ на самом GCP:
      docker tag scar-prim-component:latest europe-west4-docker.pkg.dev/<GCP-project-ID>/artifactory/scar-prim-component:latest
      docker push europe-west4-docker.pkg.dev/<GCP-project-ID>/artifactory/scar-prim-component:latest

Заключение

Проблема, с которой вы столкнулись, часто возникает из-за несоответствия регионов. Проверив настройки и выполнив шаги для исправления, вы сможете без труда выполнить вашу задачу. Не забывайте учитывать важные аспекты настройки проекта в GCP, так как они могут существенно влиять на возможность выполнения таких операций.

Оцените материал
Добавить комментарий

Капча загружается...