3 Star 5 Fork 2

dapr / cli

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

Dapr CLI

Go Report Card Build Status codecov FOSSA Status

The Dapr CLI allows you to setup Dapr on your local dev machine or on a Kubernetes cluster, provides debugging support, launches and manages Dapr instances.

Getting started

Prerequisites

On default, during initialization the Dapr CLI will install the Dapr binaries as well as setup a developer environment to help you get started easily with Dapr. This environment uses Docker containers, therefore Docker needs to be installed. If you prefer to run Dapr without this environment and no dependency on Docker, after installation of the CLI make sure to follow the instructions to initialize Dapr using slim init.

Note, if you are a new user, it is strongly recommended to install Docker and use the regular init command.

Note: On Windows, Docker must be running in Linux Containers mode

Installing Dapr CLI

Using script to install the latest release

Windows

Install the latest windows Dapr CLI to $Env:SystemDrive\dapr and add this directory to User PATH environment variable. Use -DaprRoot [path] to change the default installation directory

powershell -Command "iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1 | iex"

Linux

Install the latest linux Dapr CLI to /usr/local/bin

wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash

MacOS

Install the latest darwin Dapr CLI to /usr/local/bin

curl -fsSL https://raw.githubusercontent.com/dapr/cli/master/install/install.sh | /bin/bash

From the Binary Releases

Each release of Dapr CLI includes various OSes and architectures. These binary versions can be manually downloaded and installed.

  1. Download the Dapr CLI
  2. Unpack it (e.g. dapr_linux_amd64.tar.gz, dapr_windows_amd64.zip)
  3. Move it to your desired location.
    • For Linux/MacOS - /usr/local/bin
    • For Windows, create a directory and add this to your System PATH. For example create a directory called c:\dapr and add this directory to your path, by editing your system environment variable.

From the MSI Package (windows)

Install windows Dapr CLI using MSI package.

  1. Download the MSI Package
  2. Run dapr.msi to install Dapr CLI on your system

NOTE: The default installation directory is set to $Env:SystemDrive\dapr and can be modified at the time of installation.

Install Dapr on your local machine (self-hosted)

In self-hosted mode, dapr can be initialized using the CLI with the placement, redis and zipkin containers enabled by default(recommended) or without them which also does not require docker to be available in the environment.

Initialize Dapr

(Prerequisite: Docker is available in the environment - recommended)

Use the init command to initialize Dapr. On init, multiple default configuration files and containers are installed along with the dapr runtime binary. Dapr runtime binary is installed under $HOME/.dapr/bin for Mac, Linux and %USERPROFILE%.dapr\bin for Windows.

dapr init

For Linux users, if you run your docker cmds with sudo, you need to use "sudo dapr init"

Output should look like so:

⌛  Making the jump to hyperspace...
✅  Downloaded binaries and completed components set up.
ℹ️  daprd binary has been installed to  $HOME/.dapr/bin.
ℹ️  dapr_placement container is running.
ℹ️  dapr_redis container is running.
ℹ️  dapr_zipkin container is running.
ℹ️  Use `docker ps` to check running containers.
✅  Success! Dapr is up and running. To get started, go here: https://aka.ms/dapr-getting-started

Note: To see that Dapr has been installed successfully, from a command prompt run the docker ps command and check that the daprio/dapr:latest, dapr_redis and dapr_zipkin container images are all running.

This step creates the following defaults:

  1. components folder which is later used during dapr run unless the --components-path option is provided. For Linux/MacOS, the default components folder path is $HOME/.dapr/components and for Windows it is %USERPROFILE%\.dapr\components.
  2. component files in the components folder called pubsub.yaml and statestore.yaml.
  3. default config file $HOME/.dapr/config.yaml for Linux/MacOS or for Windows at %USERPROFILE%\.dapr\config.yaml to enable tracing on dapr init call. Can be overridden with the --config flag on dapr run.

Slim Init

Alternatively to the above, to have the CLI not install any default configuration files or run Docker containers, use the --slim flag with the init command. Only Dapr binaries will be installed.

dapr init --slim

Output should look like so:

