App Engine-订阅pubsub帐户时权限被拒绝例外

时间:2019-11-13 22:32:42

标签: google-app-engine subscription google-cloud-pubsub publishing permission-denied

应用程序使用案例:-我们有两个Google帐户(1个免费帐户(例如A1),1个付费帐户(例如A2)),现在,我们希望在App Engine上部署一个Java应用程序,将收听/订阅A2帐户上的pubsub-topic,阅读消息并将消息发布到A1上的主题。

它涉及3个服务帐户1. A1帐户服务帐户密码; 2. A2帐号服务帐号机密; 3. App Engine服务帐户。

进度:我能够使应用程序从本地VM实现此用例,能够从gcloud shell执行相同的应用程序,但是当我部署到App Engine 时,低于错误。

错误:

>  2019-11-13 13:05:39.611 PST
> [m~dcim-apps-and-apis/v1.422431275017436690].<stdout>: 2019-11-13
> 21:05:39.611  INFO 1 --- [pool-4-thread-1]
> c.e.dcim.connector.pub.GoogleProducer    :  destination topic name
> =TOPIC_2578
> 
> 2019-11-13 13:05:40.269 PST
> [m~dcim-apps-and-apis/v1.422431275017436690].<stdout>: 2019-11-13
> 21:05:40.269  WARN 1 --- [ault-executor-0]
> i.g.n.s.i.n.u.internal.MacAddressUtil    : Failed to find a usable
> hardware address from the network interfaces; using random bytes:
> 7e:a1:5d:23:e6:c9:b8:11
> 
> 2019-11-13 13:05:41.293 PST
> com.google.cloud.pubsub.v1.StreamingSubscriberConnection$1 onFailure:
> terminated streaming with exception
> (StreamingSubscriberConnection.java:243)
> com.google.api.gax.rpc.PermissionDeniedException:
> io.grpc.StatusRuntimeException: PERMISSION_DENIED: User not authorized
> to perform this action.   at
> com.google.api.gax.rpc.ApiExceptionFactory.createException(ApiExceptionFactory.java:55)
>   at
> com.google.cloud.pubsub.v1.StreamingSubscriberConnection$1.onFailure(StreamingSubscriberConnection.java:241)
>   at com.google.common.util.concurrent.Futures$4.run(Futures.java:1123)
>   at
> com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:435)
>   at
> com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:900)
>   at
> com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:811)
>   at
> com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:675)
>   at
> com.google.common.util.concurrent.SettableFuture.setException(SettableFuture.java:53)
>   at
> com.google.cloud.pubsub.v1.StreamingSubscriberConnection$StreamingPullResponseObserver.onError(StreamingSubscriberConnection.java:178)
>   at
> io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:419)
>   at
> io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:41)
>   at
> io.grpc.internal.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:684)
>   at
> io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:41)
>   at
> io.grpc.internal.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:391)
>   at
> io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:475)
>   at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:63)
>   at
> io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:557)
>   at
> io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600(ClientCallImpl.java:478)
>   at
> io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:590)
>   at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)    at
> io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
>   at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:266)     at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>   at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:295)
>   at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>   at java.lang.Thread.run(Thread.java:748) Caused by:
> io.grpc.StatusRuntimeException: PERMISSION_DENIED: User not authorized
> to perform this action.   at
> io.grpc.Status.asRuntimeException(Status.java:526)    ... 19 more

我已为App Engine服务帐户授予所有者角色,但没有运气。

如果您有任何解决方案和建议,请告诉我。如果有任何疑问,请告诉我。

0 个答案:

没有答案