This is an automated email from the ASF dual-hosted git repository.

liuyu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git


The following commit(s) were added to refs/heads/main by this push:
     new 4fa45cd21d3 [improve][doc] SEO for Pulsar functions (#680)
4fa45cd21d3 is described below

commit 4fa45cd21d3178f6b8db72ab81fb494f0c1cd79a
Author: Zhang Yuxuan <[email protected]>
AuthorDate: Fri Sep 1 10:46:05 2023 +0800

    [improve][doc] SEO for Pulsar functions (#680)
---
 docs/functions-cli.md                          |  1 +
 docs/functions-concepts.md                     |  5 +++--
 docs/functions-debug-cli.md                    |  7 +------
 docs/functions-debug-localrun.md               |  1 +
 docs/functions-debug-log-topic.md              |  1 +
 docs/functions-debug-stderr.md                 |  1 +
 docs/functions-debug-unit-test.md              |  1 +
 docs/functions-deploy-arguments.md             |  1 +
 docs/functions-deploy-cluster-builtin.md       |  1 +
 docs/functions-deploy-cluster-encryption.md    |  3 ++-
 docs/functions-deploy-cluster-parallelism.md   |  1 +
 docs/functions-deploy-cluster-resource.md      |  1 +
 docs/functions-deploy-cluster.md               |  1 +
 docs/functions-deploy-localrun.md              |  1 +
 docs/functions-deploy-trigger.md               |  1 +
 docs/functions-develop-admin-api.md            |  1 +
 docs/functions-develop-api.md                  |  1 +
 docs/functions-develop-log.md                  |  1 +
 docs/functions-develop-metrics.md              |  1 +
 docs/functions-develop-schema-registry.md      |  1 +
 docs/functions-develop-security.md             |  9 ++++++---
 docs/functions-develop-serde.md                |  1 +
 docs/functions-develop-state.md                |  1 +
 docs/functions-develop-tutorial.md             |  5 +++++
 docs/functions-develop-user-defined-configs.md |  1 +
 docs/functions-overview.md                     | 10 ++--------
 docs/functions-package-go.md                   |  1 +
 docs/functions-package-java.md                 |  5 +++--
 docs/functions-package-python.md               |  4 +---
 docs/functions-quickstart.md                   | 19 ++++++++++---------
 docs/functions-runtime-java-options.md         |  1 +
 docs/functions-runtime-kubernetes.md           |  3 ++-
 docs/functions-runtime-process.md              |  1 +
 docs/functions-runtime-thread.md               |  1 +
 docs/functions-worker-corun.md                 | 13 +++++--------
 docs/functions-worker-for-geo-replication.md   |  1 +
 docs/functions-worker-run-separately.md        | 12 +++++-------
 docs/functions-worker-stateful.md              |  3 +++
 docs/functions-worker-temp-file-path.md        |  1 +
 docs/functions-worker-troubleshooting.md       |  1 +
 docs/window-functions-context.md               |  1 +
 41 files changed, 76 insertions(+), 50 deletions(-)

diff --git a/docs/functions-cli.md b/docs/functions-cli.md
index 815e48e2ce7..9c85f3a7506 100644
--- a/docs/functions-cli.md
+++ b/docs/functions-cli.md
@@ -2,6 +2,7 @@
 id: functions-cli
 title: Pulsar Functions CLI and YAML configs
 sidebar_label: "CLI and YAML configs"
+description: Get a comprehensive understanding of admin CLI and YAML 
configurations for Pulsar Functions
 ---
 
 ````mdx-code-block
diff --git a/docs/functions-concepts.md b/docs/functions-concepts.md
index 422b746281f..8080cf50524 100644
--- a/docs/functions-concepts.md
+++ b/docs/functions-concepts.md
@@ -2,6 +2,7 @@
 id: functions-concepts
 title: Pulsar Functions concepts
 sidebar_label: "Concepts"
+description: Get a comprehensive understanding of concepts of Pulsar functions.
 ---
 
 
@@ -24,7 +25,7 @@ Function instance is the core element of the function 
execution framework, consi
 
 The following figure illustrates the internal workflow of a function instance.
 
-![Function instance](/assets/function-instance.svg)
+![Workflow of a function instance in Pulsar](/assets/function-instance.svg)
 
 A function can have multiple instances, and each instance executes one copy of 
a function. You can specify the number of instances in the configuration file.
 
@@ -41,7 +42,7 @@ Within function workers, each [function 
instance](#function-instance) can be exe
 
 The following figure illustrates the internal architecture and workflow of 
function workers.
 
-![Function worker workflow](/assets/function-worker-workflow.svg)
+![Workflow of function workers in Pulsar](/assets/function-worker-workflow.svg)
 
 Function workers form a cluster of worker nodes and the workflow is described 
as follows.
 1. User sends a request to the REST server to execute a function instance.
diff --git a/docs/functions-debug-cli.md b/docs/functions-debug-cli.md
index 4f2696e9ee4..2def08d37fd 100644
--- a/docs/functions-debug-cli.md
+++ b/docs/functions-debug-cli.md
@@ -2,16 +2,11 @@
 id: functions-debug-cli
 title: Debug with Functions CLI
 sidebar_label: "Debug with Functions CLI"
+description: Learn to debug functions with CLI in Pulsar.
 ---
 
 With [Pulsar Functions 
CLI](pathname:///reference/#/@pulsar:version_reference@/pulsar-admin/), you can 
debug Pulsar Functions with the following subcommands:
 
-* `get`
-* `status`
-* `stats`
-* `list`
-* `trigger`
-
 ## `get`
 
 To get information about a function, you can specify `--fqfn` as follows.
diff --git a/docs/functions-debug-localrun.md b/docs/functions-debug-localrun.md
index 10562a920f4..a11494250ac 100644
--- a/docs/functions-debug-localrun.md
+++ b/docs/functions-debug-localrun.md
@@ -2,6 +2,7 @@
 id: functions-debug-localrun
 title: Debug with localrun mode
 sidebar_label: "Debug with localrun mode"
+description: Learn to debug functions with localrun mode in Pulsar.
 ---
 
 In localrun mode, a function consumes and produces actual data to a Pulsar 
cluster, and mirrors how the function runs in a Pulsar cluster. This provides a 
way to test your function and allows you to launch a function instance on your 
local machine as a thread for easy debugging.
diff --git a/docs/functions-debug-log-topic.md 
b/docs/functions-debug-log-topic.md
index a53c01866fb..806145ad055 100644
--- a/docs/functions-debug-log-topic.md
+++ b/docs/functions-debug-log-topic.md
@@ -2,6 +2,7 @@
 id: functions-debug-log-topic
 title: Debug with log topic
 sidebar_label: "Debug with log topic"
+description: Learn to debug functions with log topic in Pulsar.
 ---
 
 When using Pulsar Functions, you can generate logs predefined in functions to 
a specified log topic and configure consumers to consume messages from the log 
topic.
diff --git a/docs/functions-debug-stderr.md b/docs/functions-debug-stderr.md
index a5659ad2b21..bed60546109 100644
--- a/docs/functions-debug-stderr.md
+++ b/docs/functions-debug-stderr.md
@@ -2,6 +2,7 @@
 id: functions-debug-stderr
 title: Debug with captured stderr
 sidebar_label: "Debug with captured stderr"
+description: Debug functions with captured stderr in Pulsar.
 ---
 
 To debug why a function fails to start, you can find function startup 
information and captured stderr output in the 
`logs/functions/<tenant>/<namespace>/<function>/<function>-<instance>.log` file.
diff --git a/docs/functions-debug-unit-test.md 
b/docs/functions-debug-unit-test.md
index 45133bcaa8c..58f80e9f457 100644
--- a/docs/functions-debug-unit-test.md
+++ b/docs/functions-debug-unit-test.md
@@ -2,6 +2,7 @@
 id: functions-debug-unit-test
 title: Debug with unit test
 sidebar_label: "Debug with unit test"
+description: Learn to debug functions with unit test in Pulsar.
 ---
 
 
diff --git a/docs/functions-deploy-arguments.md 
b/docs/functions-deploy-arguments.md
index 9271d5dc238..45bed9a2e79 100644
--- a/docs/functions-deploy-arguments.md
+++ b/docs/functions-deploy-arguments.md
@@ -2,6 +2,7 @@
 id: functions-deploy-arguments
 title: Default arguments of CLI
 sidebar_label: "Default arguments of CLI"
+description: Get a comprehensive understanding of parameters required in 
Pulsar CLI.
 ---
 
 You can use function-related commands in the 
[`pulsar-admin`](pathname:///reference/#/@pulsar:version_reference@/pulsar-admin/)
 CLI to deploy functions. Pulsar provides a variety of commands, such as:
diff --git a/docs/functions-deploy-cluster-builtin.md 
b/docs/functions-deploy-cluster-builtin.md
index bd5a68976a9..6c09f1a7ffc 100644
--- a/docs/functions-deploy-cluster-builtin.md
+++ b/docs/functions-deploy-cluster-builtin.md
@@ -2,6 +2,7 @@
 id: functions-deploy-cluster-builtin
 title: Use built-in functions
 sidebar_label: "Use built-in functions"
+description: Use built-in functions in Pulsar.
 ---
 
 Similar to built-in connectors, the code of Java functions [packaged as 
NAR](functions-package-java.md) that are placed in the `functions` directory of 
the function worker are loaded at startup and can be referenced when creating a 
function.
diff --git a/docs/functions-deploy-cluster-encryption.md 
b/docs/functions-deploy-cluster-encryption.md
index 28da8013b98..1749de70550 100644
--- a/docs/functions-deploy-cluster-encryption.md
+++ b/docs/functions-deploy-cluster-encryption.md
@@ -2,9 +2,10 @@
 id: functions-deploy-cluster-encryption
 title: Enable end-to-end-encryption
 sidebar_label: "Enable end-to-end-encryption"
+description: Enable end-to-end-encryption for a function in Pulsar.
 ---
 
-To perform end-to-end [encryption](security-encryption.md), you can specify 
`--producer-config` and `--input-specs` in the 
[`pulsar-admin`](pathname:///reference/#/@pulsar:version_reference@/pulsar-admin/)
 CLI with the public and private key pair configured by the application. Only 
the consumers with a valid key can decrypt the encrypted messages.
+To enable end-to-end [encryption](security-encryption.md), you can specify 
`--producer-config` and `--input-specs` in the 
[`pulsar-admin`](pathname:///reference/#/@pulsar:version_reference@/pulsar-admin/)
 CLI with the public and private key pair configured by the application. Only 
the consumers with a valid key can decrypt the encrypted messages.
 
 The encryption/decryption relevant configuration 
[`CryptoConfig`](functions-cli.md) is included in both `ProducerConfig` and 
`inputSpecs`. The specific configurable fields about `CryptoConfig` are as 
follows:
 
diff --git a/docs/functions-deploy-cluster-parallelism.md 
b/docs/functions-deploy-cluster-parallelism.md
index 3620f042cd2..fef7ebcf7d4 100644
--- a/docs/functions-deploy-cluster-parallelism.md
+++ b/docs/functions-deploy-cluster-parallelism.md
@@ -2,6 +2,7 @@
 id: functions-deploy-cluster-parallelism
 title: Enable parallel processing
 sidebar_label: "Enable parallel processing"
+description: Enable parallel processing for a function in Pulsar.
 ---
 
 In cluster mode, you can specify the **parallelism** (the number of instances 
to run) to enable parallel processing for a function.
diff --git a/docs/functions-deploy-cluster-resource.md 
b/docs/functions-deploy-cluster-resource.md
index 98b1c765f6a..a000982c495 100644
--- a/docs/functions-deploy-cluster-resource.md
+++ b/docs/functions-deploy-cluster-resource.md
@@ -2,6 +2,7 @@
 id: functions-deploy-cluster-resource
 title: Allocate resources to function instance
 sidebar_label: "Allocate resources to function instance"
+description: Allocate resources to function instance in Pulsar.
 ---
 
 When running functions in cluster mode, you can specify the resources that can 
be allocated to each function instance.
diff --git a/docs/functions-deploy-cluster.md b/docs/functions-deploy-cluster.md
index f6e3e3daab5..22890093200 100644
--- a/docs/functions-deploy-cluster.md
+++ b/docs/functions-deploy-cluster.md
@@ -2,6 +2,7 @@
 id: functions-deploy-cluster
 title: Deploy a function in cluster mode
 sidebar_label: "Deploy a function in cluster mode"
+description: Deploy a Pulsar function in cluster mode.
 ---
 
 Deploying a function in cluster mode uploads the function to a function 
worker, which means the function is scheduled by the worker.
diff --git a/docs/functions-deploy-localrun.md 
b/docs/functions-deploy-localrun.md
index 3e05f0e86cb..0d6fbda0c5e 100644
--- a/docs/functions-deploy-localrun.md
+++ b/docs/functions-deploy-localrun.md
@@ -2,6 +2,7 @@
 id: functions-deploy-localrun
 title: Deploy a function in localrun mode
 sidebar_label: "Deploy a function in localrun mode"
+description: Deploy a Pulsar function in localrun mode.
 ---
 
 When you deploy a function in localrun mode, it runs on the machine where you 
enter the commands – on your laptop, for example, or in an [AWS 
EC2](https://aws.amazon.com/ec2/) instance.
diff --git a/docs/functions-deploy-trigger.md b/docs/functions-deploy-trigger.md
index ad4bf72e3bd..a2da2b1f2d4 100644
--- a/docs/functions-deploy-trigger.md
+++ b/docs/functions-deploy-trigger.md
@@ -2,6 +2,7 @@
 id: functions-deploy-trigger
 title: Trigger a function
 sidebar_label: "Trigger a function"
+description: Learn to trigger a function in Pulsar.
 ---
 
 Triggering a function means that you invoke a function by producing a message 
to one of the input topics via the CLI. You can use the `trigger` command to 
trigger a function at any time.
diff --git a/docs/functions-develop-admin-api.md 
b/docs/functions-develop-admin-api.md
index 4dc123c7961..03788808230 100644
--- a/docs/functions-develop-admin-api.md
+++ b/docs/functions-develop-admin-api.md
@@ -2,6 +2,7 @@
 id: functions-develop-admin-api
 title: Call Pulsar admin APIs
 sidebar_label: "Call Pulsar admin APIs"
+description: Learn to call Pulsar admin APIs.
 ---
 
 Pulsar Functions that use the Java SDK have access to the Pulsar admin client, 
which allows the Pulsar admin client to manage API calls to your Pulsar 
clusters.
diff --git a/docs/functions-develop-api.md b/docs/functions-develop-api.md
index e3c98f85f34..fa6b5f2f730 100644
--- a/docs/functions-develop-api.md
+++ b/docs/functions-develop-api.md
@@ -2,6 +2,7 @@
 id: functions-develop-api
 title: Use APIs
 sidebar_label: "Use APIs"
+description: Learn to develop functions using Pulsar APIs.
 ---
 
 ````mdx-code-block
diff --git a/docs/functions-develop-log.md b/docs/functions-develop-log.md
index 331136b5165..77f182621e4 100644
--- a/docs/functions-develop-log.md
+++ b/docs/functions-develop-log.md
@@ -2,6 +2,7 @@
 id: functions-develop-log
 title: Produce function logs
 sidebar_label: "Produce function logs"
+description: Learn to produce logs for functions in Pulsar.
 ---
 
 ## Produce logs for Java functions
diff --git a/docs/functions-develop-metrics.md 
b/docs/functions-develop-metrics.md
index 312fc4ab2f1..0233717b026 100644
--- a/docs/functions-develop-metrics.md
+++ b/docs/functions-develop-metrics.md
@@ -2,6 +2,7 @@
 id: functions-develop-metrics
 title: Use metrics to monitor functions
 sidebar_label: "Use metrics to monitor functions"
+description: Use metrics to monitor functions in Pulsar.
 ---
 
 ````mdx-code-block
diff --git a/docs/functions-develop-schema-registry.md 
b/docs/functions-develop-schema-registry.md
index 5ca5297bb51..e95588accf5 100644
--- a/docs/functions-develop-schema-registry.md
+++ b/docs/functions-develop-schema-registry.md
@@ -2,6 +2,7 @@
 id: functions-develop-schema-registry
 title: Use schema registry
 sidebar_label: "Use schema registry"
+description: Learn to develop functions using schema registry in Pulsar.
 ---
 
 Pulsar has a built-in [schema registry](schema-overview.md) and is bundled 
with popular [schema types](schema-understand.md#schema-type). Pulsar Functions 
can leverage the existing schema information from input topics and derive the 
input type. The schema registry applies to output topics as well.
diff --git a/docs/functions-develop-security.md 
b/docs/functions-develop-security.md
index 52a2a1bd3c1..f177d5e9717 100644
--- a/docs/functions-develop-security.md
+++ b/docs/functions-develop-security.md
@@ -2,6 +2,7 @@
 id: functions-develop-security
 title: Enable security on functions
 sidebar_label: "Enable security on functions"
+description: Learn to enable security on functions in Pulsar.
 ---
 
 ````mdx-code-block
@@ -9,12 +10,14 @@ import Tabs from '@theme/Tabs';
 import TabItem from '@theme/TabItem';
 ````
 
+If you want to enable security on functions, complete the following steps.
+
 ## Prerequisites
 
-If you want to enable security on functions, you need to [enable security 
settings](functions-worker.md) on function workers first.
+- If you want to enable security on functions, you need to [enable security 
settings](functions-worker.md) on function workers first.
 
 
-## Configure function workers
+## Step 1: Configure function workers
 
 To use the secret APIs from the context, you need to set the following two 
parameters for function workers.
 * `secretsProviderConfiguratorClassName`
@@ -38,7 +41,7 @@ Currently, only Java and Python runtime support 
`SecretsProvider`. The Java and
 
 :::
 
-## Get the secret
+## Step 2: Get the secret
 
 Once `SecretsProviderConfigurator` is set, you can get the secret using the 
[`Context`](functions-concepts.md#context) object as follows.
 
diff --git a/docs/functions-develop-serde.md b/docs/functions-develop-serde.md
index 203177170ba..792ef320e44 100644
--- a/docs/functions-develop-serde.md
+++ b/docs/functions-develop-serde.md
@@ -2,6 +2,7 @@
 id: functions-develop-serde
 title: Use SerDe
 sidebar_label: "Use SerDe"
+description: Learn to develop functions using Serialization and 
Deserialization in Pulsar.
 ---
 
 Pulsar Functions use SerDe (**Ser**ialization and **De**serialization) when 
publishing data to or consuming data from Pulsar topics. How SerDe works by 
default depends on the language you use (Java or Python) for a particular 
function. In both languages, however, you can write custom SerDe logic for more 
complex, application-specific types.
diff --git a/docs/functions-develop-state.md b/docs/functions-develop-state.md
index 8f7c546c121..0757ac9ac21 100644
--- a/docs/functions-develop-state.md
+++ b/docs/functions-develop-state.md
@@ -2,6 +2,7 @@
 id: functions-develop-state
 title: Configure state storage
 sidebar_label: "Configure state storage"
+description: Configure state storage for functions in Pulsar.
 ---
 
 ````mdx-code-block
diff --git a/docs/functions-develop-tutorial.md 
b/docs/functions-develop-tutorial.md
index 439d470629a..e276673debd 100644
--- a/docs/functions-develop-tutorial.md
+++ b/docs/functions-develop-tutorial.md
@@ -2,6 +2,7 @@
 id: functions-develop-tutorial
 title: Tutorials
 sidebar_label: "Tutorials"
+description: Tutorial examples for developing functions in Pulsar.
 ---
 
 ## Write a function for word count
@@ -12,6 +13,8 @@ The following example is a stateful function. By default, the 
state of a functio
 
 :::
 
+To write a function for word count, complete the following steps.
+
 1. Write the function in Java using the [SDK for 
Java](functions-develop-api.md).
 
    ```java
@@ -50,6 +53,8 @@ The following example is a stateful function. By default, the 
state of a functio
 
 ## Write a function for content-based routing
 
+To write a function for content-based routing, complete the following steps.
+
 1. Write the function in Python using the [SDK for 
Python](functions-develop-api.md).
 
    ```python
diff --git a/docs/functions-develop-user-defined-configs.md 
b/docs/functions-develop-user-defined-configs.md
index e12d8cbd49f..d7f75ed1081 100644
--- a/docs/functions-develop-user-defined-configs.md
+++ b/docs/functions-develop-user-defined-configs.md
@@ -2,6 +2,7 @@
 id: functions-develop-user-defined-configs
 title: Pass user-defined configurations
 sidebar_label: "Pass user-defined configurations"
+description: Learn to pass user-defined configurations to a function in Pulsar.
 ---
 
 ````mdx-code-block
diff --git a/docs/functions-overview.md b/docs/functions-overview.md
index 7d5102d866d..0ade781e7bf 100644
--- a/docs/functions-overview.md
+++ b/docs/functions-overview.md
@@ -2,15 +2,9 @@
 id: functions-overview
 title: Pulsar Functions overview
 sidebar_label: "Overview"
+description: Get a comprehensive understanding of Pulsar functions.
 ---
 
-This section introduces the following content:
-* [What are Pulsar Functions](#what-are-pulsar-functions)
-* [Why use Pulsar Functions](#why-use-pulsar-functions)
-* [Use cases](#use-cases)
-* [What's next?](#whats-next)
-
-
 ## What are Pulsar Functions
 
 Pulsar Functions are a serverless computing framework that runs on top of 
Pulsar and processes messages in the following way:
@@ -20,7 +14,7 @@ Pulsar Functions are a serverless computing framework that 
runs on top of Pulsar
 
 The diagram below illustrates the three steps in the functions computing 
process.
 
-![Pulsar Functions execute user-defined code on data published to Pulsar 
topics](/assets/function-overview.svg)
+![Workflow of a Pulsar function](/assets/function-overview.svg)
 
 Each time a function receives a message, it completes the following 
consume-apply-publish steps.
 1. Consumes the message from one or more **input topics**.
diff --git a/docs/functions-package-go.md b/docs/functions-package-go.md
index 127807a2b33..25eedc3a9af 100644
--- a/docs/functions-package-go.md
+++ b/docs/functions-package-go.md
@@ -2,6 +2,7 @@
 id: functions-package-go
 title: Package Go Functions
 sidebar_label: "Package Go Functions"
+description: Learn to package Go functions in Pulsar.
 ---
 
 :::note
diff --git a/docs/functions-package-java.md b/docs/functions-package-java.md
index c14306ea4a8..3f227cc7a69 100644
--- a/docs/functions-package-java.md
+++ b/docs/functions-package-java.md
@@ -2,10 +2,9 @@
 id: functions-package-java
 title: Package Java Functions
 sidebar_label: "Package Java Functions"
+description: Learn to package Java functions in Pulsar.
 ---
 
-There are two methods to package Java Functions, that is [uber 
JAR](#package-as-jar) and [NAR](#package-as-nar).
-
 :::note
 
 If you plan to package and distribute your function for others to use, you are 
obligated to
@@ -20,6 +19,8 @@ For the runtime Java version, refer to [Pulsar Runtime Java 
Version Recommendati
 
 :::
 
+There are two methods to package Java Functions:
+
 ## Package as JAR
 
 To package a Java function as JAR, complete the following steps.
diff --git a/docs/functions-package-python.md b/docs/functions-package-python.md
index 49feed9818e..c5d056be621 100644
--- a/docs/functions-package-python.md
+++ b/docs/functions-package-python.md
@@ -2,12 +2,10 @@
 id: functions-package-python
 title: Package Python Functions
 sidebar_label: "Package Python Functions"
+description: Learn to package Python functions in Pulsar.
 ---
 
 Python functions support the following three packaging formats:
-- One Python file
-- ZIP file
-- PIP
 
 ## One Python file
 
diff --git a/docs/functions-quickstart.md b/docs/functions-quickstart.md
index e3d839310d5..29ef7cf25c9 100644
--- a/docs/functions-quickstart.md
+++ b/docs/functions-quickstart.md
@@ -2,6 +2,7 @@
 id: functions-quickstart
 title: Getting started with Pulsar Functions
 sidebar_label: "Get started"
+description: Get started to create and validate Pulsar functions.
 ---
 
 This hands-on tutorial provides step-by-step instructions and examples on how 
to create and validate functions in a [standalone 
Pulsar](getting-started-standalone.md), including stateful functions and window 
functions.
@@ -11,7 +12,7 @@ This hands-on tutorial provides step-by-step instructions and 
examples on how to
 - JDK 8+. For more details, refer to [Pulsar runtime Java version 
recommendation](https://github.com/apache/pulsar#pulsar-runtime-java-version-recommendation).
 - Windows OS is not supported.
 
-## Start standalone Pulsar
+## Step 1: Start standalone Pulsar
 
 1. Enable pulsar function in `conf/standalone.conf` (add this field if not 
exists):
 
@@ -85,7 +86,7 @@ This hands-on tutorial provides step-by-step instructions and 
examples on how to
    Escape character is '^]'.
    ```
 
-## Create a namespace for test
+## Step 2: Create a namespace for test
 
 1. Create a tenant and a namespace.
 
@@ -108,7 +109,7 @@ This hands-on tutorial provides step-by-step instructions 
and examples on how to
    "test/test-namespace"
    ```
 
-## Start functions
+## Step 3: Start functions
 
 :::note
 
@@ -278,18 +279,18 @@ Before starting functions, you need to [start 
Pulsar](#start-standalone-pulsar)
    test-messages-Thu Jul 19 11:59:15 PDT 2021!
    ```
 
-## Start stateful functions
+### Start stateful functions
 
 The standalone mode of Pulsar enables BookKeeper table service for stateful 
functions. For more information, see [Configure state 
storage](functions-develop-state.md).
 
-The following example provides instructions to validate counter functions.
-
 :::note
 
 Before starting stateful functions, you need to [start 
Pulsar](#start-standalone-pulsar) and [create a test 
namespace](#create-a-namespace-for-test).
 
 :::
 
+The following example provides instructions to start a stateful function to 
validate counter functions.
+
 1. Create a function using `examples/example-stateful-function-config.yaml`.
 
    ```bash
@@ -463,18 +464,18 @@ Before starting stateful functions, you need to [start 
Pulsar](#start-standalone
    }
    ```
 
-## Start window functions
+### Start window functions
 
 Window functions are a special form of Pulsar Functions. For more information, 
see [concepts](functions-concepts.md#window-function).
 
-The following example provides instructions to start a window function to 
calculate the sum in a window.
-
 :::note
 
 Before starting window functions, you need to [start 
Pulsar](#start-standalone-pulsar)  and [create a test 
namespace](#create-a-namespace-for-test).
 
 :::
 
+The following example provides instructions to start a window function to 
calculate the sum in a window.
+
 1. Create a function using `example-window-function-config.yaml`.
 
    ```bash
diff --git a/docs/functions-runtime-java-options.md 
b/docs/functions-runtime-java-options.md
index 83dfaab11f6..c61f94df317 100644
--- a/docs/functions-runtime-java-options.md
+++ b/docs/functions-runtime-java-options.md
@@ -2,6 +2,7 @@
 id: functions-runtime-java-options
 title: Customize Java runtime options
 sidebar_label: "Customize Java runtime options"
+description: Customize Java runtime options in Pulsar.
 ---
 
 :::note
diff --git a/docs/functions-runtime-kubernetes.md 
b/docs/functions-runtime-kubernetes.md
index 0d0da513840..5feb83a5ab2 100644
--- a/docs/functions-runtime-kubernetes.md
+++ b/docs/functions-runtime-kubernetes.md
@@ -2,6 +2,7 @@
 id: functions-runtime-kubernetes
 title: Configure Kubernetes runtime
 sidebar_label: "Configure Kubernetes runtime"
+description: Configure Kubernetes runtime for functions in Pulsar.
 ---
 
 The Kubernetes runtime works when a function worker generates and applies 
Kubernetes manifests. The manifests generated by a function worker include:
@@ -47,7 +48,7 @@ secrets:
 
 When you use token authentication, TLS encryption, or custom authentications 
to secure the communication with your Pulsar cluster, Pulsar passes your 
certificate authority (CA) to the client, so the client can authenticate the 
cluster with your signed certificate.
 
-To enable the authentication for your Pulsar cluster, you need to specify a 
mechanism for the pod running your function to authenticate the broker, by 
implementing the 
`org.apache.pulsar.functions.auth.KubernetesFunctionAuthProvider` interface.
+To enable the token authentication for your Pulsar cluster, you need to 
specify a mechanism for the pod running your function to authenticate the 
broker, by implementing the 
`org.apache.pulsar.functions.auth.KubernetesFunctionAuthProvider` interface.
 
 * For token authentication, Pulsar includes an implementation of the above 
interface to distribute the CA. The function worker captures the token that 
deploys (or updates) the function, saves it as a secret, and mounts it into the 
pod.
 
diff --git a/docs/functions-runtime-process.md 
b/docs/functions-runtime-process.md
index 7aed3c3f478..e1649e78c49 100644
--- a/docs/functions-runtime-process.md
+++ b/docs/functions-runtime-process.md
@@ -2,6 +2,7 @@
 id: functions-runtime-process
 title: Configure process runtime
 sidebar_label: "Configure process runtime"
+description: Configure process runtime for functions in Pulsar.
 ---
 
 You can use the default configurations of process runtime in the 
`conf/functions_worker.yml` file.
diff --git a/docs/functions-runtime-thread.md b/docs/functions-runtime-thread.md
index 130a1506fdc..8994677bb90 100644
--- a/docs/functions-runtime-thread.md
+++ b/docs/functions-runtime-thread.md
@@ -2,6 +2,7 @@
 id: functions-runtime-thread
 title: Configure thread runtime
 sidebar_label: "Configure thread runtime"
+description: Configure thread runtime for functions in Pulsar.
 ---
 
 You can use the default configurations of thread runtime in the 
`conf/functions_worker.yml` file.
diff --git a/docs/functions-worker-corun.md b/docs/functions-worker-corun.md
index c4a5156fa21..6168e3efa96 100644
--- a/docs/functions-worker-corun.md
+++ b/docs/functions-worker-corun.md
@@ -2,11 +2,12 @@
 id: functions-worker-corun
 title: Run function workers with brokers
 sidebar_label: "Run function workers with brokers"
+description: Run Pulsar function workers with brokers.
 ---
 
 The following diagram illustrates the deployment of function workers running 
along with brokers.
 
-![assets/functions-worker-corun.svg](/assets/function-workers-corun.svg)
+![Deployment of function workers in Pulsar](/assets/function-workers-corun.svg)
 
 :::note
 
@@ -15,12 +16,8 @@ The `Service URLs` in the illustration represent Pulsar 
service URLs that Pulsar
 :::
 
 To set up function workers to run with brokers, complete the following steps:
-1. [Enable function workers](#enable-function-workers-to-run-with-brokers)
-2. [Configure function 
workers](#configure-function-workers-to-run-with-brokers)
-3. [Start function workers](#start-function-workers-to-run-with-brokers)
 
-
-### Enable function workers to run with brokers
+### Step 1: Enable function workers to run with brokers
 
 In the `conf/broker.conf` file (`conf/standalone.conf` for Pulsar standalone), 
set `functionsWorkerEnabled` to `true`.
 
@@ -28,7 +25,7 @@ In the `conf/broker.conf` file (`conf/standalone.conf` for 
Pulsar standalone), s
 functionsWorkerEnabled=true
 ```
 
-### Configure function workers to run with brokers
+### Step 2: Configure function workers to run with brokers
 
 In the `run-with-brokers` mode, most settings of function workers are 
inherited from your broker configuration (for example, configuration store 
settings, authentication settings, and so on). You can customize other worker 
settings by configuring the `conf/functions_worker.yml` file based on your 
needs.
 
@@ -44,7 +41,7 @@ When authentication is enabled on the BookKeeper cluster, you 
need to configure
 - `bookkeeperClientAuthenticationParametersName`: the authentication plugin 
parameters of BookKeeper client, including names and values.
 - `bookkeeperClientAuthenticationParameters`: the authentication plugin 
parameters of BookKeeper client.
 
-### Start function workers to run with brokers
+### Step 3: Start function workers to run with brokers
 
 Once function workers are configured properly, you can start the brokers 
(function workers are running with the brokers).
 
diff --git a/docs/functions-worker-for-geo-replication.md 
b/docs/functions-worker-for-geo-replication.md
index 9a0b5000a60..c8bbc1c0a33 100644
--- a/docs/functions-worker-for-geo-replication.md
+++ b/docs/functions-worker-for-geo-replication.md
@@ -2,6 +2,7 @@
 id: functions-worker-for-geo-replication
 title: Configure function workers for geo-replicated clusters
 sidebar_label: "Configure function workers for geo-replicated clusters"
+description: Configure function workers for geo-replicated clusters in Pulsar.
 ---
 
 When running multiple clusters tied together with [geo 
replication](concepts-replication.md), you need to use a different function 
namespace for each cluster. Otherwise, all functions share one namespace and 
potentially schedule assignments across clusters.
diff --git a/docs/functions-worker-run-separately.md 
b/docs/functions-worker-run-separately.md
index 9135b7cdf9e..1d026d216e6 100644
--- a/docs/functions-worker-run-separately.md
+++ b/docs/functions-worker-run-separately.md
@@ -2,11 +2,12 @@
 id: functions-worker-run-separately
 title: Run function workers separately
 sidebar_label: "Run function workers separately"
+description: Run Pulsar function workers separately.
 ---
 
 The following diagram illustrates how function workers run as a separate 
process in separate machines.
 
-![assets/functions-worker-separated.svg](/assets/function-workers-separated.svg)
+![Function workers run separately in 
Pulsar](/assets/function-workers-separated.svg)
 
 :::note
 
@@ -15,11 +16,8 @@ The `Service URLs` in the illustration represent Pulsar 
service URLs that Pulsar
 :::
 
 To set up function workers that run separately, complete the following steps:
-1. [Configure function workers](#configure-function-workers-to-run-separately)
-2. [Start function workers](#start-function-workers)
-3. [Configure proxies for function 
workers](#configure-proxies-for-standalone-function-workers)
 
-## Configure function workers to run separately
+## Step 1: Configure function workers to run separately
 
 :::note
 
@@ -189,7 +187,7 @@ If authentication is enabled on the BookKeeper cluster, you 
need to configure th
 - `bookkeeperClientAuthenticationParametersName`: the authentication plugin 
parameters of BookKeeper client, including names and values.
 - `bookkeeperClientAuthenticationParameters`: the authentication plugin 
parameters of BookKeeper client.
 
-## Start function workers
+## Step 2: Start function workers
 
 :::note
 
@@ -209,7 +207,7 @@ Before starting function workers, make sure [function 
runtime](functions-runtime
   bin/pulsar functions-worker
   ```
 
-## Configure proxies for standalone function workers
+## Step 3: Configure proxies for standalone function workers
 
 When you are running function workers in a separate cluster, the admin rest 
endpoints are split into two clusters as shown in the following figure. The 
`functions`, `function-worker`, `source`, and `sink` endpoints are now served 
by the worker cluster, while all the other remaining endpoints are served by 
the broker cluster. This requires you to use the right service URL accordingly 
in the `pulsar-admin` CLI. To address this inconvenience, you can start a proxy 
cluster that serves as the [...]
 
diff --git a/docs/functions-worker-stateful.md 
b/docs/functions-worker-stateful.md
index efe9d85ee5b..7e158505a99 100644
--- a/docs/functions-worker-stateful.md
+++ b/docs/functions-worker-stateful.md
@@ -2,6 +2,7 @@
 id: functions-worker-stateful
 title: Enable stateful functions
 sidebar_label: "Enable stateful functions"
+description: Enable stateful function feature in Pulsar function workers.
 ---
 
 :::note
@@ -10,6 +11,8 @@ When the stateful APIs of Pulsar Functions are required – for 
example, `putSta
 
 :::
 
+To enable the stateful function feature in function workers, complete the 
following steps.
+
 1. Enable the `streamStorage` service in BookKeeper.
    Currently, the service uses the NAR package, so you need to set the 
configuration in the `conf/bookkeeper.conf` file.
 
diff --git a/docs/functions-worker-temp-file-path.md 
b/docs/functions-worker-temp-file-path.md
index 4113a208b15..6b6ac4f3e57 100644
--- a/docs/functions-worker-temp-file-path.md
+++ b/docs/functions-worker-temp-file-path.md
@@ -2,6 +2,7 @@
 id: functions-worker-temp-file-path
 title: Configure temporary file path
 sidebar_label: "Configure temporary file path"
+description: Configure temporary file path for function workers in Pulsar.
 ---
 
 Function workers use `java.io.tmpdir` in the JVM as the default temporary file 
path, which is also used as the default extraction file path for each NAR 
package. NAR packages require a local file path to extract and load to the Java 
class loader.
diff --git a/docs/functions-worker-troubleshooting.md 
b/docs/functions-worker-troubleshooting.md
index f082f383e8c..a4493cc15dc 100644
--- a/docs/functions-worker-troubleshooting.md
+++ b/docs/functions-worker-troubleshooting.md
@@ -2,6 +2,7 @@
 id: functions-worker-troubleshooting
 title: Troubleshooting
 sidebar_label: "Troubleshooting"
+description: Troubleshooting function worker configuration in Pulsar.
 ---
 
 **Error message: Namespace missing local cluster name in clusters list**
diff --git a/docs/window-functions-context.md b/docs/window-functions-context.md
index a2e0145a85e..a7d0d1948ba 100644
--- a/docs/window-functions-context.md
+++ b/docs/window-functions-context.md
@@ -2,6 +2,7 @@
 id: window-functions-context
 title: Window Functions Context
 sidebar_label: "Window Functions: Context"
+description: Get a comprehensive understanding of window functions context in 
Pulsar.
 ---
 
 Java SDK provides access to a **window context object** that can be used by a 
window function. This context object provides a wide variety of information and 
functionality for Pulsar window functions as below.


Reply via email to