⌛  Making the jump to hyperspace...
✅  Downloaded binaries and completed components set up.
ℹ️  daprd binary has been installed to $HOME/.dapr/bin.
ℹ️  placement binary has been installed.
✅  Success! Dapr is up and running. To get started, go here: https://aka.ms/dapr-getting-started

Note: When initializing Dapr with the --slim flag only the Dapr runtime binary and the placement service binary are installed. An empty default components folder is created with no default configuration files. During dapr run user should use --components-path to point to a components directory with custom configurations files or alternatively place these files in the default directory. For Linux/MacOS, the default components directory path is $HOME/.dapr/components and for Windows it is %USERPROFILE%\.dapr\components.

Install a specific runtime version

You can install or upgrade to a specific version of the Dapr runtime using dapr init --runtime-version. You can find the list of versions in Dapr Release.

# Install v1.0.0 runtime
dapr init --runtime-version 1.0.0

# Check the versions of CLI and runtime
dapr --version
CLI version: v1.0.0
Runtime version: v1.0.0

Install with mariner images

You can install Dapr Runtime using mariner images using the --image-variant flag.

# Installing Dapr with Mariner images
dapr init --image-variant mariner

Install by providing a docker container registry url

You can install Dapr runtime by pulling docker images from a given private registry uri by using --image-registry flag.

Note: This command expects that images have been hosted like example.io//dapr/dapr:, example.io//dapr/3rdparty/redis:, example.io//dapr/3rdparty/zipkin:

# Example of pulling images from a private registry.
dapr init --image-registry example.io/<username>

Install in airgap environment

You can install Dapr runtime in airgap (offline) environment using a pre-downloaded installer bundle. You need to download the archived bundle for your OS beforehand (e.g., daprbundle_linux_amd64.tar.gz,) and unpack it. Thereafter use the local Dapr CLI binary in the bundle with --from-dir flag in the init command to point to the extracted bundle location to initialize Dapr.

Move to the bundle directory and run the following command:

# Initializing dapr in airgap environment
./dapr init --from-dir .

For windows, use .\dapr.exe to point to the local Dapr CLI binary.

If you are not running the above command from the bundle directory, provide the full path to bundle directory as input. For example, assuming the bundle directory path is $HOME/daprbundle, run $HOME/daprbundle/dapr init --from-dir $HOME/daprbundle to have the same behavior.

Note: Dapr Installer bundle just contains the placement container apart from the binaries and so zipkin and redis are not enabled by default. You can pull the images locally either from network or private registry and run as follows:

docker run --name "dapr_zipkin" --restart always -d -p 9411:9411 openzipkin/zipkin
docker run --name "dapr_redis" --restart always -d -p 6379:6379 redis

Alternatively to the above, you can also have slim installation as well to install dapr without running any Docker containers in airgap mode.

./dapr init --slim --from-dir .

Install to a specific Docker network

You can install the Dapr runtime to a specific Docker network in order to isolate it from the local machine (e.g. to use Dapr from within a Docker container).

# Create Docker network
docker network create dapr-network

# Install Dapr to the network
dapr init --network dapr-network

Note: When installed to a specific Docker network, you will need to add the --placement-host-address arguments to dapr run commands run in any containers within that network. The format of --placement-host-address argument is either <hostname> or <hostname>:<port>. If the port is omitted, the default port 6050 for Windows and 50005 for Linux/MacOS applies.

Install with a specific container runtime

You can install the Dapr runtime using a specific container runtime environment such as Docker or Podman by passing along the --container-runtime argument:

# Install Dapr with Podman
$ dapr init --container-runtime podman

Note: The default container runtime is Docker.

Uninstall Dapr in a standalone mode

Uninstalling will remove daprd binary and the placement container (if installed with Docker or the placement binary if not).

dapr uninstall

For Linux users, if you run your docker cmds with sudo, you need to use "sudo dapr uninstall" to remove the containers.

The command above won't remove the redis or zipkin containers by default in case you were using it for other purposes. It will also not remove the default dapr folder that was created on dapr init. To remove all the containers (placement, redis, zipkin) and also the default dapr folder created on init run:

