Когда я извиняюсь за приведенный ниже код, я получаю сообщение «Для функции должен быть указан ровно один триггер». Когда я указываю триггер, я получаю «Внутренняя ошибка обнаружена». с каждой комбинацией, которую я пробую.
Я пытаюсь добиться отключения облачной функции, и, поскольку нет официального способа, я решил, что я исправлю функцию на что-то вроде тайм-аута 0 или установлю entryPoint на то, что не существует, но ничего не работает.
def patch_gcf_trigger(token_gcf_api):
headers = {
'Authorization': 'Bearer ' + token_gcf_api,
'Accept': 'application/json'
}
url = 'https://cloudfunctions.googleapis.com/v1/projects/XXXXX/locations/us-central1/functions'
r_dataj = requests.get(url, headers = headers).text
r_data = json.loads(r_dataj)
functions = r_data['functions']
for func in functions:
func_name = func['name']
if 'cost_capper' in func_name:
url = 'https://cloudfunctions.googleapis.com/v1/%s' % func_name
payload = {}
# payload['eventTrigger'] = {}
# payload['eventTrigger']['eventType'] = 'google.pubsub.topic.publish'
# payload['eventTrigger']['resource'] = 'projects/XXXXX/topics/testt'
# payload['eventTrigger']['service'] = 'pubsub.googleapis.com'
payload['entryPoint'] = 'testt'
# payload['timeout'] = '120s'
payloadj = json.dumps(payload)
r_dataj = requests.patch(url, payloadj, headers = headers).text
r_data = json.loads(r_dataj)
print(r_data)
Функция выглядит следующим образом:
{
"name": "projects/XXXXX/locations/us-central1/functions/cost_capper",
"eventTrigger": {
"eventType": "google.pubsub.topic.publish",
"resource": "projects/XXXXX/topics/test_billing",
"service": "pubsub.googleapis.com",
"failurePolicy": {}
},
"status": "ACTIVE",
"entryPoint": "main_start",
"timeout": "60s",
"availableMemoryMb": 256,
"serviceAccountEmail": "XXXXX@appspot.gserviceaccount.com",
"updateTime": "2020-03-11T15:03:15.217Z",
"versionId": "5",
"labels": {
"deployment-tool": "console-cloud"
},
"sourceUploadUrl": "XXXXXXX",
"runtime": "python37",
"ingressSettings": "ALLOW_ALL"
}