Мой тестовый конвейер действительно прост. Он пытается читать из темы, созданной через консоль.
public static void main(String[] args) throws IOException {
Options options = PipelineOptionsFactory.fromArgs(args).
withValidation().as(Options.class);
options.setStreaming(true);
Pipeline pipeline = Pipeline.create(options);
PCollection<String> input = pipeline
.apply(PubsubIO.Read.topic(options.getPubsubTopic()))
.apply(ParDo.of(new ExtractEvents()));
pipeline.run();
}
Когда я пытаюсь запустить этот конвейер, я получаю следующую ошибку:
Сбой рабочего процесса. Причины: (de5f777e2e08c1d9): Шаг setup_resource_additionaltopic.subscription-375367840492394866711: Не удалось настроить ресурс additionaltopic.subscription-3753678404923948667
Консоль Dataflow также сообщает о внутренней ошибке:
Я ничего не могу найти в документации, и мои попытки проб и ошибок решить эту проблему не увенчались успехом.
Решение
Чтобы запустить задание Dataflow, в проекте должны быть включены следующие API Google Cloud Platform:
- API Google Cloud Dataflow
- Compute Engine API (Google Compute Engine)
- Google Cloud Logging API
- Облачное хранилище Google
- Google Cloud Storage JSON API
- BigQuery API
- Google Cloud Pub / Sub
- API Google Cloud Datastore
Вы можете использовать консоль Google Cloud Platform, чтобы включить все необходимые API сразу.