这是一个看似微不足道的请求,但有人知道如何读取cloudflare函数中的worker secret吗?我看到了很多相互矛盾的建议,Cloudflare文档并没有真正展示如何在真实世界的示例中使用它。
wfauudbj1#
根据Cloudflare,秘密在无服务器函数中的fetch的env对象中发送。所以如果你把这个参数加到你的fetch中,它们就会神奇地出现在那里。env变量的命名结构是自定义的。你自己安排的。在我的例子中,API_KEY是我用来作为我的秘密的名字(你可以是任何你喜欢的名字)。Cloudflare并没有向您展示一个完整的示例。我下面的代码示例是从一个webhook中调用,从该webhook中摄取数据有效负载,然后将数据有效负载发送到API端点。您的数据形状可能与此处显示的不同,因此请确保根据需要进行调整:
fetch
env
API_KEY
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 }); } } }
字符串
1条答案
按热度按时间wfauudbj1#
根据Cloudflare,秘密在无服务器函数中的
fetch
的env
对象中发送。所以如果你把这个参数加到你的fetch中,它们就会神奇地出现在那里。env变量的命名结构是自定义的。你自己安排的。在我的例子中,
API_KEY
是我用来作为我的秘密的名字(你可以是任何你喜欢的名字)。Cloudflare并没有向您展示一个完整的示例。我下面的代码示例是从一个webhook中调用,从该webhook中摄取数据有效负载,然后将数据有效负载发送到API端点。您的数据形状可能与此处显示的不同,因此请确保根据需要进行调整:
字符串