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 |
---|---|---|---|
apiVersion | Y | 您正在调用的Dapr版本(如果适用的话为 Kubernetes) API | dapr.io/v1alpha1 |
kind | Y | CRD的类型。 组件必须始终是 Component | Component (组件) |
metadata | - | 有关组件注册的信息 | |
metadata.name | Y | 组件的名称 | prod-statestore |
metadata.namespace | N | 主机环境的命名空间 | myapp-namespace |
spec | - | 关于组件资源的详细信息 | |
spec.type | Y | 组件类型 | state.redis |
spec.version | Y | 组件版本 | v1 |
spec.initTimeout | 否 | 组件初始化的超时时间 默认为30秒 | 5m , 1h , 20s |
spec.ignoreErrors | 否 | 如果组件加载失败,请告诉Dapr sidecar 继续初始化。 默认为 false | false |
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"