dapr uninstall --all

The above command can also be run when Dapr has been installed in a non-docker environment, it will only remove the installed binaries and the default dapr folder in that case.

NB: The dapr uninstall command will always try to remove the placement binary/service and will throw an error is not able to.

You should always run a dapr uninstall before running another dapr init.

Uninstall Dapr from a specific Docker network

If previously installed to a specific Docker network, Dapr can be uninstalled with the --network argument:

dapr uninstall --network dapr-network

Uninstall Dapr from a specific container runtime

You can uninstall Dapr from a specific container runtime environment by passing along the --container-runtime argument:

# Uninstall Dapr from Podman container runtime
$ dapr uninstall --container-runtime podman

Install Dapr on Kubernetes

The init command will install Dapr to a Kubernetes cluster. For more advanced use cases, use our Helm Chart.

Note: The default namespace is dapr-system. The installation will appear under the name dapr for Helm

dapr init -k

Output should look like as follows:

⌛  Making the jump to hyperspace...
ℹ️  Note: To install Dapr using Helm, see here:  https://docs.dapr.io/getting-started/install-dapr/#install-with-helm-advanced

✅  Deploying the Dapr control plane to your cluster...
✅  Success! Dapr has been installed to namespace dapr-system. To verify, run "dapr status -k" in your terminal. To get started, go here: https://aka.ms/dapr-getting-started

Supplying Helm values

All available Helm Chart values can be set by using the --set flag:

dapr init -k --set global.tag=1.0.0 --set dapr_operator.logLevel=error  

Installing to a custom namespace

dapr init -k -n my-namespace

Installing with a highly available control plane config

dapr init -k --enable-ha=true

Installing with mTLS disabled

dapr init -k --enable-mtls=false

Waiting for the Helm install to complete (default timeout is 300s/5m)

dapr init -k --wait --timeout 600

Uninstall Dapr on Kubernetes

To remove Dapr from your Kubernetes cluster, use the uninstall command with --kubernetes flag or the -k shorthand.

dapr uninstall -k

The default timeout is 300s/5m and can be overridden using the --timeout flag.

dapr uninstall -k --timeout 600

To remove all Dapr Custom Resource Definitions:

dapr uninstall -k --all

Warning: this will remove any components, subscriptions or configurations that are applied in the cluster at the time of deletion.

Upgrade Dapr on Kubernetes

To perform a zero downtime upgrade of the Dapr control plane:

dapr upgrade -k --runtime-version=1.0.0

The example above shows how to upgrade from your current version to version 1.0.0.

Supplying Helm values

All available Helm Chart values can be set by using the --set flag:

dapr upgrade -k --runtime-version=1.0.0 --set global.tag=my-tag --set dapr_operator.logLevel=error  

Note: do not use the dapr upgrade command if you're upgrading from 0.x versions of Dapr

Use Private Helm Repository

export DAPR_HELM_REPO_URL="https://helmchart-repo.xxx.xxx/dapr/dapr" export DAPR_HELM_REPO_USERNAME="username_xxx" export DAPR_HELM_REPO_PASSWORD="passwd_xxx"

Setting the above parameters will allow dapr init -k to install Dapr images from the configured Helm repository.

Launch Dapr and your app

The Dapr CLI lets you debug easily by launching both Dapr and your app. Logs from both the Dapr Runtime and your app will be displayed in real time!

Example of launching Dapr with a node app:

dapr run --app-id nodeapp node app.js

Example of launching Dapr with a node app listening on port 3000:

dapr run --app-id nodeapp --app-port 3000 node app.js

Example of launching Dapr on HTTP port 6000:

dapr run --app-id nodeapp --app-port 3000 --dapr-http-port 6000 node app.js

Example of launching Dapr on gRPC port 50002:

dapr run --app-id nodeapp --app-port 3000 --dapr-grpc-port 50002 node app.js

Example of launching Dapr within a specific Docker network:

dapr init --network dapr-network
dapr run --app-id nodeapp --placement-host-address dapr_placement node app.js

