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

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

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

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

Google Cloud Storage

Google Cloud Storageは、グーグル社が提供しているクラウドベースのデベロッパー・企業向けストレージサービス。可用性に優れ、APIで操作可能なため、データのアーカイブ保存やアプリケーションのコンテンツ提供など様々な用途に活用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

555閲覧

PythonでGCPのCloud Functionsを使ってCloud Storageにある画像をAutoMLの中のモデルで予測させたいです。

toni

総合スコア4

Google Cloud Platform

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

Google Cloud Storage

Google Cloud Storageは、グーグル社が提供しているクラウドベースのデベロッパー・企業向けストレージサービス。可用性に優れ、APIで操作可能なため、データのアーカイブ保存やアプリケーションのコンテンツ提供など様々な用途に活用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

2クリップ

投稿2019/10/02 02:00

編集2022/01/12 10:55

前提・実現したいこと

今、私はGCPのCloud Storageに画像データがアップロードされたらAutoMLを動かしアップロードした画像を予測させて結果を出力するということをPython3.7で行おうとしています。
コードはCloud Functionsのソースの中に書いています。
コチラのURLの記事を参考にして作っていました。
https://qiita.com/pyru89kwmr/items/93915a0bb7e958288c35

しかし、デプロイするとこのようなエラーが出てしまいました。

発生している問題・エラーメッセージ

Build failed: { "error": { "canonicalCode": "INVALID_ARGUMENT", "errorMessage": "`pip_download_wheels` had stderr output:\nCommand \"python setup.py egg_info\" failed with error code 1 in /tmp/pip-wheel-ht8988nt/functools32/\n\nerror: `pip_download_wheels` returned code: 1", "errorType": "InternalError", "errorId": "1CCAE325" } }

該当のソースコード

〇main.py

Python

1 2 # -*- coding: utf-8 -*- 3 import json 4 from automl_vision1 import get_prediction 5 6 7 def hello_gcs(event, context): 8 """Triggered by a change to a Cloud Storage bucket. 9 Args: 10 event (dict): Event payload. 11 context (google.cloud.functions.Context): Metadata for the event. 12 """ 13 file = event 14 print(f"Processing file: {file['name']}.") 15 16 # result = get_prediction(content=image.read()) 17

〇automl_vision1.py

Python

1 2 3 # -*- coding: utf-8 -*- 4 from google.cloud import automl_v1beta1 5 from google.cloud.automl_v1beta1.gapic import enums 6 from google.cloud.automl_v1beta1.proto import service_pb2 7 8 try: 9 10 client = automl_v1beta1.AutoMlClient.from_service_account_json('*****') 11 prediction_client = automl_v1beta1.PredictionServiceClient.from_service_account_json('*****') 12 13 project_id = '*********' 14 compute_region = 'us-central1' 15 model_id = '*********' 16 17 def get_prediction(content): 18 payload = { 19 'image': { 20 'image_bytes': content 21 } 22 } 23 24 ### 閾値 25 params = { 26 "score_threshold": bytes(b'0.1') 27 } 28 29 model_full_id = client.model_path( 30 project_id, compute_region, model_id 31 ) 32 33 ### predict 34 request = prediction_client.predict( 35 model_full_id, payload, params 36 ) 37 38 ### 結果をパース -> ["person", 0.8235] 39 result_list = [[result.display_name, result.classification.score]for result in request.payload] 40 41 return result_list 42 end 43 except: 44 pass

〇requirements.txt

txt

