Как программно создать облачную функцию Google с помощью клиента Go API - PullRequest
0 голосов
/ 30 января 2019

Существует пакет Go для взаимодействия с API Cloud Functions ( google.golang.org / api / cloudfunctions / v1 ), но я не могу понять, как использовать его для создания новых функций.Я получаю ошибки 404 и 403 при попытке загрузить подписанный URL-адрес для хранилища Cloud Storage.

Кто-нибудь знает, как использовать этот пакет для развертывания облачных функций?

1 Ответ

0 голосов
/ 31 января 2019

Я столкнулся с подобной проблемой при использовании google.golang.org/api/cloudfunctions/v1, первая проблема с ошибкой 403, которая возникла у меня, была связана с использованием клиента авторизации с предварительно заданным URL-адресом для генерации загрузки, с помощью простого http-клиента, помогшего

httpClient := http.DefaultClient
data, err := ioutil.ReadAll(reader)
if err != nil {
    return err
}
request, err := http.NewRequest("PUT", uploadURL, bytes.NewReader(data))
if err != nil {
    return err
}
request.Header.Set("content-type", "application/zip")
request.Header.Set("x-goog-content-length-range", "0,104857600")
request.Header.Set("Content-Length", fmt.Sprintf("%d", len(data)))
response, err := httpClient.Do(request)
if err != nil {
    return err
}

Другая проблема, с которой я столкнулся в 404, была, когда я использовал местоположение в качестве региона, а не полное имя, представленное в следующем фрагменте

var location =  'projects/${projectID}/locations/${region}'  
projectService := cloudfunctions.NewProjectsLocationsFunctionsService(ctxClient.service)
createCall := projectService.Create(location, request.CloudFunction)
createCall.Context(ctxClient.Context())
return createCall.Do()
h

Вы также можете проверить функции облака Голанга.google.golang.org/api/cloudfunctions/v1 Использование API в этом проекте:

Служба облачных функций

...