组件schema

Dapr组件的基本 schema

Dapr 使用 CustomResourceDefinition 定义和注册组件。 所有组件都定义为 CRD,可应用于 Dapr 运行的任何托管环境,而不仅仅是 Kubernetes。

格式

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: [COMPONENT-NAME]
  namespace: [COMPONENT-NAMESPACE]
spec:
  type: [COMPONENT-TYPE]
  version: v1
  initTimeout: [TIMEOUT-DURATION]
  ignoreErrors: [BOOLEAN]
  metadata:
  - name: [METADATA-NAME]
    value: [METADATA-VALUE]

字段

字段必填详情Example
apiVersionY您正在调用的Dapr版本(如果适用的话为 Kubernetes) APIdapr.io/v1alpha1
kindYCRD的类型。 组件必须始终是 ComponentComponent (组件)
metadata-有关组件注册的信息
metadata.nameY组件的名称prod-statestore
metadata.namespaceN主机环境的命名空间myapp-namespace
spec-关于组件资源的详细信息
spec.typeY组件类型state.redis
spec.versionY组件版本v1
spec.initTimeout组件初始化的超时时间 默认为30秒5m, 1h, 20s
spec.ignoreErrors如果组件加载失败,请告诉Dapr sidecar 继续初始化。 默认为 falsefalse
spec.metadata-一个组件特定配置的键/值。 查看你的组件字段定义

特殊的元数据值

元数据值可以包含一个 {uuid} 标签,当 Dapr sidecar 启动时,该标记将被随机生成的 UUID 所取代。 每个启动都会生成新的 UUID。 It can be used, for example, to have a pod on Kubernetes with multiple application instances consuming a shared MQTT subscription. 下面是一个使用 {uuid} 选项的示例。

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: messagebus
spec:
  type: pubsub.mqtt
  version: v1
  metadata:
    - name: consumerID
      value: "{uuid}"
    - name: url
      value: "tcp://admin:public@localhost:1883"
    - name: qos
      value: 1
    - name: retain
      value: "false"
    - name: cleanSession
      value: "false"

深入阅读