Google Cloud Function не удается собрать - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь обновить облачную функцию, которая работает уже более недели.

Но когда я пытаюсь обновить функцию сегодня, я получаю сообщение BUILD FAILED: BUILD HAS TIMED OUT error

Ошибка сбоя сборки

Я использую облачную консоль Google для развертывания функции python, а не облачной оболочки. Я даже пытался создать новую копию функции, но это тоже не удалось.

Глядя на журналы, он говорит INVALID_ARGUMENT. Но я просто использую консоль и ничего не изменил, кроме кода python по сравнению с предыдущей сборкой, которую я успешно развернул на прошлой неделе.

Журналы ошибок

{
 insertId: "fjw53vd2r9o"  
 logName: " my log name "  
 operation: {…}  
 protoPayload: {
  @type: "type.googleapis.com/google.cloud.audit.AuditLog"   
  authenticationInfo: {…}   
  methodName: "google.cloud.functions.v1.CloudFunctionsService.UpdateFunction"   
  requestMetadata: {…}   
  resourceName: " my function name"   
  serviceName: "cloudfunctions.googleapis.com"   
  status: {
   code: 3    
   message: "INVALID_ARGUMENT"    
  }
 }
 receiveTimestamp: "2020-02-05T18:04:18.269557510Z"  
 resource: {…}  
 severity: "ERROR"  
 timestamp: "2020-02-05T18:04:18.241Z"  
}

Я даже пытался увеличить параметр тайм-аута до 540 секунд, и все равно получаю ошибку сборки.

Настройка параметра тайм-аута

Может кто-нибудь помочь, пожалуйста

1 Ответ

0 голосов
/ 05 февраля 2020

В будущем, пожалуйста, скопируйте и вставьте текст из ошибок и журналов, а не ссылки на скриншоты; его легче разобрать, и, возможно, он более постоянный.

Возможно, существует временная проблема со службой (в вашем регионе), которая вызывает у вас проблемы. Продолжается ли эта проблема?

Вы можете проверить панель состояния (нет функций для функций) на наличие проблем с обслуживанием:

https://status.cloud.google.com/

I только что развернул и обновил Golang функцию в us-centrall без проблем.

Какой язык | runtime вы используете? Какой регион?

Уверены ли вы, что ваши обновления в функции верны?

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

NB Настройка времени ожидания применяется к вызовам функции, а не к развертыванию.

Пример (с использованием gcloud)

PROJECT=[[YOUR-PROJECT]]
BILLING=[[YOUR-BILLING]]

gcloud projects create ${PROJECT}
gcloud beta billing projects link ${PROJECT} --billing-account=${BILLING}
gcloud services enable cloudfunctions.googleapis.com --project=${PROJECT}

touch function.go go.mod

# Deploy
gcloud functions deploy fred \
--region=us-central1 \
--allow-unauthenticated \
--entry-point=HelloFreddie \
--trigger-http \
--source=${PWD} \
--project=${PROJECT} \
--runtime=go113

# Update
gcloud functions deploy fred \
--region=us-central1 \
--allow-unauthenticated \
--entry-point=HelloFreddie \
--trigger-http \
--source=${PWD} \
--project=${PROJECT} \
--runtime=go113

# Test
curl \
--request GET \
$(\
  gcloud functions describe fred \
  --region=us-central1 \
  --project=${PROJECT} \
  --format="value(httpsTrigger.url)")
Hello Freddie

Журналы:

gcloud logging read "resource.type=\"cloud_function\" resource.labels.function_name=\"fred\" resource.labels.region=\"us-central1\" protoPayload.methodName=(\"google.cloud.functions.v1.CloudFunctionsService.CreateFunction\" OR \"google.cloud.functions.v1.CloudFunctionsService.UpdateFunction\")" \
--project=${PROJECT} \
--format="json(protoPayload.methodName,protoPayload.status)"
[
  {
    "protoPayload": {
      "methodName": "google.cloud.functions.v1.CloudFunctionsService.CreateFunction"
    }
  },
  {
    "protoPayload": {
      "methodName": "google.cloud.functions.v1.CloudFunctionsService.CreateFunction",
      "status": {}
    }
  },
  {
    "protoPayload": {
      "methodName": "google.cloud.functions.v1.CloudFunctionsService.UpdateFunction"
    }
  },
  {
    "protoPayload": {
      "methodName": "google.cloud.functions.v1.CloudFunctionsService.UpdateFunction",
      "status": {}
    }
  }
]
...