Назад | Перейти на главную страницу

Проблема гибкого развертывания App Engine: ошибка ресурса 403

мы пытались развернуть наш код nodejs в движке приложения гибко, но не можем, так как он показывает ошибку ресурса. У нас есть учетная запись GSuite Organization, и мы используем ее для развертывания.

Это ошибка:

Updating service [default] (this may take several minutes)...failed.           
ERROR: (gcloud.app.deploy) Error Response: [13] Flex operation projects/ae-test-3-280019/regions/asia-east2/operations/d727f9f7-3ee6-4b14-a7a4-9f04ef0aec68 error [INTERNAL]: An internal error occurred while processing task /appengine-flex-v1/insert_flex_deployment/flex_create_resources>2020-06-22T17:10:19.801Z36182.jc.6: Deployment Manager operation ae-test-3-280019/operation-1592845820141-5a8af514a9dd2-70733111-e1927105 errors: [code: "RESOURCE_ERROR"
location: "/deployments/aef-default-20200622t223948/resources/aef-default-20200622t223948"
message: "{\"ResourceType\":\"compute.beta.regionAutoscaler\",\"ResourceErrorCode\":\"403\",\"ResourceErrorMessage\":{\"code\":403,\"message\":\"The caller does not have permission\",\"status\":\"PERMISSION_DENIED\",\"statusMessage\":\"Forbidden\",\"requestPath\":\"https://compute.googleapis.com/compute/beta/projects/ae-test-3-280019/regions/asia-east2/autoscalers\",\"httpMethod\":\"POST\"}}"]

Ключевые моменты:

app.yaml

runtime: nodejs
env: flex
instance_class: F1
automatic_scaling:
  min_num_instances: 1
  max_num_instances: 15
  cool_down_period_sec: 180
  cpu_utilization:
    target_utilization: 0.6
  target_concurrent_requests: 100

app.yaml в консоли -> App Engine -> Версия -> Конфигурация

runtime: nodejs
api_version: '1.0'
env: flexible
threadsafe: true
instance_class: F1
automatic_scaling:
  cool_down_period: 180s
  min_num_instances: 1
  max_num_instances: 15
  cpu_utilization:
    target_utilization: 0.6
  target_concurrent_requests: 100
network: {}
liveness_check:
  initial_delay_sec: 300
  check_interval_sec: 30
  timeout_sec: 4
  failure_threshold: 4
  success_threshold: 2
readiness_check:
  check_interval_sec: 5
  timeout_sec: 4
  failure_threshold: 2
  success_threshold: 2
  app_start_timeout_sec: 300

Изображение использования квоты

Разрешение IAM

Что мы делаем не так, с нашей стороны? Мы попробовали простейший пример гибкого кода nodejs в новом проекте в новом регионе в новой учетной записи для выставления счетов, но с той же проблемой. Мы пробовали несколько вариантов app.yaml, но тщетно.

Я пытался создать приложение в GAE Flex в asia-east2, но каждый раз, когда я пытаюсь использовать это место, это не удается, но это из-за моего ограничения организации. Я создал приложение и успешно развернул его в регионе asia-northeast1.

Начнем сузить вопрос: согласно Документация по местонахождению GAE:

  1. После того, как вы выбрали местоположение для приложения, его нельзя изменить.
  2. В asia-east2 должно быть правильное место.

Мы можем отказаться от местоположения, если ваше приложение было создано правильно. (Создание приложения отличается от развертывания приложения).

Хочу отметить, что GAE в среде Flex не использует тег instance_class: F1 в app.yaml. Вместо этого и согласно документация app.yamlу тебя есть ti использовать resources, указывая cpu, memory_gb, disk_size_gb.

Стоит убедиться, что ваши компоненты находятся в последней версии. Чтобы убедиться в этом, запустите 'обновление компонентов gcloud'.

Я также проверил Статус панели управления GCP чтобы проверить, не было ли сбоя в работе GAE, но это нормально.

Ваши разрешения в порядке. У вас есть роль владельца, которой достаточно для развертывания приложения в GAE, и ваши квоты в порядке.

Чтобы избавиться от проблем с кодом, я бы предложил:

  1. Запустить Быстрый запуск NodeJS GAE Flex в новом проекте.
  2. На шаге 1 требуется создать приложение с помощью команды gcloud app create --project=[YOUR_PROJECT_ID]. Пожалуйста, убедитесь, что этот шаг завершен успешно.
  3. Разверните свое приложение.

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

Если вы столкнетесь с той же проблемой, стоит создать частную проблему в Общедоступный трекер проблем в разделе GAE. Там, учитывая конфиденциальность, вы можете поделиться дополнительной информацией, чтобы они могли оказать дальнейшую помощь.