NodeJS 在Cloudflare Workers Serverless Function中阅读env secret

kxeu7u2r  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(107)

这是一个看似微不足道的请求,但有人知道如何读取cloudflare函数中的worker secret吗?我看到了很多相互矛盾的建议,Cloudflare文档并没有真正展示如何在真实世界的示例中使用它。

wfauudbj

wfauudbj1#

根据Cloudflare,秘密在无服务器函数中的fetchenv对象中发送。所以如果你把这个参数加到你的fetch中,它们就会神奇地出现在那里。
env变量的命名结构是自定义的。你自己安排的。在我的例子中,API_KEY是我用来作为我的秘密的名字(你可以是任何你喜欢的名字)。
Cloudflare并没有向您展示一个完整的示例。我下面的代码示例是从一个webhook中调用,从该webhook中摄取数据有效负载,然后将数据有效负载发送到API端点。您的数据形状可能与此处显示的不同,因此请确保根据需要进行调整:

export default {
  async fetch(request, env) {
    if (request.method === 'POST') {
      const webhookData = await request.json();

      if (webhookData.event === 'your.param.here') {
        const memberInfo = webhookData.payload;

        const apiData = {
          apikey: env.API_KEY,  // Use the secret here
          email: memberInfo.email,
        };

        // Make the API call
        const apiResponse = await fetch('https://your.endpoint.here/v1/', {
          method: 'POST',
          headers: { 'Content-Type': 'application/json' },
          body: JSON.stringify(apiData)
        });

        if (apiResponse.ok) {
          // API request was successful
          return new Response('Webhook received and API request sent!', { status: 200 });
        } else {
          // API request failed
          console.error('API request failed:', await apiResponse.text());
          return new Response('An error occurred.', { status: 500 });
        }
      } else {
        // Not the event we're interested in
        return new Response('Event not handled.', { status: 200 });
      }
    } else {
      return new Response('Expected a POST request.', { status: 400 });
    }
  }
}

字符串

相关问题