Google Compute EngineインスタンスでJavaアプリケーションを実行しています。 google-cloud libraryを使用してクラウドパブ/サブトピックにメッセージを公開しようとしていますが、DEADLINE_EXCEEDED
の例外が発生しています。コードは次のようになります。Compute EngineからCloud Pub/Subトピックに公開するときのDEADLINE_EXCEEDED
PubSub pubSub = PubSubOptions.getDefaultInstance().toBuilder()
.build().getService();
String messageId = pubSub.publish(topic, message);
結果は次のとおりです。
com.google.cloud.pubsub.PubSubException:io.grpc.StatusRuntimeException:documentationはことを示唆しているDEADLINE_EXCEEDED
この応答は、通常、ネットワークの問題によって発生します。 Compute EngineがPub/Subに到達できるようにするために、Networkingセクションで設定する必要があるものはありますか? default-allow-internalファイアウォールルールが存在します。
私は既にCompute EngineサービスアカウントをPub/Subトピックの権限でエディタとパブリッシャーにしました。
アプリケーションは、Container Engineが管理するCompute Engineインスタンス内のDockerコンテナに存在します。 Pub/SubトピックとCompute Engineインスタンスは同じプロジェクトにあります。 google-cloudライブラリを使用して、Datastoreなどの他のCloud Platformサービスに接続できます。同じプロジェクトのApp Engineインスタンスから、同じPub/Subトピックに間違いなく公開することもできます。
google-cloudの代わりにgoogle-api-services-pubsub APIライブラリを使用すると運が増えますか?
これは暗闇の中のショットですが、正確な要求を送信しているマシンの日時ですか? – rmlan
正確であるようです、はい。 – colintemple
gcloudを使って同じ問題がありますか? https://cloud.google.com/sdk/gcloud/reference/alpha/pubsub/topics/publish – jarmod