Cloud Scheduler не работает в облачной функции HTTP

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

Вот что я сделал до сих пор:

  1. Создал сервисный аккаунт под названием «облачная функция» с ролью владельца (для тестов).
  2. Создал задание облачной функции (назовем его JOB1) только с внутренним трафиком, europe-west3 (это то, что описано в моем приложении gcloud), и в качестве учетной записи службы я использовал свою «облачную функцию» SA.
  3. Cloud Scheduler, я поработал с JOB1 HTTP и:

    URL = JOB1s URL,
    auth method = OIDC,
    http method = get,
    SA = cloudfunction (which is linked in JOB1 as well)
    audience = JOB1s URL.
    

Я уже видел несколько тем с подобной проблемой, но в моем случае у меня есть учетная запись IAM [email protected], поэтому она не решает мою проблему, перезапуск API планировщика тоже.

Похожие темы, которые в моем случае не особо помогли:

Как вызвать облако Функция из Cloud Scheduler с аутентификацией

Невозможно вызвать функцию Google Cloud из планировщика GCP

не может вызвать облачную функцию из облачного планировщика


comment
как упоминается здесь в комментариях к этому ответу, пробовали ли вы новый проект stackoverflow.com/questions/61235853/   -  person Jan Hernandez    schedule 03.06.2020
comment
В другом потоке я видел, что обновление проекта помогает так же, как перезагрузка API планировщика ...   -  person brasai    schedule 03.06.2020
comment
Я создал задание в старом проекте и в новом, используя консоль GCP, и работает так, как ожидалось cloud.google.com/scheduler/docs/   -  person Jan Hernandez    schedule 03.06.2020
comment
Не могли бы вы объяснить, какие учетные записи служб (и с какими ролями) у вас есть и какую из них вы используете? У меня есть сервисная учетная запись с разрешениями владельца, но доступа к ней нет. Хм   -  person brasai    schedule 03.06.2020
comment
Многие вопросы: вы удалили и воссоздали облачную функцию SA? Вы предоставили облачной функции SA с ролью Service Account User?   -  person guillaume blaquiere    schedule 03.06.2020
comment
Да, я попытался воссоздать облачную функцию SA. i.imgur.com/iDUa4XO.png есть гранты, которые есть у облачной функции SA. Облачная функция SA, конечно же, связана с облачной функцией + облачный планировщик.   -  person brasai    schedule 03.06.2020
comment
Я понятия не имею, как это исправить, если честно. Документация не ясна и не полезна, если честно ..   -  person brasai    schedule 03.06.2020
comment
в обоих проектах я использовал учетную запись службы по умолчанию в облачной функции, а в облачном планировщике я использовал SA с ролью владельца, то есть   -  person Jan Hernandez    schedule 05.06.2020
comment
учетная запись по умолчанию, вы имеете в виду эту учетную запись для облачного планировщика? проблема в том, что я не могу выбрать его, потому что у меня есть эта учетная запись в учетных записях IAM, и я не могу выбрать ее в облачной функции в качестве учетной записи службы хмм. Кстати, вы используете внутренний трафик только в облачной функции? или, может быть, вы имеете в виду движок приложения для учетной записи по умолчанию   -  person brasai    schedule 05.06.2020
comment
да вы правы я забыл флаг только для внутреннего трафика.   -  person Jan Hernandez    schedule 05.06.2020


Ответы (1)


Такое поведение вызвано отсутствием связи между облачным планировщиком и внутренними службами GCP.

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

person Jan Hernandez    schedule 05.06.2020
comment
Я сталкиваюсь с чем-то похожим на это: попробуйте отправить запросы в облачную функцию, которая принимает только внутренний трафик (через конечную точку облака). Запросы через конечную точку облака также обнаруживаются как внешний трафик? - person han shih; 30.10.2020