Не удалось запустить приложение при развертывании в GKE, показ «GcpContextAutoConfiguration» был исключен

# #google-cloud-platform #google-cloud-pubsub #spring-cloud-gcp

Вопрос:

У меня есть приложение, когда я развернул его в GCP, оно не запустилось, но оно хорошо работало в моем локальном с докером. Я понятия не имею, как это решить, нужно ли мне что-либо включать в свой файл свойств?

 ***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 1 of constructor in org.springframework.cloud.gcp.autoconfigure.pubsub.GcpPubSubAutoConfiguration required a bean of type 'org.springframework.cloud.gcp.core.GcpProjectIdProvider' that could not be found.

The injection point has the following annotations:
    - @org.springframework.beans.factory.annotation.Autowired(required=true)

The following candidates were found but could not be injected:
    - Bean method 'gcpProjectIdProvider' in 'GcpContextAutoConfiguration' not loaded because auto-configuration 'GcpContextAutoConfiguration' was excluded
    - Bean method 'gcpProjectIdProvider' in 'GcpContextAutoConfiguration' not loaded because auto-configuration 'GcpContextAutoConfiguration' was excluded
    - Bean method 'gcpProjectIdProvider' in 'GcpContextAutoConfiguration' not loaded because auto-configuration 'GcpContextAutoConfiguration' was excluded


Action:

Consider revisiting the entries above or defining a bean of type 'org.springframework.cloud.gcp.core.GcpProjectIdProvider' in your configuration. 

Я включил свойства, как показано ниже

 spring.cloud.gcp.pubsub.enabled: true
spring.cloud.gcp.config.enabled: true
spring.cloud.gcp.security.iap.enabled: true
#I DO NOT have this line below
#spring.autoconfigure.exclude: org.springframework.cloud.gcp.autoconfigure.core.GcpContextAutoConfiguration
 

Внутри моего помпона я также включил эти

     <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring-boot-release.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-gcp-dependencies</artifactId>
            <version>${spring-cloud-gcp.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-gcp-pubsub</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-gcp-starter-pubsub</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-core</artifactId>
    </dependency>
<dependencies>
 

Кто-нибудь может помочь?

Ответ №1:

Наиболее вероятной причиной GcpContextAutoConfiguration исключения является то, что ваши развернутые свойства spring.cloud.gcp.core.enabled=false где-то есть.

Чтобы точно проверить, что автоматически настраивается при загрузке Spring и почему, перейдите -Ddebug=true к своему процессу Java (если он запущен из Maven, передайте его как -Dspring-boot.run.jvmArguments="-Ddebug=true" .

Ответ №2:

Попробуйте добавить в свои зависимости стартер Spring Cloud GCP, который настраивает параметры аутентификации и проекта:

 <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-gcp-starter</artifactId>
</dependency>
 

Кроме того, если вы укажете spring-cloud-gcp-starter-pubsub зависимость, добавлять ее не нужно spring-cloud-gcp-pubsub , так как она уже включена в первую.