1 2 absl-py==0.8.0 3 astor==0.8.0 4 attrs==19.1.0 5 autopep8==1.4.4 6 backports.functools-lru-cache==1.5 7 backports.shutil-get-terminal-size==1.0.0 8 backports.weakref==1.0.post1 9 cachetools==3.1.1 10 certifi==2019.9.11 11 chardet==3.0.4 12 configparser==4.0.2 13 contextlib2==0.5.5 14 crcmod==1.7 15 decorator==4.4.0 16 enum34==1.1.6 17 funcsigs==1.0.2 18 functools32==3.2.3.post2 19 future==0.17.1 20 futures==3.3.0 21 gast==0.3.2 22 google-api-core==1.14.2 23 google-api-python-client==1.7.11 24 google-auth==1.6.3 25 google-auth-httplib2==0.0.3 26 google-cloud-bigquery==1.20.0 27 google-cloud-core==1.0.3 28 google-cloud-datastore==1.9.0 29 google-cloud-language==1.3.0 30 google-cloud-logging==1.12.1 31 google-cloud-spanner==1.10.0 32 google-cloud-storage==1.19.0 33 google-cloud-translate==1.6.0 34 google-cloud-videointelligence==1.11.0 35 google-cloud-vision==0.39.0 36 google-pasta==0.1.7 37 google-resumable-media==0.4.1 38 googleapis-common-protos==1.6.0 39 grpc-google-iam-v1==0.12.3 40 grpcio==1.23.0 41 h5py==2.10.0 42 httplib2==0.13.1 43 idna==2.8 44 importlib-metadata==0.23 45 ipaddr==2.2.0 46 ipython==5.8.0 47 ipython-genutils==0.2.0 48 jedi==0.14.1 49 jsonschema==3.0.2 50 Keras-Applications==1.0.8 51 Keras-Preprocessing==1.1.0 52 Markdown==3.1.1 53 mccabe==0.6.1 54 meld3==1.0.2 55 mercurial==4.0 56 mock==3.0.5 57 more-itertools==5.0.0 58 numpy==1.16.5 59 oauth2==1.9.0.post1 60 oauth2client==4.1.3 61 parso==0.5.1 62 pathlib2==2.3.4 63 pexpect==4.7.0 64 pickleshare==0.7.5 65 pluggy==0.13.0 66 prompt-toolkit==1.0.16 67 protobuf==3.9.1 68 ptyprocess==0.6.0 69 pyasn1==0.4.7 70 pyasn1-modules==0.2.6 71 pycodestyle==2.5.0 72 pydocstyle==3.0.0 73 pyflakes==2.1.1 74 Pygments==2.4.2 75 pyrsistent==0.15.4 76 python-jsonrpc-server==0.2.0 77 python-language-server==0.28.3 78 pytz==2019.2 79 requests==2.22.0 80 rope==0.14.0 81 rsa==4.0 82 scandir==1.10.0 83 simplegeneric==0.8.1 84 six==1.12.0 85 snowballstemmer==1.9.1 86 supervisor==3.3.1 87 tensorboard==1.14.0 88 tensorflow==1.14.0 89 tensorflow-estimator==1.14.0 90 termcolor==1.1.0 91 traitlets==4.3.2 92 uritemplate==3.0.0 93 urllib3==1.25.3 94 virtualenv==16.7.5 95 wcwidth==0.1.7 96 Werkzeug==0.15.6 97 wrapt==1.11.2 98 yapf==0.28.0 99 zipp==0.6.0 100 click==6.7 101 Flask==1.0.2 102 itsdangerous==0.24 103 Jinja2==2.10 104 MarkupSafe==1.0 105 pip==18.0 106 setuptools==40.2.0 107

〇サービスアカウントキー
省略

試したこと

requirements.txtにこれらを書き足しました。
click==6.7
Flask==1.0.2
itsdangerous==0.24
Jinja2==2.10
MarkupSafe==1.0
pip==18.0
setuptools==40.2.0
また、wheelやwheelsも書き足してみましたが変化がありませんでした。

補足情報

そもそもautoml_vision1.pyやmain.py内のコードも正しく書けているかも不安です。
PythonやGCPを初めて間もないので不足や間違いが多々あるかもしれませんがお助けいただけますと幸いです。
よろしくお願いいたします。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問