Note: When in a specific Docker network, the Redis, Zipkin and placement service containers are given specific network aliases, dapr_redis, dapr_zipkin and dapr_placement, respectively. The default configuration files reflect the network alias rather than localhost when a docker network is specified.

Use gRPC

If your app uses gRPC instead of HTTP to receive Dapr events, run the CLI with the following command:

dapr run --app-id nodeapp --app-protocol grpc --app-port 6000 node app.js

The example above assumed your app port is 6000.

Publish/Subscribe

To use pub-sub with your app, make sure that your app has a POST HTTP endpoint with some name, say myevent. This sample assumes your app is listening on port 3000.

Launch Dapr and your app:

dapr run --app-id nodeapp --app-port 3000 node app.js

Publish a message:

The --pubsub parameter takes in the name of the pub/sub. The default name of the pub/sub configed by the CLI is "pubsub".

Publish a message:

  • Linux/Mac
dapr publish --publish-app-id nodeapp --pubsub pubsub --topic myevent --data '{ "name": "yoda" }'
  • Windows
dapr publish --publish-app-id nodeapp --pubsub pubsub --topic myevent --data "{ \"name\": \"yoda\" }"

Invoking

To test your endpoints with Dapr, simply expose any HTTP endpoint. For this sample, we'll assume a node app listening on port 3000 with a /mymethod endpoint.

Launch Dapr and your app:

dapr run --app-id nodeapp --app-port 3000 node app.js

Note: To choose a non-default components folder, use the --components-path option.

Invoke your app:

dapr invoke --app-id nodeapp --method mymethod

Specify a verb:

By default, Dapr will use the POST verb. If your app uses Dapr for gRPC, you should use POST.

dapr invoke --app-id nodeapp --method mymethod --verb GET

List

To list all Dapr instances running on your machine:

dapr list

To list all Dapr instances running in a Kubernetes cluster:

dapr list --kubernetes

To list all Dapr instances but return output as JSON or YAML (e.g. for consumption by other tools):

dapr list --output json
dapr list --output yaml

Check system services (control plane) status

Check Dapr's system services (control plane) health status in a Kubernetes cluster:

dapr status --kubernetes

Check mTLS status

To check if Mutual TLS is enabled in your Kubernetes cluster:

dapr mtls --kubernetes

Export TLS certificates

To export the root cert, issuer cert and issuer key created by Dapr from a Kubernetes cluster to a local path:

dapr mtls export

This will save the certs to the working directory.

To specify a custom directory:

dapr mtls export -o certs

Check root certificate expiry

dapr mtls expiry

This can be used when upgrading to a newer version of Dapr, as it's recommended to carry over the existing certs for a zero downtime upgrade.

Renew Dapr certificates of a kubernetes cluster with one of the 3 ways mentioned below:

Renew certificate by generating new root and issuer certificates

dapr mtls renew-certificate -k --valid-until <no of days> --restart

Use existing private root.key to generate new root and issuer certificates

dapr mtls renew-certificate -k --private-key myprivatekey.key --valid-until <no of days>

Use user provided ca.crt, issuer.crt and issuer.key

dapr mtls renew-certificate -k --ca-root-certificate <ca.crt> --issuer-private-key <issuer.key> --issuer-public-certificate <issuer.crt> --restart

List Components

To list all Dapr components on Kubernetes:

dapr components --kubernetes --all-namespaces

To list Dapr components in target-namespace namespace on Kubernetes:

dapr components --kubernetes --namespace target-namespace

Use non-default Components Path

To use a custom path for component definitions

dapr run --components-path [custom path]

List Configurations

To list all Dapr configurations on Kubernetes:

dapr configurations --kubernetes --all-namespaces

To list Dapr configurations in target-namespace namespace on Kubernetes:

dapr configurations --kubernetes --namespace target-namespace

Stop

Use dapr list to get a list of all running instances. To stop a Dapr app on your machine:

dapr stop myAppID

You can also stop multiple Dapr apps

dapr stop myAppID1 myAppID2

Enable profiling

In order to enable profiling, use the enable-profiling flag:

dapr run --app-id nodeapp --app-port 3000 node app.js --enable-profiling

