Сообщение о публикации/подписке рабочего процесса GCP

У меня есть рабочий процесс GCP, в котором мне нужно опубликовать сообщение публикации/подписки, содержащее данные И некоторые атрибуты. Это три шага, которые инициализируют некоторые параметры, создают карту атрибутов и затем публикуют сообщение:

- initializeParameters:
    assign:
        - projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
        - outputFileName: '${input.outputFileName}'
        - pubsubMessage:
              filename: ${outputFileName}
        - base64Msg: '${base64.encode(json.encode(pubsubMessage))}'
    next: createNotifyMap
- createNotifyMap:
    assign:
        - notifyMap:
            firstAttribute: "value"
            secondAttribute: "value"
    next: notifyBC
- notifyBC:
    call: googleapis.pubsub.v1.projects.topics.publish
    args:
        topic: ${"projects/" + projectId + "/topics/topicname"}
        body:
            messages:
                - data: '${base64Msg}'
                - attributes: ${notifyMap}
    next: successfulRun

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

Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
0
0
92
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Каждое тире под узлом сообщений представляет собой новое сообщение. Чтобы опубликовать как одно сообщение, поместите каждый атрибут под одним тире:

messages:
    - data: '${base64Msg}'
      attributes: ${notifyMap}

Другие вопросы по теме