向右跳...
我在Google Cloud Function中具有以下python代码
main.py
import flask, requests
def gce_test(request):
test = {"data": {}, "meta": {}, "error": {}}
metadata_server = "http://metadata/computeMetadata/v1/instance/"
metadata_flavor = {'Metadata-Flavor' : 'Google'}
gce_id = requests.get(metadata_server + 'id', headers = metadata_flavor).text
gce_name = requests.get(metadata_server + 'hostname', headers = metadata_flavor).text
gce_machine_type = requests.get(metadata_server + 'machine-type', headers = metadata_flavor).text
test["data"]["gce_id"] = gce_id
test["data"]["gce_name"] = gce_name
test["data"]["gce_machine_type"] = gce_machine_type
test["meta"]["metadata_server"] = metadata_server
test["meta"]["metadata_flavor"] = metadata_flavor
test["meta"]["metadata_server_full"] = metadata_server + 'id'
test["meta"]['generator'] = 'google-cloud-function'
return flask.jsonify(test)
我现在面临的问题是,我得到一个404 page not found
用于gce_id,gce_machine_type,gce_name这意味着请求metadata_server未取得...
我的问题是如何向metadata_server发出HTTP Get请求,并将实例名称作为参数传递给它...这样做可行吗?
您当前正在向GCE元数据服务器URL发出请求。Cloud Functions在GAE Standard之上运行,因此最终使用http://metadata.google.internal网址。我提供了一个与当前云功能配合使用以记录项目ID的示例。
import flask, requests
def gce_test(request):
test = {"data": {}, "meta": {}, "error": {}}
metadata_server = "http://metadata.google.internal/computeMetadata/v1/project/project-id"
metadata_flavor = {'Metadata-Flavor' : 'Google'}
project = requests.get(metadata_server, headers = metadata_flavor).text
test["data"]["gce_id"] = project
return flask.jsonify(test)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句