Развертывание облачной функции Google из облачной функции - PullRequest
0 голосов
/ 30 ноября 2018

Решено / недействительно - см. Ниже

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

Однако, что бы я ни пытался, Я получаю 403 Запрещено:

HttpError 403 при запросе https://cloudfunctions.googleapis.com/v1/projects/MY_PROJECT/locations/MY_REGION/functions?alt=json возвратил «У вызывающего абонента нет разрешения»

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

Это намеренно ограничено (например, чтобы избежать разрыва бомб или чего-то еще), или я делаю что-то не так?

Имеет лиКто-нибудь был в состоянии сделать эту работу?

Для справки: я запустил ту же самую функцию (Python) локально с Flask, используя свою учетную запись, а затем он отлично развернет новую облачную функцию, так что сам код кажетсявсе будет в порядке.

Обновление

Фрагмент кода того, как я пытаюсь развернуть облачную функцию:

cf_client = discovery.build('cloudfunctions', 'v1')

location = "projects/{MYPROJECT}/locations/europe-west1"

request = {
    "name": "projects/{MYPROJECT}/locations/europe-west1/functions/hopper--2376cd24d318cd2d42f000f4f1c31a8f", 
    "description": "Hopper hopper--2376cd24d318cd2d42f000f4f1c31a8f", 
    "entryPoint": "pubsub_trigger", 
    "runtime": "python37", 
    "availableMemoryMb": 256, 
    "timeout": "60s", 
    "sourceArchiveUrl": "gs://staging.{MYPROJECT}.appspot.com/deployment/hopper.zip", 
    "eventTrigger": {
        "eventType": "providers/cloud.pubsub/eventTypes/topic.publish",
        "resource": "projects/{MYPROJECT}/topics/hopper-test-input"
    },
    "environmentVariables": {
        "HOPPER_ID": "hopper--2376cd24d318cd2d42f000f4f1c31a8f"
    }
}

response = cf_client.projects() \
    .locations() \
    .functions() \
    .create(location=location, body=req) \
    .execute()

Обновление

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

1 Ответ

0 голосов
/ 04 декабря 2018

Правильный ответ должен быть: проверьте, что все действительно работает так, как и где вы ожидаете.Все было настроено правильно, и развертывание CF в CF не является проблемой.Проект был неверным из-за другого проекта по умолчанию, установленного в утилите gcloud.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...