Облачные функции Google - Ошибка развертывания Python - Ошибка развертывания: сбой функции при загрузке кода пользователя - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь повторно развернуть ранее работающую облачную функцию Python с помощью встроенного редактора. Без изменений в исходном файле или файле require.txt развертывание завершается сбоем со следующим сообщением об ошибке:

Deployment failure:
Function failed on loading user code. Error message: Error: cannot communicate with function.

Журналы функций содержат следующую информацию:

{
 insertId: "-xueafgcygm"  
 logName: "projects/xxx/logs/cloudaudit.googleapis.com%2Factivity"  
 operation: {
  id: "operations/YXBvdGV4MzYwL3VzLWNlbnRyYWwxL2RvTG9hZEFwb3RleDM2MFByb2R1Y3QvSHhiWWlvVHVmdkE"   
  last: true   
  producer: "cloudfunctions.googleapis.com"   
 }
 protoPayload: {
  @type: "type.googleapis.com/google.cloud.audit.AuditLog"   
  authenticationInfo: {
   principalEmail: "xxx@gmail.com"    
  }
  methodName: "google.cloud.functions.v1.CloudFunctionsService.UpdateFunction"   
  requestMetadata: {
   destinationAttributes: {
   }
   requestAttributes: {
   }
  }
  resourceName: "projects/xxx/locations/us-central1/functions/doLoadProduct"   
  serviceName: "cloudfunctions.googleapis.com"   
  status: {
   code: 3    
   message: "INVALID_ARGUMENT"    
  }
 }
 receiveTimestamp: "2019-11-04T16:17:00.108301794Z"  
 resource: {
  labels: {
   function_name: "doLoadProduct"    
   project_id: "xxx"    
   region: "us-central1"    
  }
  type: "cloud_function"   
 }
 severity: "ERROR"  
 timestamp: "2019-11-04T16:16:59.612Z"  
}

Это начало происходитьв прошлую пятницу и продолжается сегодня. Я также пробовал локальное развертывание, используя функции gcloud deploy, где я получаю похожее сообщение об ошибке:

ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Function failed on loading user code. Error message: Error: cannot communicate with function.

Я был бы признателен за некоторые указания по дальнейшим шагам для решения этой проблемы.

--- Обновление ---

С предложениями Дастина предоставить файл с исходным кодом и требованиями, я работал над тем, чтобы выяснить, смогу ли я воссоздать проблему с минимальным количеством кода, насколько это возможно.

main.py

import base64
import mysql.connector as db
from google.cloud import storage

def hello_pubsub(event, context):
    pubsub_message = base64.b64decode(event['data']).decode('utf-8')
    print(pubsub_message)

needs.txt

google-cloud-storage==1.21.0
mysql-connector-python==8.0.18

Оказывается, версии google-cloud-storage несовместимы. Измените на mysql-connector-phthon <8.0.18, и функция развернется нормально. </p>

Таким образом, проблема решена.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

Решено с помощью mysql-connector-python <8.0.18 </p>

Спасибо за помощь и предложения.

0 голосов
/ 05 ноября 2019

Как упомянул Дастин, было бы полезно, если бы вы поделились кодом вашей функции и содержимым файла needs.txt .

На основе ошибки(не имея более конкретной информации), мне кажется, что проблема связана с вашей конфигурацией облачных функций. В таком случае это может помочь сбросить конфигурацию ваших облачных функций, однако для этого также потребуется удалить ваших функций. Вы можете добиться этого, выполнив следующие действия:

  • Перейдите на Консоль Google Cloud * -> API и службы -> API облачных функций -> Отключить API
  • Отключить API облачных функций Google.
  • Включить API снова.
  • Попробуйте развернуть функцию.

Пожалуйста, дайте мне знать, если это поможет или предоставьте более подробную информацию, чтобы я мог глубже изучить ее.

...