[Yandex Cloud documentation](../../../index.md) > [Yandex Cloud Functions](../../index.md) > [Step-by-step guides](../index.md) > Invoking a function > Invoking a function

# Invoking a function

To allow any user to invoke a function without providing an authorization header, [make it public](function-public.md). For more information about access permissions, see [Access management in Cloud Functions](../../security/index.md).

## Invoking a function {#invoking-function}

In our example, we will use the function described in [Creating a function version](version-manage.md).

{% list tabs group=instructions %}

- Management console {#console}
    
    1. In the [management console](https://console.yandex.cloud), navigate to the folder containing the function.

    1. Navigate to **Cloud Functions**.

    1. Select the function.

    1. Navigate to the **Testing** tab.

    1. In the **Version tag** field, specify the function version to invoke.

    1. Under **Payload template**, select one of these options:

        * **No template**: Custom data format.
        * **HTTPS invoke**: Data format used to call the function to act as an HTTPS request handler. For more information, see [Concepts](../../concepts/function-invoke.md).
        * **Trigger for Message Queue**: Data format for a function that is invoked by a trigger to process queue messages.
        * **Skill for Alice**: Data format used to call the function to receive [requests](https://yandex.ru/dev/dialogs/alice/doc/request.html) from Yandex Dialogs.

    1. In the **Payload**, enter the input data to test the function.

    1. Click **Run test**.

    1. You will see the test status under **Test result** in the **Function status** field. **Note that** the maximum function execution time before [timeout](version-manage.md), including first call initialization, is ten minutes.

    1. You will see the function execution result in the **Function output** field.

- HTTPS {#https}

    {% note info %}
    
    Function invocations may be restricted by [access policies](../../../iam/concepts/access-control/access-policies.md#supported-policies).
    
    {% endnote %}

    You can find the function invocation link:
    * In the **Link to invoke** field. Do it by navigating to **Cloud Functions** in the [management console](https://console.yandex.cloud) and clicking the row with the function you need.
    * In the `http_invoke_url` parameter. Do it by running this command:
        ```
        yc serverless function get <function_name>
        ```

    To find out the name or ID of a function, [get](function-list.md) the list of functions in the folder.

    For security reasons, you can only call a function via HTTPS. Call it as a regular HTTPS request by pasting the function invocation link into your browser’s address bar. The link should have the following format:

    ```
    https://functions.yandexcloud.net/<function_ID>
    ```
    
    You can invoke a specific function version using the `tag` parameter. The function with the `$latest` tag is invoked by default.

    * Example of invoking a function with no additional parameters:

        ```
        https://functions.yandexcloud.net/<function_ID>
        ```

        The following response will appear on the page:

        ```
        Hello, World!
        ```

    * Example of invoking a function by adding the `name` parameter to the URL:

        ```
        https://functions.yandexcloud.net/<function_ID>?name=<username>
        ```

        The following response will appear on the page:

        ```
        Hello, Username!
        ```
    * Example of invoking a specific function version by adding the `tag` parameter to the URL:
      
        ```
        https://functions.yandexcloud.net/<function_ID>?tag=<version_tag>
        ```
            
- CLI {#cli}

    If you do not have the Yandex Cloud CLI yet, [install and initialize it](../../../cli/quickstart.md#install).

    The folder used by default is the one specified when [creating](../../../cli/operations/profile/profile-create.md) the CLI profile. To change the default folder, use the `yc config set folder-id <folder_ID>` command. You can also specify a different folder for any command using `--folder-name` or `--folder-id`. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

    You can invoke a specific function version using the `--tag` parameter. The function with the `$latest` tag is invoked by default.

    To find out the name or ID of a function, [get](function-list.md) the list of functions in the folder.

    * Invoke the function by specifying a name for the greeting in the parameter:

        ```
        yc serverless function invoke <function_ID> -d '{"queryStringParameters": {"name": "Username"}}'
        ```

        Result:

        ```    
        {"statusCode": 200, "headers": {"Content-Type": "text/plain"}, "isBase64Encoded": false, "body": "Hello, Username!"}
        ```
    * Invoke a specific function version using the `--tag` parameter:
    
        ```
        yc serverless function invoke <function_ID> --tag <version_tag>
        ```


{% endlist %}

To learn more about the function structure required for different invocation methods (HTTPS and CLI), see [Invoking a function in Cloud Functions](../../concepts/function-invoke.md).