地方发展有秘密

Jus*_*ith 11 cloudflare-workers

我按照本指南通过 cloudflare 工作人员将机密添加到我的产品环境中:
https://developers.cloudflare.com/workers/platform/environment-variables/#comparing-secrets-and-environment-variables

我可以通过 添加新的机密wrangler secret put,并且可以在仪表板中看到它们。当我使用 wrangler 在本地运行代码时,看起来变量并未被注入。我收到这样的错误:

Uncaught ReferenceError: TOKEN is not defined
  at line 0

    at throwFetchError (/Users/justin.beckwith/.nvm/versions/node/v16.14.0/lib/node_modules/wrangler/wrangler-dist/cli.js:134316:17)
    at fetchResult (/Users/justin.beckwith/.nvm/versions/node/v16.14.0/lib/node_modules/wrangler/wrangler-dist/cli.js:134287:5)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async previewToken (/Users/justin.beckwith/.nvm/versions/node/v16.14.0/lib/node_modules/wrangler/wrangler-dist/cli.js:134658:29)
    at async createWorker (/Users/justin.beckwith/.nvm/versions/node/v16.14.0/lib/node_modules/wrangler/wrangler-dist/cli.js:134675:17)
    at async start (/Users/justin.beckwith/.nvm/versions/node/v16.14.0/lib/node_modules/wrangler/wrangler-dist/cli.js:136075:16) {
Run Code Online (Sandbox Code Playgroud)

我知道秘密已经设置,据我所知,这些值应该是自动注入的。关于我在这里缺少什么有什么想法吗?谢谢你!

Tom*_*Tom 8

我从这里得到了答案。您可以创建名为 的文件.dev.vars,并将机密放入文件中。牧马人2使用命令时会自动绑定$ wrangler dev

例子:

  1. 将秘密放入.dev.vars文件中
API_KEY_0 = "YOU_SECRET_0"
API_KEY_1 = "YOU_SECRET_1"
Run Code Online (Sandbox Code Playgroud)
  1. 运行下面的命令,您可以在终端中看到它。
$ wrangler dev

...

Your worker has access to the following bindings:
- Vars:
  - API_KEY_0: "(hidden)"
  - API_KEY_1: "(hidden)"

...
Run Code Online (Sandbox Code Playgroud)
  1. .ts你在or中编码.js
interface Env {
  API_KEY_0: string
  API_KEY_1: string
}

export default {
  async fetch(request: Request, env: Env, context: ExecutionContext): Promise<Response> {
    console.log(env.API_KEY_0, env.API_KEY_1)
  }
}
Run Code Online (Sandbox Code Playgroud)
export default {
  async fetch(request, env, context) {
    console.log(env.API_KEY_0, env.API_KEY_1)
  }
}
Run Code Online (Sandbox Code Playgroud)

供你参考