Argo 工作流程输入参数以及来自 SQS 负载的值

问题描述 投票:0回答:1

我想通过从 SQS 事件源的有效负载读取值来触发 Argo 工作流程。 例如,我的工作流程模板接受输入参数“日期”。我需要监听 AWS SQS 并从我的 sqs 负载中提取该值,然后通过将该值作为输入参数传递来触发工作流程。

示例 sqs 有效负载: {“日期”:“2024-01-01”}。

我能够使用输入参数和 sqs 事件源创建工作流程,但我缺少需要从传入消息中提取日期值并将其传递给工作流程参数的部分。

在下面的代码中,我需要将依赖项“dependency-abc”的有效负载({“date”:“2024-01-01”})中的值传递到“input.parameters.date”

apiVersion: argoproj.io/v1alpha1
kind: Sensor
metadata:
  name: aws-sqs
spec:
  template:
    serviceAccountName: daadi-argo-sa
  dependencies:
    - name: dependency-abc
      eventSourceName: aws-sqs
      eventName: event-abc
  triggers:
    - template:
        name: sqs-workflow
        k8s:
          operation: create
          source:
            resource:
              apiVersion: argoproj.io/v1alpha1
              kind: Workflow
              metadata:
                generateName: aws-sqs-workflow-
              spec:
                serviceAccountName: argo-sa
                entrypoint: whalesay
                arguments:
                  parameters:
                  - name: date
                templates:
                - name: whalesay
                  inputs:
                    parameters:
                    - name: message
                  container:
                    image: docker/whalesay:latest
                    command: [cowsay]
                    args: ["{{inputs.parameters.date}}"]
        
amazon-sqs argo-workflows argo argo-events
1个回答
0
投票

需要在

parameters
内指定
src
dependencyName
dataKey
dest
k8s
。这些源和目标参数将依赖项有效负载映射到工作流程参数。

k8s:
  operation: create
  source:
    resource:
      apiVersion: argoproj.io/v1alpha1
      kind: Workflow
      metadata:
        generateName: aws-sqs-workflow-
      spec:
        serviceAccountName: argo-sa
        entrypoint: whalesay
        arguments:
          parameters:
            - name: date
        templates:
          - name: whalesay
            inputs:
              parameters:
                - name: message
            container:
              image: docker/whalesay:latest
              command: [cowsay]
              args: ["{{inputs.parameters.date}}"]
  parameters: # Parameters to pass to the Workflow
    - src: # Source of the data
        dependencyName: dependency-abc # Event source dependency
        dataKey: date # Selector for payload data (date)
      dest: spec.arguments.parameters.0.value # Destination for data selection (first parameter - date)

参考资料:

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.