# 配置
* [全球用户](https://developers.cloudflare.com/workers/tooling/wrangler/configuration#global-user)
* [使用环境变量](https://developers.cloudflare.com/workers/tooling/wrangler/configuration#using-environment-variables)
* [每个项目](https://developers.cloudflare.com/workers/tooling/wrangler/configuration#per-project)
`wrangler`使用两种类型的配置:全局用户和每个项目。
### 全球用户
在Cloudflare的系统中,您拥有一个可以具有多个帐户和区域的用户。结果,在您的计算机上全局配置了您的用户。您的帐户和区域将针对每个项目进行配置,但将使用您的用户凭据来验证所有API调用。此配置文件是在`.wrangler`计算机主目录中的目录中创建的。
要设置`wrangler`为与您的Cloudflare用户一起使用,请使用以下命令:
* 🔧`config`:提示您输入`email`和`api`键的命令。
* `whoami`:️♀️:运行此命令以确认您的配置正确设置。成功后,此命令将打印出您的用户信息,包括您当前使用的计划的类型。
#### 使用环境变量
您还可以使用环境变量配置全局用户。这是在CI中使用Wrangler的首选方法。
您可以使用身份验证令牌进行部署(推荐):
~~~bash
# e.g.
CF_ACCOUNT_ID=youraccountid
CF_API_TOKEN=superlongapitoken wrangler publish
# where
# $CF_API_TOKEN -> a Cloudflare API token
~~~
或者,您可以使用电子邮件和全局API密钥进行部署:
~~~bash
# e.g.
CF_EMAIL=testuser@example.com CF_API_KEY=superlongapikey wrangler publish
# where
# $CF_EMAIL -> your Cloudflare account email
# $CF_API_KEY -> your Cloudflare API key
~~~
请注意,通过环境变量提供身份验证凭据将覆盖您在运行时配置的所有凭据`wrangler config`。
### 每个项目
在发布工作人员之前,您的项目将需要配置一些内容。这些值存储在适合您的`wrangler.toml`文件中`wrangler generate`。在发布之前,您将需要手动编辑此文件以添加这些值。
* `name`:这是您的项目的名称。这将是脚本的名称。
* `type`:此键告诉`wrangler build`您如何构建您的项目。当前有三个选项(`webpack`,`javascript`和`rust`),但是随着社区的发展,我们希望会有更多选择。
* `javascript`\*:此项目包含一个在`package.json`的`main`键中定义的JavaScript文件。
* `rust`:该项目包含一个使用的Rust板条箱`wasm-bindgen`。它将使用构建`wasm-pack`。
* `webpack`\*:此项目包含可编译为WebAssembly的任意数量的JavaScript文件或Rust / C / C ++文件。Rust文件将使用构建`wasm-pack`。此项目类型在后台使用webpack和webpack插件来构建工作程序。您可以[在此处](https://developers.cloudflare.com/workers/tooling/wrangler/webpack)阅读有关此类型的更多信息。*\*注意:所有Javscript和webpack项目都必须包含package.json*
* `zone_id`:这是您要在其上运行脚本的“区域”或域的ID。如果您正在使用[worker.dev](https://workers.dev/)子域,则这是可选的,并且仅在`workers_dev`为false或从[环境](https://developers.cloudflare.com/workers/tooling/wrangler/configuration/environments)配置中排除时才需要。也可以通过`CF_ZONE_ID`环境变量指定它。
* `account_id`:这是与您的区域关联的帐户的ID。您可能拥有多个帐户,因此`zone_id`,如果您提供了一个帐户,请确保使用与您提供的帐户关联的ID。也可以通过`CF_ACCOUNT_ID`环境变量指定它。
* `route`:这是您要使用其工作人员的路线。您需要包括主机名。例子:
* `*example.com/*`
* `http://example.com/hello`
如果您正在使用[worker.dev](https://workers.dev/)子域,则此密钥是可选的,并且只有在`workers_dev`为false或从[环境中](https://developers.cloudflare.com/workers/tooling/wrangler/configuration/environments)排除时才需要。
* `webpack_config`:这是您的工作人员自定义Webpack配置文件的路径。您必须指定此字段以使用自定义Webpack配置,否则Wrangler将为您使用默认配置。您可以[在这里](https://developers.cloudflare.com/workers/tooling/wrangler/webpack)阅读更多内容。
* `workers_dev`:这是一个布尔型标志,用于指定是否将您的工作程序部署到[worker.dev](https://workers.dev/)子域。有关更多信息,请阅读[环境文档](https://developers.cloudflare.com/workers/tooling/wrangler/configuration/environments)。
* `vars`:一个对象,其中包含可以在Worker脚本中直接访问的文本变量。
~~~toml
vars = { FOO = "0f2ac74b498b48028cb68387c421e279", BAR = "068c101e168d03c65bddf4ba75150fb0" }
~~~
注意:使用机密应使用[牧马人机密](https://developers.cloudflare.com/workers/tooling/wrangler/secret/)处理。`vars`您的定义中`wrangler.toml`不得包含换行符,以确保有效的TOML。
* `kv-namespaces`:这些指定您要从Worker内部访问的所有Worker[KV](https://developers.cloudflare.com/workers/reference/storage/)命名空间。您包括的每个名称空间都应在`wrangler.toml`其中包含一个条目,其中包括:
* `binding`:您要在脚本中绑定的名称
* `id`:创建时分配给您的KV命名空间的namespace\_id。
例如:
~~~toml
kv-namespaces = [
{ binding = "FOO", id = "0f2ac74b498b48028cb68387c421e279" },
{ binding = "BAR", id = "068c101e168d03c65bddf4ba75150fb0" }
]
~~~
注意:应该使用Wrangler的[KV命令](https://developers.cloudflare.com/workers/tooling/wrangler/kv_commands)处理创建KV命名空间。
#### 环境环境
此外,您可以配置Wrangler以发布到多个环境。这意味着您可以将同一代码库跨多个帐户,区域和路由部署到[worker.dev](https://workers.dev/)子域上的多个位置。[在这里](https://developers.cloudflare.com/workers/tooling/wrangler/configuration/environments)阅读更多。
- 关于本翻译文档
- 快速开始
- 模版库
- 讲解
- Workers页面
- 从0开始
- 从已有页面开始
- 从已有Worder开始
- 工具
- Cli工具 wrangler
- 安装
- 指令
- 配置
- 环境
- Webpack
- 密钥
- KV
- 网站
- Playground
- ServerLess插件
- Terraform
- REST API
- Making Requests
- Scripts
- Bindings
- Routes
- Integrations
- 相关
- 工作原理
- 安全
- 使用缓存
- 价格
- Routes
- Limits
- 提示
- 调试技巧
- 调试header
- FetchEvent生命周期
- 请求上下文
- 请求sign
- 参考
- runtime API
- Web Standards
- fetch
- fetchEvent
- Response
- Request
- KV
- Environment Variables
- Streams
- Encoding
- Web Crypto
- Cache API
- HTMLRewriter
- Workers KV
- Use cases
- Namespaces
