質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

0回答

1142閲覧

gcpで2つのcloud functionsを使った分散処理のエラーについて

yor13

総合スコア8

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/01/30 15:08

編集2021/01/30 15:10

5時間ほど悪戦苦闘しましたが、どうしても分からないので質問させていただきます。

ズバリこれを解決してほしい!

GCP上で下記画像のようなエラーが出ています。これを解決していただきたいです。
イメージ説明

環境

Python3.8
GCP

経緯

もともとは1つのcloud functionで完結させようとしていたコードを、timeoutの関係から分割して実行する必要が起きました。
下記のサイトを参考にして、2つのcloud functionで実装したところ、上記画像のようなエラーが多発しています。
簡単な処理の流れとしては run-scrape-dbh-price-on-yafuoku → scrape-dbh-price-on-yafuokuです。
1つのcloud functionの時は問題なくプログラムが動いていたので、原因はおそらく2つのcloud functionの受け渡しのところだと思います。またネットで調べたところgoogle-cloud-pubsubのバージョンが結構シビア?みたいなので、これも原因としてありそうです。
正直自分はまだまだ知識不足なので全く太刀打ちが出来ません。
エラー文の言っていることもgoogle翻訳してみましたが意味が分かりません。

どうか解決お願いします。
また、この質問が分かりにくい場合は、なんなりと追加の情報提供します。

ソースコード

2つのcloud functionを繋げるところは、下記サイトを参考にして作りました。
https://qiita.com/kenkanayama/items/681440c05f79c2e61051

run-scrape-dbh-price-on-yafuoku

main

1from google.cloud import pubsub_v1 2import pytz 3import datetime 4from google.cloud import firestore 5import os 6 7db = firestore.Client() 8 9def main(event, context): 10 """Triggered from a message on a Cloud Pub/Sub topic. 11 Args: 12 event (dict): Event payload. 13 context (google.cloud.functions.Context): Metadata for the event. 14 """ 15 PROJECT_ID = os.getenv("GCP_PROJECT") 16 client = pubsub_v1.PublisherClient() 17 topic_id = "test-topic" 18 19 topic_path = client.topic_path(PROJECT_ID, topic_id) 20 21  #500個ほどの要素数 22 card_numbers = [ 23 [~,~,~], 24 [~,~,~], 25 [~,~,~] 26 ] 27 28 for i in [0, 1, 2]: 29 print(i) 30 if passedPreCheck(i): 31 data = ",".join(card_numbers[i]) + f"-{i}" 32 print(data) 33 data1 = data.encode() 34 print(data1) 35 client.publish(topic_path, data=data1) 36

requirements

1# Function dependencies, for example: 2# package>=version 3beautifulsoup4>=4.9.1 4requests>=2.24.0 5google-cloud-firestore>=1.2.0 6pytz==2020.1 7google-cloud-pubsub==0.45.0
scrape-dbh-price-on-yafuoku

main

1import requests 2from bs4 import BeautifulSoup 3import datetime 4from google.cloud import firestore 5import pytz 6import time 7import base64 8 9db = firestore.Client() 10 11def main(event, context): 12 """Triggered from a message on a Cloud Pub/Sub topic. 13 Args: 14 event (dict): Event payload. 15 context (google.cloud.functions.Context): Metadata for the event. 16 """ 17 event_message = base64.b64decode(event["data"]).decode("utf-8") 18 data = eval(event_message) 19 print(data) 20 21 a = data.split("-") 22 dict2 = {"card_numbers": a[0].split(","), "number": a[1]} 23 24 yafuoku_url = "https://auctions.yahoo.co.jp/" 25 output = [] 26 for j, card_number in enumerate(dict2["card_numbers"]): 27 price = get_average_price(yafuoku_url, card_number) 28 print(price) 29 output.append({"card_number": card_number, "average_price": price}) 30 time.sleep(0.5) 31 print(output) 32 insert_to_firestore(output, dict2["number"]) 33 print("end")

requirements

1# Function dependencies, for example: 2# package>=version 3beautifulsoup4>=4.9.1 4requests>=2.24.0 5google-cloud-firestore>=1.2.0 6pytz==2020.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

68user

2021/01/31 03:12

・スクリーンショットだけなので、スタックトレース全体が見られない。どこでエラーになっているかわからない。 ・run-scrape-dbh-price-on-yafuoku から関係ない部分を削って切り分けすればいいのに (firestore.Client() とか全然関係ないし) ・ネットで調べたところgoogle-cloud-pubsubのバージョンが結構シビア? と思うなら、その URL を提示すればいいのに。 と思いました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問