Movatterモバイル変換


[0]ホーム

URL:


  1. Home
  2. Reference documentation
  3. VCL reference

Variables in VCL

VCL provides a multitude of predefined variables describing the state and properties of a request, and also provides a mechanism for declaring custom local variables. Custom variables are always scoped to the subroutine in which they are defined, while predefined variables have a variety of different scopes depending on their purpose and content, and their availability is indicated on each variable's reference page.

Predefined variables

Explore all available variables here:

Several predefined variables relate to various views of the HTTP exchange: the client request (req), backend request (bereq), backend response (beresp), cached object (obj), and client response (resp). These are accessible in their respective parts of the VCL lifecycle (for[R]eading and[W]riting):

Variablerecvhashhitmisspassfetcherrordeliverlog
req.*R/WR/WR/WR/WR/WR/WR/WR/WR/W
bereq.*R/WR/WR/WR 1️⃣
obj.*RR/W
beresp.*R/W
resp.*R/WR/W

1️⃣ A small number ofbereq. variables are available to read in thevcl_log subroutine.

User defined variables

Custom variables must be declared before they are used, usually at the beginning of a subroutine, before any statements. They can only be used in the same subroutine in which they are declared. Fastly VCL does not provide block scope: declarations apply to an entire subroutine's scope even if a variable is declared within a block.

Custom variables must start withvar. and otherwise consist of characters in the set[A-Za-z0-9._-]. The declaration syntax is:

declare local var.{NAME} {TYPE};

For example:

declare local var.gcs_bucket_nameSTRING;

Variables can be any of the validVCL types. Declared variables are initialized to the zero value of the type:

You can assign values to custom variables usingset (custom variables cannot beunset):

set var.gcs_bucket_name="production-site";

[8]ページ先頭

©2009-2025 Movatter.jp