【发布时间】:2018-09-04 04:21:56
【问题描述】:
我正在尝试使用Google Cloud Platform AutoML 使用Python 构建应用程序。我的整体代码流程如下所示:
用户交互--> 发送到 PubSub 的数据--> 回调调用我的 AutoML--> 结果
调用pubsub的sn-p如下所示:
blob=blob+bytes(doc_type,'utf-8')
publisher.publish(topic,blob)
future=subscriber.subscribe(subscription,callback=callback)
#flash("The object is "+future,'info')
try:
future.result()
except Exception as ex:
subscriber.close()
在PubSub回调中:
def callback(message):
new_message=message.data
display_name,score=predict_value(new_message,"modelID","projectid",'us-central1')
message.ack()
我的predict_value 得到model_id、project id 并计算region 并执行预测。
当我直接调用predict_value 而不使用PubSub 时,它工作正常。如果我这样做,我会收到以下错误:
google.api_core.exceptions.PermissionDenied: 403 Permission 'automl.models.predict' denied on resource 'projects/projectID/locations/us-central1/models/' (or it may not exist).
请帮我解决问题
【问题讨论】:
-
这个回调在哪里执行?它是云功能还是具体在哪里?我的观点是执行此代码的服务帐户必须具有“automl.models.predict”权限。
-
嗨@Temu ...谢谢您的回复。整个谷歌云平台只有一个凭证权,就是我们账户中生成的服务账户密钥。我已将其添加到顶部...全局级别
-
我的意思是,我知道您正在尝试访问运行代码的同一个项目,对吧?
标签: python google-cloud-platform publish-subscribe google-cloud-pubsub google-cloud-automl