灵活部署到Google应用程序引擎时出现GCloud权限错误

时间:2017-09-09 15:19:27

标签: maven google-app-engine spring-boot jenkins continuous-integration

我正在尝试使用Maven通过Jenkins将我的Spring启动应用程序部署到应用程序引擎。在maven构建了包之后,我在Build步骤的execute shell中使用了“mvn install appengine:deploy”。但是,我在构建时遇到以下错误,

GCLOUD: ERROR: (gcloud.app.deploy) Permissions error fetching application [apps/microservice-qa]. Please make sure you are using the correct project ID and that you have permission to view applications on the project.

详细的错误跟踪:

[INFO] Detected App Engine flexible environment application.
Sep 12, 2017 7:54:14 AM com.google.cloud.tools.appengine.cloudsdk.CloudSdk logCommand
INFO: submitting command: /usr/lib/google-cloud-sdk/bin/gcloud app deploy
[INFO] GCLOUD: Services to deploy:
[INFO] GCLOUD:
[INFO] GCLOUD: descriptor:      [/opt/bitnami/apps/jenkins/jenkins_home/workspace/demo-test/target/appengine-staging/app.yaml]
[INFO] GCLOUD: source:          [/opt/bitnami/apps/jenkins/jenkins_home/workspace/demo-test/target/appengine-staging]
[INFO] GCLOUD: target project:  [xxxx]
[INFO] GCLOUD: target service:  [xxxxx]
[INFO] GCLOUD: target version:  [20170912t075415]
[INFO] GCLOUD: target url:      [https://xxxxx-dot-microservice-qa.appspot.com]
[INFO] GCLOUD:
[INFO] GCLOUD:
[INFO] GCLOUD: If this is your first deployment, this may take a while...
[INFO] GCLOUD: ....done.
[INFO] GCLOUD:
[INFO] GCLOUD: Beginning deployment of service [another-pub-sub-service]...
[INFO] GCLOUD: Building and pushing image for service [another-pub-sub-service]
[INFO] GCLOUD: ERROR: (gcloud.app.deploy) You do not have permission to access project [xxxx] (or it may not exist): The caller does not have permission
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 23.198s
[INFO] Finished at: Tue Sep 12 07:54:27 UTC 2017
[INFO] Final Memory: 21M/51M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.google.cloud.tools:appengine-maven-plugin:1.3.1:deploy (default-cli) on project demo-test1: Execution default-cli of goal com.google.cloud.tools:appengine-maven-plugin:1.3.1:deploy failed: Non zero exit: 1 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal com.google.cloud.tools:appengine-maven-plugin:1.3.1:deploy failed: Non zero exit: 1
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
        ... 19 more
Caused by: com.google.cloud.tools.appengine.api.AppEngineException: Non zero exit: 1
        at com.google.cloud.tools.appengine.cloudsdk.process.NonZeroExceptionExitListener.onExit(NonZeroExceptionExitListener.java:30)
        at com.google.cloud.tools.appengine.cloudsdk.internal.process.DefaultProcessRunner.syncRun(DefaultProcessRunner.java:211)
        at com.google.cloud.tools.appengine.cloudsdk.internal.process.DefaultProcessRunner.run(DefaultProcessRunner.java:137)
        at com.google.cloud.tools.appengine.cloudsdk.CloudSdk.runGcloudCommand(CloudSdk.java:193)
        at com.google.cloud.tools.appengine.cloudsdk.CloudSdk.runAppCommandInWorkingDirectory(CloudSdk.java:136)
        at com.google.cloud.tools.appengine.cloudsdk.CloudSdkAppEngineDeployment.deploy(CloudSdkAppEngineDeployment.java:90)
        at com.google.cloud.tools.maven.DeployMojo.execute(DeployMojo.java:107)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        ... 20 more

我已检查服务器中用于运行gcloud命令的密钥/用户的权限,它们都具有完全权限。但是我仍然得到上述错误。

此外,Jenkins或其他任何工具(如jenkins管理构建和部署到应用程序引擎)中是否还有其他插件可以执行相同的操作?

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

由于您的Jenkins服务器可能未配置项目,请在jenkins作业配置中使用以下命令:

执行shell:

#!/bin/sh
gcloud -q auth activate-service-account --key-file=${PROJECT_KEY.JSON}
gcloud -q config set project ${PROJECT_ID}
mvn appengine:deploy

另外,对于&#; gcloud'要在Jenkins服务器上使用,您必须安装插件' Google Deployment Manager Jenkins插件'在詹金斯。

相关问题