इस गाइड में, दूसरी पीढ़ी Cloud Functions के साथ सर्वर-साइड Remote Config का इस्तेमाल शुरू करने का तरीका बताया गया है. इससे सर्वर-साइड कॉल किए जा सकते हैं Agent Platform Gemini API (formerly Vertex AI).
इस ट्यूटोरियल में, Remote Config को चैटबॉट जैसे फ़ंक्शन में जोड़ा जाएगा. यह फ़ंक्शन, उपयोगकर्ताओं के सवालों के जवाब देने के लिए Gemini मॉडल का इस्तेमाल करता है. Remote Config मैनेज करेगा. इनमें, ऐसा प्रॉम्प्ट भी शामिल है जिसे आने वाली उपयोगकर्ता की क्वेरी से पहले जोड़ा जाएगा. साथ ही, Firebase कंसोल से इन इनपुट को ऑन-डिमांड अपडेट किया जा सकता है.Gemini API फ़ंक्शन की जांच करने और उसमें मौजूद गड़बड़ियों को ठीक करने के लिए, Firebase Local Emulator Suite का इस्तेमाल किया जाएगा. इसके बाद, यह पुष्टि की जाएगी कि यह काम कर रहा है या नहीं. इसके बाद, इसे Google Cloud पर डिप्लॉय और टेस्ट किया जाएगा.
ज़रूरी शर्तें
इस गाइड में यह मानकर चला जा रहा है कि आपको ऐप्लिकेशन डेवलप करने के लिए JavaScript का इस्तेमाल करना आता है.
Firebase प्रोजेक्ट सेट अप करना
अगर आपके पास पहले से कोई Firebase प्रोजेक्ट नहीं है, तो:
Firebase कंसोल में साइन इन करें.
**प्रोजेक्ट बनाएं** पर क्लिक करें. इसके बाद, इनमें से कोई एक विकल्प चुनें:
- पहला विकल्प: "प्रोजेक्ट बनाएं" वर्कफ़्लो के पहले चरण में, नया प्रोजेक्ट का नाम डालकर एक नया Firebase प्रोजेक्ट बनाएं. इससे, इसका Google Cloud प्रोजेक्ट अपने-आप बन जाएगा.
- दूसरा विकल्प: "प्रोजेक्ट बनाएं" वर्कफ़्लो के पहले चरण में, ड्रॉप-डाउन मेन्यू से अपना Google Cloud प्रोजेक्ट का नाम चुनकर, मौजूदा Google Cloud प्रोजेक्ट में "Firebase जोड़ें".
इस समाधान का इस्तेमाल करने के लिए, आपको Google Analytics सेट अप करने की ज़रूरत नहीं है.
अपना प्रोजेक्ट बनाने के लिए, स्क्रीन पर दिए गए निर्देशों का पालन करें.
अगर आपके पास पहले से कोई Firebase प्रोजेक्ट है, तो:
डेवलपमेंट एनवायरमेंट को कॉन्फ़िगर करने के लिए आगे बढ़ें.
डेवलपमेंट एनवायरमेंट को कॉन्फ़िगर करना
फ़ंक्शन लिखने के लिए, आपको Node.js एनवायरमेंट की ज़रूरत होगी. साथ ही, रनटाइम पर फ़ंक्शन डिप्लॉय करने के लिए, आपको Firebase CLI की ज़रूरत होगी.Cloud Functions
-
Node.js और npm इंस्टॉल करने के लिए, हमारा सुझाव है कि आप Node Version Manager का इस्तेमाल करें.
अपनी पसंद के तरीके से Firebase CLI इंस्टॉल करें. उदाहरण के लिए, npm का इस्तेमाल करके CLI इंस्टॉल करने के लिए, यह निर्देश दें:
npm install -g firebase-tools@latestइस निर्देश से, दुनिया भर में उपलब्ध
firebaseनिर्देश इंस्टॉल हो जाता है. अगर यह निर्देश काम नहीं करता है, तो आपको npm की अनुमतियां बदलनी पड़ सकती हैं.firebase-toolsके नए वर्शन पर अपडेट करने के लिए, वही निर्देश फिर से दें.firebase-functionsऔरfirebase-adminइंस्टॉल करें. साथ ही, इन्हें अपनेpackage.jsonमें सेव करने के लिए,--saveका इस्तेमाल करें:npm install firebase-functions@latest firebase-admin@latest --save
अब इस समाधान को लागू किया जा सकता है.
लागू करना
Remote Config और Agent Platform के साथ दूसरी पीढ़ी के Cloud Functions बनाने, टेस्ट करने, और डिप्लॉय करने के लिए, यह तरीका अपनाएं:
- Agent Platform के सुझाए गए एपीआई Google Cloud कंसोल में चालू करें.
- अपना प्रोजेक्ट शुरू करें और Node की डिपेंडेंसी इंस्टॉल करें.
- अपने Admin SDK सेवा खाते के लिए, आईएएम की अनुमतियां कॉन्फ़िगर करें और अपनी कुंजी सेव करें.
- फ़ंक्शन बनाएं.
- सर्वर के लिए, Remote Config टेंप्लेट बनाएं.
- अपना फ़ंक्शन डिप्लॉय करें और उसकी जांच करेंFirebase Local Emulator Suite.
- अपना फ़ंक्शन, Google Cloud पर डिप्लॉय करें.
पहला चरण: Google Cloud कंसोल में, Agent Platform सुझाए गए एपीआई चालू करना
- Google Cloud कंसोल खोलें. इसके बाद, पूछे जाने पर अपना प्रोजेक्ट चुनें.
- कंसोल में सबसे ऊपर मौजूद खोजें फ़ील्ड में, Agent Platform डालें और Agent Platform के नतीजे के तौर पर दिखने का इंतज़ार करें.
- Agent Platform चुनें. Agent Platform डैशबोर्ड दिखता है.
सुझाए गए सभी एपीआई चालू करें पर क्लिक करें.
एपीआई को चालू होने में कुछ समय लग सकता है. जब तक एपीआई चालू नहीं हो जाता, तब तक पेज को चालू और खुला रखें.
अगर बिलिंग चालू नहीं है, तो आपको Cloud Billing खाता जोड़ने या लिंक करने के लिए कहा जाएगा. बिलिंग खाता चालू करने के बाद, Agent Platform के डैशबोर्ड पर वापस जाएं और पुष्टि करें कि सुझाए गए सभी एपीआई चालू हैं.
दूसरा चरण: अपना प्रोजेक्ट शुरू करना और Node की डिपेंडेंसी इंस्टॉल करना
- अपने कंप्यूटर पर एक टर्मिनल खोलें और उस डायरेक्ट्री पर जाएं जहां आपको अपना फ़ंक्शन बनाना है.
Firebase में लॉग इन करें:
firebase loginCloud Functions for Firebase शुरू करने के लिए, यह निर्देश दें:
firebase init functionsमौजूदा प्रोजेक्ट का इस्तेमाल करें को चुनें और अपना प्रोजेक्ट आईडी डालें.
इस्तेमाल की जाने वाली भाषा चुनने के लिए कहे जाने पर, Javascript चुनें और Enter दबाएं.
अन्य सभी विकल्पों के लिए, डिफ़ॉल्ट सेटिंग चुनें.
मौजूदा डायरेक्ट्री में,
functionsडायरेक्ट्री बन जाती है. इसमें, आपकोindex.jsफ़ाइल मिलेगी. इसका इस्तेमाल करके, अपना फ़ंक्शन बनाया जा सकता है. साथ ही,node_modulesडायरेक्ट्री मिलेगी, जिसमें आपके फ़ंक्शन की डिपेंडेंसी शामिल होती हैं. इसके अलावा,package.jsonफ़ाइल मिलेगी, जिसमें पैकेज की डिपेंडेंसी शामिल होती हैं.Admin SDK और Agent Platform पैकेज जोड़ने के लिए, ये निर्देश दें. साथ ही, यह पक्का करने के लिए
--saveका इस्तेमाल करें कि यह आपकीpackage.jsonफ़ाइल में सेव हो गया है:cd functions npm install firebase-admin@latest @google-cloud/vertexai --save
आपकी functions/package.json फ़ाइल अब इस तरह दिखनी चाहिए. इसमें, सबसे नए वर्शन की जानकारी दी गई हो:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase emulators:start --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "20"
},
"main": "index.js",
"dependencies": {
"@google-cloud/vertexai": "^1.1.0",
"firebase-admin": "^12.1.0",
"firebase-functions": "^5.0.0"
},
"devDependencies": {
"firebase-functions-test": "^3.1.0"
},
"private": true
}
ध्यान दें कि अगर ESLint का इस्तेमाल किया जा रहा है, तो आपको एक स्टैंज़ा दिखेगा, जिसमें इसकी जानकारी शामिल होगी. इसके
अलावा, पक्का करें कि नोड इंजन का वर्शन, Node.js के इंस्टॉल किए गए वर्शन
और Google Cloud पर चलने वाले वर्शन से मेल खाता हो. उदाहरण के लिए, अगर आपके package.json में engines स्टैंज़ा, Node के वर्शन 18 के तौर पर कॉन्फ़िगर किया गया है और Node.js 20 का इस्तेमाल किया जा रहा है, तो फ़ाइल को अपडेट करके 20 का इस्तेमाल करें:
"engines": {
"node": "20"
},
तीसरा चरण: आपके Admin SDK सेवा खाते के लिए, आईएएम की अनुमतियां कॉन्फ़िगर करना और अपनी कुंजी सेव करना
इस समाधान में, अपना फ़ंक्शन चलाने के लिए, Firebase Admin SDK सेवा खाते का इस्तेमाल किया जाएगा.
- Google Cloud कंसोल में, IAM और एडमिन पेज खोलें,
और Admin SDK सेवा खाते (जिसका नाम
firebase-adminsdkहै) को ढूंढें. - खाता चुनें और प्रिंसिपल में बदलाव करें पर क्लिक करें. बदलाव करने का ऐक्सेस पेज दिखता है.
- **अन्य भूमिका जोड़ें** पर क्लिक करें. इसके बाद, **Remote Config व्यूअर** को चुनें.
- **अन्य भूमिका जोड़ें** पर क्लिक करें. इसके बाद, **एआई प्लैटफ़ॉर्म डेवलपर** को चुनें.
- **अन्य भूमिका जोड़ें** पर क्लिक करें. इसके बाद, Agent Platform उपयोगकर्ता को चुनें.
- अन्य भूमिका जोड़ें पर क्लिक करें. इसके बाद, Cloud Run Invoker को चुनें.
- सेव करें पर क्लिक करें.
इसके बाद, Admin SDK सेवा खाते के क्रेडेंशियल एक्सपोर्ट करें और उन्हें अपने GOOGLE_APPLICATION_CREDENTIALS एनवायरमेंट वैरिएबल में सेव करें.
- Google Cloud कंसोल में, क्रेडेंशियल पेज खोलें.
- जानकारी पेज खोलने के लिए, Admin SDK के सेवा खाते पर क्लिक करें.
- कुंजियां पर क्लिक करें.
- कुंजी जोड़ें > नई कुंजी बनाएं पर क्लिक करें.
- पक्का करें कि कुंजी का टाइप के तौर पर JSON चुना गया हो. इसके बाद, बनाएं पर क्लिक करें.
- कुंजी को अपने कंप्यूटर पर किसी सुरक्षित जगह पर डाउनलोड करें.
अपने टर्मिनल से, कुंजी को एनवायरमेंट वैरिएबल के तौर पर एक्सपोर्ट करें:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
चौथा चरण: फ़ंक्शन बनाना
इस चरण में, एक ऐसा फ़ंक्शन बनाया जाएगा जो उपयोगकर्ता के इनपुट को हैंडल करता है और एआई की मदद से जवाब जनरेट करता है. कई कोड स्निपेट को मिलाकर, एक ऐसा फ़ंक्शन बनाया जाएगा जो Admin SDK और Agent Platform Gemini API (formerly Vertex AI) को शुरू करता है. साथ ही, Remote Config का इस्तेमाल करके डिफ़ॉल्ट पैरामीटर कॉन्फ़िगर करता है, Remote Config के नए पैरामीटर फ़ेच करता है, उपयोगकर्ता के इनपुट को प्रोसेस करता है, और उपयोगकर्ता को जवाब स्ट्रीम करता है.
- अपने कोडबेस में, किसी टेक्स्ट एडिटर या IDE में
functions/index.jsखोलें. मौजूदा कॉन्टेंट मिटाएं. इसके बाद, Admin SDK, Remote Config, और Agent Platform SDK जोड़ें. साथ ही, फ़ाइल में यह कोड चिपकाकर ऐप्लिकेशन शुरू करें:
const { onRequest } = require("firebase-functions/https"); const logger = require("firebase-functions/logger"); const { initializeApp } = require("firebase-admin/app"); const { VertexAI } = require('@google-cloud/vertexai'); const { getRemoteConfig } = require("firebase-admin/remote-config"); // Set and check environment variables. const project = process.env.GCLOUD_PROJECT; // Initialize Firebase. const app = initializeApp();डिफ़ॉल्ट वैल्यू कॉन्फ़िगर करें. अगर आपका फ़ंक्शन, Remote Config सर्वर से कनेक्ट नहीं हो पाता है, तो वह इन वैल्यू का इस्तेमाल करेगा. इस समाधान में,
textModel,generationConfig,safetySettings,textPrompt, औरlocationको Remote Config के पैरामीटर के तौर पर कॉन्फ़िगर किया जाता है. ये पैरामीटर, Remote Config के उन पैरामीटर से मेल खाते हैं जिन्हें इस गाइड में आगे कॉन्फ़िगर किया जाएगा. इन पैरामीटर के बारे में ज़्यादा जानकारी के लिए, देखें Vertex AI Node.js क्लाइंट.ज़रूरी नहीं है कि Agent Platform Gemini API (formerly Vertex AI) (इस उदाहरण में,
vertex_enabled) को ऐक्सेस करने के लिए, कोई पैरामीटर कॉन्फ़िगर किया जाए. इस सेटअप का इस्तेमाल, अपने फ़ंक्शन की जांच करते समय किया जा सकता है. यहां दिए गए कोड स्निपेट में, इस वैल्यू कोfalseपर सेट किया गया है. इससे, फ़ंक्शन को बुनियादी तौर पर डिप्लॉय करने की जांच करते समय, Agent Platform का इस्तेमाल नहीं किया जाएगा. इसेtrueपर सेट करने से, Agent Platform Gemini API (formerly Vertex AI) शुरू हो जाएगा.// Define default (fallback) parameter values for Remote Config. const defaultConfig = { // Default values for Vertex AI. model_name: "gemini-1.5-flash-002", generation_config: [{ "stopSequences": [], "temperature": 0.7, "maxOutputTokens": 64, "topP": 0.1, "topK": 20 }], prompt: "I'm a developer who wants to learn about Firebase and you are a \ helpful assistant who knows everything there is to know about Firebase!", safety_settings: [{ "category": "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE" }], location: 'us-central1', // Disable Vertex AI Gemini API access for testing. vertex_enabled: false };फ़ंक्शन बनाएं और सर्वर-साइड Remote Config सेट अप करें:
// Export the function. exports.generateWithVertex = onRequest(async (request, response) => { try { // Set up Remote Config. const rc = getRemoteConfig(app); // Get the Remote Config template and assign default values. const template = await rc.getServerTemplate({ defaultConfig: defaultConfig }); // Add the template evaluation to a constant. const config = template.evaluate(); // Obtain values from Remote Config. const textModel = config.getString("model_name") || defaultConfig.model_name; const textPrompt = config.getString("prompt") || defaultConfig.prompt; const generationConfig = config.getString("generation_config") || defaultConfig.generation_config; const safetySettings = config.getString("safety_settings") || defaultConfig.safety_settings; const location = config.getString("location") || defaultConfig.location; const vertexEnabled = config.getBoolean("is_vertex_enabled") || defaultConfig.vertex_enabled;Agent Platform सेट अप करें और चैट और जवाब की लॉजिक जोड़ें:
// Allow user input. const userInput = request.query.prompt || ''; // Instantiate Vertex AI. const vertex_ai = new VertexAI({ project: project, location: location }); const generativeModel = vertex_ai.getGenerativeModel({ model: textModel, safety_settings: safetySettings, generation_config: generationConfig, }); // Combine prompt from Remote Config with optional user input. const chatInput = textPrompt + " " + userInput; if (!chatInput) { return res.status(400).send('Missing text prompt'); } // If vertexEnabled isn't true, do not send queries to Vertex AI. if (vertexEnabled !== true) { response.status(200).send({ message: "Vertex AI call skipped. Vertex is not enabled." }); return; } logger.log("\nRunning with model ", textModel, ", prompt: ", textPrompt, ", generationConfig: ", generationConfig, ", safetySettings: ", safetySettings, " in ", location, "\n"); const result = await generativeModel.generateContentStream(chatInput); response.writeHead(200, { 'Content-Type': 'text/plain' }); for await (const item of result.stream) { const chunk = item.candidates[0].content.parts[0].text; logger.log("Received chunk:", chunk); response.write(chunk); } response.end(); } catch (error) { logger.error(error); response.status(500).send('Internal server error'); } });फ़ाइल सेव करें और बंद करें.
पांचवां चरण: सर्वर के लिए, Remote Config टेंप्लेट बनाना
इसके बाद, सर्वर-साइड Remote Config का टेंप्लेट बनाएं और अपने फ़ंक्शन में इस्तेमाल करने के लिए, पैरामीटर और वैल्यू कॉन्फ़िगर करें. सर्वर के लिए, Remote Config टेंप्लेट बनाने के लिए:
Firebase कंसोल में, DevOps और जुड़ाव > रिमोट कॉन्फ़िगरेशन पर जाएं.
पेज पर सबसे ऊपर मौजूद क्लाइंट/सर्वर सिलेक्टर से, सर्वर चुनें.
- अगर Remote Config या सर्वर टेंप्लेट का इस्तेमाल पहली बार किया जा रहा है, तो कॉन्फ़िगरेशन बनाएं पर क्लिक करें. सर्वर-साइड का अपना पहला पैरामीटर बनाएं पैनल दिखता है.
- अगर Remote Config सर्वर टेंप्लेट का इस्तेमाल पहली बार नहीं किया जा रहा है, तो **पैरामीटर जोड़ें** पर क्लिक करें.
ये Remote Config पैरामीटर तय करें:
पैरामीटर का नाम ब्यौरा टाइप डिफ़ॉल्ट वैल्यू model_nameमॉडल का नाम
अपने कोड में इस्तेमाल किए जाने वाले मॉडल के नामों की अप-टू-डेट सूची के लिए, देखें: मॉडल के वर्शन और लाइफ़साइकल या उपलब्ध मॉडल के नाम.स्ट्रिंग gemini-2.0-flashpromptउपयोगकर्ता की क्वेरी से पहले जोड़ा जाने वाला प्रॉम्प्ट. स्ट्रिंग I'm a developer who wants to learn about Firebase and you are a helpful assistant who knows everything there is to know about Firebase!generation_configमॉडल को भेजे जाने वाले पैरामीटर JSON [{"stopSequences": ["I hope this helps"],"temperature": 0.7,"maxOutputTokens": 512, "topP": 0.1,"topK": 20}]safety_settingsके लिए सुरक्षा सेटिंगAgent Platform JSON [{"category": "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "HarmBlockThreshold.BLOCK_LOW_AND_ABOVE"}]locationसेवा और मॉडल को चलाने की जगहAgent Platform स्ट्रिंग globalis_vertex_enabledज़रूरी नहीं है कि यह पैरामीटर कॉन्फ़िगर किया जाए. इससे यह कंट्रोल किया जाता है कि क्वेरी, Agent Platform को भेजी जाएं या नहीं. बूलियन trueपैरामीटर जोड़ने के बाद, अपने पैरामीटर और उनके डेटा टाइप की दोबारा जांच करें. इसके बाद, बदलाव पब्लिश करें पर क्लिक करें.
छठा चरण: अपना फ़ंक्शन डिप्लॉय करना और Firebase Local Emulator Suite में उसकी जांच करना
अब Firebase Local Emulator Suite की मदद से, अपने फ़ंक्शन को स्थानीय तौर पर डिप्लॉय और टेस्ट किया जा सकता है. Firebase Local Emulator Suite
पक्का करें कि आपने
GOOGLE_APPLICATION_CREDENTIALSको एनवायरमेंट वैरिएबल के तौर पर सेट किया हो. इसके लिए, तीसरा चरण: Admin SDK के सेवा खाते के लिए, आईएएम की अनुमतियां कॉन्फ़िगर करना और अपनी कुंजी सेव करना में बताया गया तरीका अपनाएं.Admin SDK इसके बाद, अपनीfunctionsडायरेक्ट्री की पैरंट डायरेक्ट्री से, अपने फ़ंक्शन को Firebase एम्युलेटर पर डिप्लॉय करें:firebase emulators:start --project PROJECT_ID --only functionsएम्युलेटर का लॉग पेज खोलें . इससे पता चलेगा कि आपका फ़ंक्शन लोड हो गया है.
अपना फ़ंक्शन ऐक्सेस करने के लिए, यह निर्देश दें. इसमें PROJECT_ID आपका प्रोजेक्ट आईडी है और LOCATION वह इलाका है जहां आपने फ़ंक्शन डिप्लॉय किया है. उदाहरण के लिए,
us-central1:curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertexजवाब मिलने का इंतज़ार करें. इसके बाद, Firebase Emulator के लॉग पेज या अपने कंसोल पर वापस जाएं और गड़बड़ियां या चेतावनियां देखें.
उपयोगकर्ता का कुछ इनपुट भेजकर देखें. ध्यान दें कि क्योंकि
is_vertex_enabledआपके Remote Config सर्वर टेंप्लेट में कॉन्फ़िगर किया गया है, इसलिए इससे Gemini मॉडल को Agent Platform Gemini API (formerly Vertex AI) के ज़रिए ऐक्सेस किया जाना चाहिए. साथ ही, इसके लिए शुल्क लग सकता है:curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex?prompt=Tell%20me%20everything%20you%20know%20about%20catsFirebase कंसोल में, Remote Config के सर्वर टेंप्लेट में बदलाव करें. इसके बाद, बदलाव देखने के लिए अपने फ़ंक्शन को फिर से ऐक्सेस करें.Firebase
सातवां चरण: अपना फ़ंक्शन, Google Cloud पर डिप्लॉय करना
अपने फ़ंक्शन की जांच करने और यह पुष्टि करने के बाद कि यह सही तरीके से काम कर रहा है, इसे Google Cloud पर डिप्लॉय किया जा सकता है. इसके बाद, लाइव फ़ंक्शन की जांच की जा सकती है.
अपना फ़ंक्शन डिप्लॉय करना
Firebase CLI का इस्तेमाल करके, अपना फ़ंक्शन डिप्लॉय करें:
firebase deploy --only functions
फ़ंक्शन को बिना पुष्टि किए ऐक्सेस करने से रोकना
Firebase का इस्तेमाल करके फ़ंक्शन डिप्लॉय करने पर, बिना पुष्टि किए शुरू करने की अनुमति डिफ़ॉल्ट रूप से दी जाती है. हालांकि, अगर आपके संगठन की नीति में इस पर पाबंदी नहीं है, तो ही ऐसा होता है. हमारा सुझाव है कि जांच के दौरान और App Check की मदद से सुरक्षित करने से पहले, हम बिना पुष्टि किए ऐक्सेस करने से रोकें.
फ़ंक्शन को बिना पुष्टि किए ऐक्सेस करने से रोकने के लिए:
Google Cloud कंसोल में, Cloud Run खोलें.
generateWithVertexपर क्लिक करें. इसके बाद, सुरक्षा टैब पर क्लिक करें.पुष्टि ज़रूरी है को चालू करें. इसके बाद, सेव करें पर क्लिक करें.
सेवा खाते के क्रेडेंशियल का इस्तेमाल करने के लिए, अपना उपयोगकर्ता खाता कॉन्फ़िगर करनाAdmin SDK
Admin SDK सेवा खाते के पास, फ़ंक्शन चलाने और Remote Config और Agent Platform Gemini API (formerly Vertex AI) के साथ इंटरैक्ट करने के लिए ज़रूरी सभी भूमिकाएं और अनुमतियां होती हैं. इसलिए, अपने फ़ंक्शन को चलाने के लिए, इसका इस्तेमाल करना बेहतर है. इसके लिए, आपके पास अपने उपयोगकर्ता खाते से, खाते के लिए टोकन बनाने की अनुमति होनी चाहिए.
उपयोगकर्ता खाते और फ़ंक्शन को, Admin SDK सेवा खाते के खास अधिकारों के साथ चलाने के लिए, उन्हें कॉन्फ़िगर करने का तरीका यहां बताया गया है.
- Google Cloud कंसोल में, IAM सर्विस अकाउंट क्रेडेंशियल एपीआई चालू करें.
- अपने उपयोगकर्ता खाते को सेवा खाता टोकन क्रिएटर की भूमिका दें: Google Cloud कंसोल में, IAM और एडमिन > IAM खोलें. इसके बाद, अपना उपयोगकर्ता खाता चुनें और प्रिंसिपल में बदलाव करें > अन्य भूमिका जोड़ें पर क्लिक करें.
**सेवा खाता टोकन क्रिएटर** को चुनें. इसके बाद, **सेव करें** पर क्लिक करें.
सेवा खाते के डुप्लीकेट के बारे में ज़्यादा जानकारी के लिए, सेवा खाते के डुप्लीकेट के दस्तावेज़ में देखें.Google Cloud
Google Cloud कंसोल Cloud Functions पेज खोलें और फ़ंक्शन सूची में, generateWithVertex फ़ंक्शन पर क्लिक करें.
ट्रिगर > बदलाव करें को चुनें और रनटाइम, बिल्ड, कनेक्शन, और सुरक्षा सेटिंग को बड़ा करें.
रनटाइम टैब में, रनटाइम सेवा खाता को Admin SDK खाता में बदलें.
आगे बढ़ें पर क्लिक करें. इसके बाद, डिप्लॉय करें पर क्लिक करें.
gcloud सीएलआई सेट अप करना
कमांड लाइन से अपने फ़ंक्शन को सुरक्षित तरीके से चलाने और टेस्ट करने के लिए, आपको सेवा से पुष्टि करनी होगी और पुष्टि करने का मान्य टोकन पाना होगा.Cloud Functions
टोकन जनरेट करने की सुविधा चालू करने के लिए, gcloud सीएलआई इंस्टॉल और कॉन्फ़िगर करें:
अपने Google Cloud खाते के लिए, ऐक्सेस क्रेडेंशियल पाएं:
gcloud auth logingcloud में अपना प्रोजेक्ट आईडी सेट करें:
gcloud config set project PROJECT_ID
अपने फ़ंक्शन की जांच करना
अब Google Cloud में अपने फ़ंक्शन की जांच की जा सकती है. फ़ंक्शन की जांच करने के लिए, यह निर्देश दें:
curl -X POST https://LOCATION-PROJECT_ID.cloudfunctions.net/generateWithVertex \
-H "Authorization: bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json"
उपयोगकर्ता के दिए गए डेटा के साथ फिर से कोशिश करें:
curl -X POST https://LOCATION-PROJECT_ID.cloudfunctions.net/generateWithVertex?prompt=Tell%20me%20everything%20you%20know%20about%20dogs \
-H "Authorization: bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json"
अब Remote Config सर्वर टेंप्लेट में बदलाव किए जा सकते हैं. साथ ही, उन बदलावों को पब्लिश किया जा सकता है और अलग-अलग विकल्पों की जांच की जा सकती है.
अगले चरण
- Firebase, Cloud Functions को सुरक्षित करने के लिए, App Check का इस्तेमाल करने का सुझाव देता है. अपने फ़ंक्शन को सुरक्षित करने के बारे में ज़्यादा जानकारी के लिए, लागू करने की सुविधा चालू करना देखेंApp CheckApp CheckCloud Functions
- सर्वर-साइड Remote Config और App Check के साथ, कॉल किए जा सकने वाले फ़ंक्शन का सैंपल आज़माएं. इसके लिए, Remote Config और App Check की मदद से, Agent Platform Gemini API (formerly Vertex AI) को कॉल करना देखें.
- Cloud Functions for Firebase के बारे में ज़्यादा जानें.
- सर्वर एनवायरमेंट में का इस्तेमाल करने के बारे में ज़्यादा जानें.Remote Config