Ошибка при развертывании Google App Engine (GAE) Flexible с помощью сценария Terraform

Я создал скрипт terraform для развертывания движка приложений Java в GAE, как показано ниже:

resource "google_app_engine_flexible_app_version" "test-terraform" {
    version_id = "v1"
    project = "project-id"
    service = "service-terraform"   
    runtime = "java"

    liveness_check {
        path = "/"
    }

    readiness_check {
        path = "/"
    }
    
    env_variables = {
        port = "8080"
    }
    
    deployment {
        zip {
            source_url = "https://storage.googleapis.com/[BUCKET_NAME]/[ZIP_OBJECT_NAME]"
        }
        
        cloud_build_options {
            app_yaml_path = "[PATH_TO_APP-YAML_FILE]"
        }
    }

    # resoucres config
    resources {
        cpu = 1
        memory_gb = 2
        disk_gb = 10        
    }

    # scale config      

    delete_service_on_destroy = true
}

Я попытался изменить значение PATH_TO_APP-YAML_FILE на

  1. расположение app.yaml в хранилище
  2. локализация app.yaml в исходном коде ZIP как ./src/main/appengine/app.yaml, но неудачное развертывание, сведения об ошибке в Cloud Build показаны ниже:
Step #1: WARN  - A yaml configuration file was expected, but none was found at the provided path: app.yaml. Proceeding with default configuration values. 
Step #1: Exception in thread "main" com.google.cloud.runtimes.builder.exception.ArtifactNotFoundException: No deployable artifacts were found. Unable to proceed. 
Step #1:    at com.google.cloud.runtimes.builder.buildsteps.PrebuiltRuntimeImageBuildStep.getArtifact(PrebuiltRuntimeImageBuildStep.java:77) 
Step #1:    at com.google.cloud.runtimes.builder.buildsteps.RuntimeImageBuildStep.run(RuntimeImageBuildStep.java:50) 
Step #1:    at com.google.cloud.runtimes.builder.BuildPipelineConfigurator.generateDockerResources(BuildPipelineConfigurator.java:104) 
Step #1:    at com.google.cloud.runtimes.builder.Application.main(Application.java:147) Finished Step #1 ERROR Blockquote

Не могли бы вы помочь мне точно указать значение PATH_TO_APP-YAML_FILE? Спасибо!


person Nhjm    schedule 24.09.2020    source источник
comment
Путь к файлу app.yaml - это просто. Но я считаю, что вы должны указать абсолютный путь вместо относительного.   -  person iker lasaga    schedule 24.09.2020
comment
@ikerlasaga в качестве вашего ответа, я найду app.yaml где угодно и использую абсолютный путь к этому файлу (пример в G-Storage), верно? но таким образом я пробовал как в (1) и не увенчался успехом :( Или мне нужно будет указать абсолютный путь к app.yaml, который существует в папке с исходным кодом (заархивирован и загружен в GStorage)?   -  person Nhjm    schedule 25.09.2020


Ответы (1)


Согласно документации Terraform, это значение означает:

app_yaml_path — (обязательно) путь к файлу yaml, который используется при развертывании и используется для определения сведений о конфигурации среды выполнения.

Однако неясно, совместим ли он с исходным кодом, находящимся в корзине Cloud Storage. Как было предложено на странице сообщества Terraform, я бы посоветовал открыть вопрос в форум HashiCorp, чтобы получить более подробную информацию об этом параметре.

person llompalles    schedule 05.10.2020