前提・実現したいこと
前提
Google Cloud Pub/Sub でGmailのプッシュ通知を受け取り、Functions でメール返信をするBOTを作ろうとしています。今のところ動作自体は期待通り動いています。
問題点
プッシュ通知自体は受け取り出来ているのですがレスポンスを返していない為、未読状態のサブスクリプションが大量に溜まっている状態と思われます(以下参照)。ack_idがどこにあるかわからず、レスポンスを返せてません。
現在は受信待機を最大(600sec)にして、保持期限を最小(10min)にして強引に捨てています。
実際通信少ないので今のところ実害は無いのですが、ちゃんとしたいです。
参考にしたページ
GmailAPI公式ガイド
Cloud Pub/Sub ドキュメント
github Google Cloud Client Libraries for Python
環境・現況
Pub/Sub
サブスクリプション
・配信タイプ - pull
・エンドポイント - Functions
Funtions
・リージョン - us-central1
割り当てられるメモリ - 512 MB
タイムアウト - 60 秒
トリガー - cloud Pub/Sub トピック同上
上記ファンクションのデプロイ以外はブラウザのコンソールで設定しました
発生している問題・試したこと
python3
1import os 2from google.cloud.pubsub_v1 import SubscriberClient 3 4os.environ["GOOGLE_APPLICATION_CREDENTIALS"]='pubsub_client_sennyou.json' 5 6PROJECT_ID = '*****' 7TOPIC_NAME = '*****' 8SUBSCRIPTION_NAME = '*****' 9 10sub_name = 'projects/{project_id}/subscriptions/{sub}'.format( 11 project_id=PROJECT_ID,sub=SUBSCRIPTION_NAME) 12 13def callback(message): 14 print(message.data) 15 message.ack() 16 17subscriber = SubscriberClient() 18future = subscriber.subscribe(sub_name,callback) 19try: 20 print(future.result()) 21except KeyboardInterrupt: 22 future.cancel()
上記コードを実行すると、延々と下の結果を吐き続け忘れたころに固まります。。。。
(別件なのですが、histryIdの選別も希望とちょっと違う。。)
b'{"emailAddress":"*****@gmail.com","historyId":8861}' b'{"emailAddress":"*****@gmail.com","historyId":8904}' b'{"emailAddress":"*****@gmail.com","historyId":8974}' b'{"emailAddress":"*****@gmail.com","historyId":8720}' 以下、延々と続く。。。
いろいろやってみましたが、どうしても解決できませんでした。
お詳しい方、なにとぞよろしくお願い致します。
![guest](/img/icon/icnUserSample.jpg)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。