Define a component
Create a component definition file to interact with the secrets building block
When building an app, you’d most likely create your own component file definitions, depending on the building block and specific component that you’d like to use.
In this tutorial, you will create a component definition file to interact with the secrets building block API:
- Create a local JSON secret store.
- Register the secret store with Dapr using a component definition file.
- Obtain the secret using the Dapr HTTP API.
Step 1: Create a JSON secret store
Dapr supports many types of secret stores, but for this tutorial, create a local JSON file named mysecrets.json
with the following secret:
{
"my-secret" : "I'm Batman"
}
Step 2: Create a secret store Dapr component
Create a new directory named
my-components
to hold the new component file:mkdir my-components
Navigate into this directory.
cd my-components
Create a new file
localSecretStore.yaml
with the following contents:apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: my-secret-store
namespace: default
spec:
type: secretstores.local.file
version: v1
metadata:
- name: secretsFile
value: <PATH TO SECRETS FILE>/mysecrets.json
- name: nestedSeparator
value: ":"
In the above file definition:
type: secretstores.local.file
tells Dapr to use the local file component as a secret store.- The metadata fields provide component-specific information needed to work with this component. In this case, the secret store JSON path is relative to where you call
dapr run
.
Step 3: Run the Dapr sidecar
Launch a Dapr sidecar that will listen on port 3500 for a blank application named myapp
:
dapr run --app-id myapp --dapr-http-port 3500 --resources-path ./my-components
Tip
If an error message occurs, stating the app-id
is already in use, you may need to stop any currently running Dapr sidecars. Stop the sidecar before running the next dapr run
command by either:
- Pressing Ctrl+C or Command+C.
- Running the
dapr stop
command in the terminal.
Step 4: Get a secret
In a separate terminal, run:
curl http://localhost:3500/v1.0/secrets/my-secret-store/my-secret
Invoke-RestMethod -Uri 'http://localhost:3500/v1.0/secrets/my-secret-store/my-secret'
Output:
{"my-secret":"I'm Batman"}
Next step: Set up a Pub/sub broker >>
Last modified January 18, 2023: `components-path` —> `resources-path` in how-tos and quickstarts (#3016) (235626fa)