Dapr will automatically assign a profile port for you. If you want to manually assign a profiling port, use the profile-port flag:

dapr run --app-id nodeapp --app-port 3000 node app.js --enable-profiling --profile-port 7777

Set metrics server port

To change the metrics server port used by Dapr, set the metrics-port flag:

dapr run --app-id nodeapp --app-port 3000 node app.js --metrics-port 5040

Set log level

In order to set the Dapr runtime log verbosity level, use the log-level flag:

dapr run --app-id nodeapp --app-port 3000 node app.js --log-level debug

This sets the Dapr log level to debug. The default is info.

Enable SSL when invoking an app

If your app is listening on https or has a gRPC TLS configuration enabled, use the following app-ssl flag:

dapr run --app-id nodeapp --app-port 3000 node app.js --app-ssl

This will have Dapr invoke the app over an insecure SSL channel.

The default is false.

Running sidecar only

You can run Dapr's sidecar only (daprd) by omitting the application's command in the end:

dapr run --app-id myapp --dapr-http-port 3005 --dapr-grpc-port 50001

Generate shell completion scripts

To generate shell completion scripts:

dapr completion

Enable Unix domain socket

In order to enable Unix domain socket to connect Dapr API server, use the --unix-domain-socket flag:

dapr run --app-id nodeapp --unix-domain-socket node app.js

Dapr will automatically create a Unix domain socket to connect Dapr API server.

If you want to invoke your app, also use this flag:

dapr invoke --app-id nodeapp --unix-domain-socket --method mymethod

Set API log level

In order to set the Dapr runtime to log API calls with INFO log verbosity, use the enable-api-logging flag:

dapr run --app-id nodeapp --app-port 3000 node app.js enable-api-logging

The default is false.

For more details, please run the command and check the examples to apply to your shell.

Apply Dapr annotations

To add or modify dapr annotations on an existing Kubernetes manifest, use the dapr annotate command:

dapr annotate [flags] mydeployment.yaml

This will add the dapr.io/enabled and the dapr.io/app-id annotations. The dapr app id will be genereated using the format <namespace>-<kind>-<name> where the values are taken from the existing Kubernetes object metadata.

NOTE: The annotate command currently only supports annotating Kubernetes manifests. You must provide the -k flag to target Kubernetes.

To provide your own dapr app id, provide the flag --app-id.

All dapr annotations are available to set if a value is provided for the appropriate flag on the dapr annotate command.

You can also provide the Kubernetes manifest via stdin:

kubectl get deploy mydeploy -o yaml | dapr annotate -k - | kubectl apply -f -

Or you can provide the Kubernetes manifest via a URL:

dapr annotate -k --log-level debug https://raw.githubusercontent.com/dapr/quickstarts/master/tutorials/hello-kubernetes/deploy/node.yaml | kubectl apply -f -

If the input contains multiple manifests then the command will search for the first appropriate one to apply the annotations. If you'd rather it applied to a specific manifest then you can provide the --resource flag with the value set to the name of the object you'd like to apply the annotations to. If you have a conflict between namespaces you can also provide the namespace via the --namespace flag to isolate the manifest you wish to target.

If you want to annotate multiple manifests, you can chain together the dapr annotate commands with each applying the annotation to a specific manifest.

kubectl get deploy -o yaml | dapr annotate -k -r nodeapp --log-level debug - | dapr annotate -k --log-level debug -r pythonapp - | kubectl apply -f -

Reference for the Dapr CLI

See the Reference Guide for more information about individual Dapr commands.

Contributing to Dapr CLI

See the Development Guide to get started with building and developing.

Code of Conduct

Please refer to our Dapr Community Code of Conduct

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2021 The Dapr Authors. and others that have contributed code to the public domain. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

The Dapr CLI allows you to setup Dapr on your local dev machine or on a Kubernetes cluster, provides debugging support, launches and manages Dapr instances. 展开 收起
Go 等 4 种语言
Apache-2.0
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/dapr/cli.git
git@gitee.com:dapr/cli.git
dapr
cli
cli
master

搜索帮助