今、私はCloud Storageに画像データがアップロードされたらAutoMLを動かしアップロードした画像を予測させて結果を出力するということをPythonで行おうとしています。

コチラのURLの記事を参考にして作っていました。

Cloud Functions を使って、AutoML Vision API を呼び出してみた。 - Qiita

しかし、このようなエラーが出てしまいました。

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"
    }
}

Cloud Functionsのソースに何を書くとエラーなくAutoMLで予測を行えるのか教えていただきたく思います。

よろしくお願いいたします。

ちなみに以下が実際に使用中のプログラムです。
PythonやGCPは初めて間もないので不足や間違いが多々あるかもしれませんがお助けいただけますと幸いです。


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

main.py

# -*- coding: utf-8 -*-
import json
from automl_vision1 import get_prediction


def hello_gcs(event, context):
    """Triggered by a change to a Cloud Storage bucket.
    Args:
         event (dict): Event payload.
         context (google.cloud.functions.Context): Metadata for the event.
    """
    file = event
    print(f"Processing file: {file['name']}.")

     # result = get_prediction(content=image.read())

requirements.txt

absl-py==0.8.0
astor==0.8.0
attrs==19.1.0
autopep8==1.4.4
backports.functools-lru-cache==1.5
backports.shutil-get-terminal-size==1.0.0
backports.weakref==1.0.post1
cachetools==3.1.1
certifi==2019.9.11
chardet==3.0.4
configparser==4.0.2
contextlib2==0.5.5
crcmod==1.7
decorator==4.4.0
enum34==1.1.6
funcsigs==1.0.2
functools32==3.2.3.post2
future==0.17.1
futures==3.3.0
gast==0.3.2
google-api-core==1.14.2
google-api-python-client==1.7.11
google-auth==1.6.3
google-auth-httplib2==0.0.3
google-cloud-bigquery==1.20.0
google-cloud-core==1.0.3
google-cloud-datastore==1.9.0
google-cloud-language==1.3.0
google-cloud-logging==1.12.1
google-cloud-spanner==1.10.0
google-cloud-storage==1.19.0
google-cloud-translate==1.6.0
google-cloud-videointelligence==1.11.0
google-cloud-vision==0.39.0
google-pasta==0.1.7
google-resumable-media==0.4.1
googleapis-common-protos==1.6.0
grpc-google-iam-v1==0.12.3
grpcio==1.23.0
h5py==2.10.0
httplib2==0.13.1
idna==2.8
importlib-metadata==0.23
ipaddr==2.2.0
ipython==5.8.0
ipython-genutils==0.2.0
jedi==0.14.1
jsonschema==3.0.2
Keras-Applications==1.0.8
Keras-Preprocessing==1.1.0
Markdown==3.1.1
mccabe==0.6.1
meld3==1.0.2
mercurial==4.0
mock==3.0.5
more-itertools==5.0.0
numpy==1.16.5
oauth2==1.9.0.post1
oauth2client==4.1.3
parso==0.5.1
pathlib2==2.3.4
pexpect==4.7.0
pickleshare==0.7.5
pluggy==0.13.0
prompt-toolkit==1.0.16
protobuf==3.9.1
ptyprocess==0.6.0
pyasn1==0.4.7
pyasn1-modules==0.2.6
pycodestyle==2.5.0
pydocstyle==3.0.0
pyflakes==2.1.1
Pygments==2.4.2
pyrsistent==0.15.4
python-jsonrpc-server==0.2.0
python-language-server==0.28.3
pytz==2019.2
requests==2.22.0
rope==0.14.0
rsa==4.0
scandir==1.10.0
simplegeneric==0.8.1
six==1.12.0
snowballstemmer==1.9.1
supervisor==3.3.1
tensorboard==1.14.0
tensorflow==1.14.0
tensorflow-estimator==1.14.0
termcolor==1.1.0
traitlets==4.3.2
uritemplate==3.0.0
urllib3==1.25.3
virtualenv==16.7.5
wcwidth==0.1.7
Werkzeug==0.15.6
wrapt==1.11.2
yapf==0.28.0
zipp==0.6.0
click==6.7
Flask==1.0.2
itsdangerous==0.24
Jinja2==2.10
MarkupSafe==1.0
pip==18.0
setuptools==40.2.0

automl_vision1.py

# -*- coding: utf-8 -*-
from google.cloud import automl_v1beta1
from google.cloud.automl_v1beta1.gapic import enums
from google.cloud.automl_v1beta1.proto import service_pb2

    try:

        client = automl_v1beta1.AutoMlClient.from_service_account_json('*****')
        prediction_client = automl_v1beta1.PredictionServiceClient.from_service_account_json('*****')

        project_id = '*********'
        compute_region = 'us-central1'
        model_id = '*********'

        def get_prediction(content):
            payload = {
                'image': {
                    'image_bytes': content
                }
            }

            ### 閾値
            params = {
                "score_threshold": bytes(b'0.1')
            }

            model_full_id = client.model_path(
                project_id, compute_region, model_id
            )

            ### predict
            request = prediction_client.predict(
                model_full_id, payload, params
            )

            ### 結果をパース -> ["person", 0.8235]
            result_list = [[result.display_name, result.classification.score]for result in request.payload]

            return result_list
        end
    except:
        pass