טריגרים של הגדרת תצורה מרחוק ב-Firebase
אפשר להפעיל פונקציות Cloud Run בתגובה לשינויים בהגדרת התצורה מרחוק ב-Firebase באותו Google Cloud פרויקט שבו מוגדרת הפונקציה. כך אפשר לשנות את ההתנהגות ואת המראה של האפליקציה בלי לפרסם עדכון לאפליקציה.
סוגי אירועים
הגדרת תצורה מרחוק ב-Firebase יכולה להפעיל פונקציות בתגובה לאירוע remoteconfig.update.
| סוג האירוע | הטריגר |
|---|---|
remoteconfig.update |
מופעל כשמעדכנים את תבנית ההגדרות של Remote Config. |
מבנה האירוע
נתוני האירועים מסופקים כאובייקט remoteConfig שעבר טרנספורמציה.
לדוגמה:
{ "updateType": "FORCED_UPDATE", "updateOrigin": "CONSOLE", "versionNumber": 1 }
קוד לדוגמה
Node.js
Python
Go
Java
C#
using CloudNative.CloudEvents; using Google.Cloud.Functions.Framework; using Google.Events.Protobuf.Firebase.RemoteConfig.V1; using Microsoft.Extensions.Logging; using System.Threading; using System.Threading.Tasks; namespace FirebaseRemoteConfig; public class Function : ICloudEventFunction<RemoteConfigEventData> { private readonly ILogger _logger; public Function(ILogger<Function> logger) => _logger = logger; public Task HandleAsync(CloudEvent cloudEvent, RemoteConfigEventData data, CancellationToken cancellationToken) { _logger.LogInformation("Update type: {origin}", data.UpdateType); _logger.LogInformation("Update origin: {origin}", data.UpdateOrigin); _logger.LogInformation("Version number: {version}", data.VersionNumber); // In this example, we don't need to perform any asynchronous operations, so the // method doesn't need to be declared async. return Task.CompletedTask; } }
Ruby
PHP
use Google\CloudFunctions\CloudEvent; function firebaseRemoteConfig(CloudEvent $cloudevent) { $log = fopen(getenv('LOGGER_OUTPUT') ?: 'php://stderr', 'wb'); $data = $cloudevent->getData(); fwrite($log, 'Update type: ' . $data['updateType'] . PHP_EOL); fwrite($log, 'Origin: ' . $data['updateOrigin'] . PHP_EOL); fwrite($log, 'Version: ' . $data['versionNumber'] . PHP_EOL); }
פריסת הפונקציה
כדי לפרוס את הפונקציה, צריך לציין את סוג האירוע google.firebase.remoteconfig.update.
הפקודה gcloud הבאה פורסת פונקציה שמופעלת על ידי אירוע של הגדרת תצורה מרחוק ב-Firebase:
gcloud functions deploy FUNCTION_NAME \ --no-gen2 \ --entry-point ENTRY_POINT \ --trigger-event google.firebase.remoteconfig.update \ --runtime RUNTIME
| ארגומנט | תיאור |
|---|---|
FUNCTION_NAME |
השם הרשום של פונקציית Cloud Run שפורסים.
זה יכול להיות שם של פונקציה בקוד המקור, או מחרוזת שרירותית. אם FUNCTION_NAME היא מחרוזת שרירותית, צריך לכלול את הדגל --entry-point.
|
--entry-point ENTRY_POINT |
השם של פונקציה או מחלקה בקוד המקור. אופציונלי, אלא אם לא השתמשתם ב-FUNCTION_NAME כדי לציין את הפונקציה בקוד המקור שתופעל במהלך הפריסה. במקרה כזה, צריך להשתמש ב---entry-point כדי לציין את השם של הפונקציה שניתנת להרצה.
|
--trigger-event google.firebase.remoteconfig.update |
מפעילים את הפונקציה כשמתרחשים אירועי עדכון של הגדרת התצורה מרחוק ב-Firebase. |
--runtime RUNTIME |
שם זמן הריצה שבו אתם משתמשים. רשימה מלאה זמינה בחומר העזר בנושא gcloud.
|