跳到内容

SinkBinding 引用

API version v1

此主题提供有关 SinkBinding 对象可配置参数的参考信息。

支持的参数

SinkBinding 资源支持以下参数

字段 描述 必需或可选
apiVersion 指定 API 版本,例如 sources.knative.dev/v1 必需
kind 标识此资源对象为 SinkBinding 对象。 必需
metadata 指定唯一标识 SinkBinding 对象的元数据。例如,name 必需
spec 指定此 SinkBinding 对象的配置信息。 必需
spec.sink 引用一个对象,该对象解析为用作接收器的 URI。 必需
spec.subject 对由 Binding 实现增强了“运行时契约”的资源引用。 必需
spec.ceOverrides 定义覆盖,以控制发送到接收器的事件的输出格式和修改。 可选

Subject 参数

Subject 参数引用由 Binding 实现增强了“运行时契约”的资源。

subject 定义支持以下字段

字段 描述 必需或可选
apiVersion 被引用对象的 API 版本。 必需
kind 被引用对象的类型。 必需
namespace 被引用资源的命名空间。如果省略,则默认为持有它的对象。 可选
名称 被引用对象的名称。 如果配置了 selector,请勿使用。
selector 被引用资源的 selector 如果配置了 name,请勿使用。
selector.matchExpressions 标签选择器要求的列表。要求是 AND 关系。 使用 matchExpressionsmatchLabels 中的一个
selector.matchExpressions.key 选择器应用的标签键。 如果使用 matchExpressions,则为必需
selector.matchExpressions.operator 表示键与一组值的关系。有效运算符是 InNotInExistsDoesNotExist 如果使用 matchExpressions,则为必需
selector.matchExpressions.values 字符串值数组。如果 operatorInNotIn,则 values 数组必须非空。如果 operatorExistsDoesNotExist,则 values 数组必须为空。在战略合并补丁期间,此数组将被替换。 如果使用 matchExpressions,则为必需
selector.matchLabels 键值对的映射。matchLabels 映射中的每个键值对等效于 matchExpressions 的一个元素,其中键字段是 matchLabels.<key>operatorIn,并且 values 数组只包含“matchLabels”。”。要求是 AND 关系。 使用 matchExpressionsmatchLabels 中的一个

Subject 参数示例

给定以下 YAML,将选择 default 命名空间中名为 mysubjectDeployment

apiVersion: sources.knative.dev/v1
kind: SinkBinding
metadata:
  name: bind-heartbeat
spec:
  subject:
    apiVersion: apps/v1
    kind: Deployment
    namespace: default
    name: mysubject
  ...

给定以下 YAML,将选择 default 命名空间中带有标签 working=example 的任何 Job

apiVersion: sources.knative.dev/v1
kind: SinkBinding
metadata:
  name: bind-heartbeat
spec:
  subject:
    apiVersion: batch/v1
    kind: Job
    namespace: default
    selector:
      matchLabels:
        working: example
  ...

给定以下 YAML,将选择 default 命名空间中带有标签 working=exampleworking=sample 的任何 Pod

apiVersion: sources.knative.dev/v1
kind: SinkBinding
metadata:
  name: bind-heartbeat
spec:
  subject:
    apiVersion: v1
    kind: Pod
    namespace: default
    selector:
      - matchExpression:
        key: working
        operator: In
        values:
          - example
          - sample
  ...

CloudEvent 覆盖

CloudEvent 覆盖定义了用于控制发送到接收器的事件的输出格式和修改的覆盖。

ceOverrides 定义支持以下字段

字段 描述 必需或可选
extensions 指定哪些属性被添加到出站事件或被其覆盖。每个 extensions 键值对作为属性扩展独立地设置在事件上。 可选

注意

只允许使用有效的 CloudEvent 属性名称 作为扩展。您不能从扩展覆盖配置中设置规范定义的属性。例如,您不能修改 type 属性。

CloudEvent 覆盖示例

apiVersion: sources.knative.dev/v1
kind: SinkBinding
metadata:
  name: bind-heartbeat
spec:
  ...
  ceOverrides:
    extensions:
      extra: this is an extra attribute
      additional: 42

契约

这将导致 K_CE_OVERRIDES 环境变量在 subject 上设置如下

{ "extensions": { "extra": "this is an extra attribute", "additional": "42" } }

我们使用分析和 cookie 来了解网站流量。有关您使用我们网站的信息会与 Google 共享以达到此目的。了解更多。