Vos flux de données vous permettent de proposer votre restaurant, vos services et votre menu dans l'interface de commande de bout en bout.
Ce document explique comment héberger vos inventaires de bac à sable et de production, et comment utiliser l'ingestion par lots pour mettre à jour votre inventaire dans le processus de commande de bout en bout.
Environnements de flux de données
Trois environnements de flux de données sont disponibles pour le développement de vos intégrations:
Environnement du flux | Description | Ingestion par lots |
---|---|---|
Bac à sable | Environnement de test pour le développement de votre flux. | Obligatoire |
Production | Environnement de production de l'inventaire que vous souhaitez lancer. | Obligatoire |
Hébergement de flux de données
Pour que la commande de bout en bout puisse traiter vos flux de données de bac à sable et de production par ingestion par lots, vous devez héberger vos fichiers de flux de données dans Google Cloud Storage, Amazon S3 ou HTTPS avec un sitemap.
Nous vous recommandons d'héberger séparément les flux de données de vos environnements de bac à sable et de production. Cette approche vous permet d'effectuer le développement et les tests dans votre environnement de flux de bac à sable avant de déployer les modifications en production.
Par exemple, si vous utilisez Google Cloud Storage en tant qu'option d'hébergement, vous disposez des chemins suivants:
- Flux sandbox:
gs://foorestaurant-google-feed-sandbox/
- Flux de production:
gs://foorestaurant-google-feed-prod/
Pour héberger votre inventaire, procédez comme suit:
- Générez vos fichiers de flux de données.
- Choisissez une solution d'hébergement.
- Hébergez vos flux de données.
- Veillez à mettre à jour régulièrement les fichiers de votre flux de données. Les flux de données de production doivent être mis à jour quotidiennement.
Pour savoir comment créer un flux d'inventaire, consultez la documentation sur les entités Restaurant
, Service
et Menu
, ainsi que la section Créer un flux de données.
Consignes concernant les fichiers de flux de données
La taille de chaque fichier, qui peut contenir plusieurs entités, ne doit pas dépasser 200 Mo. Les entités de premier niveau Restaurant
, Service
et Menu
, ainsi que leurs entités enfants, ne doivent pas dépasser 4 Mo au total.
Choisir une solution d'hébergement
Le tableau suivant répertorie les options d'hébergement de vos flux de données et la manière dont ces hôtes fonctionnent avec le service de commande de bout en bout:
Amazon S3 | Google Cloud Storage | HTTPS avec un sitemap | |
---|---|---|---|
Identifiants et accès |
Fournissez à Google les informations suivantes:
Le bucket S3 doit inclure les informations suivantes:
Exemple de fichier |
Indiquez à Google les chemins d'accès à vos répertoires de buckets de production et de bac à sable, ainsi qu'au fichier Ajoutez le compte de service fourni par votre consultant Google en tant que lecteur de votre bucket Google Cloud Storage. Pour en savoir plus sur le contrôle des accès pour Google Cloud Storage (GCS), consultez la page Console Google Cloud Platform: Définir des autorisations de bucket. Le bucket GCS doit inclure les informations suivantes:
Exemple de fichier |
Fournissez à Google les informations suivantes:
|
Comment Google sait quels fichiers doivent être récupérés | Liste des répertoires de tous les fichiers du bucket. | Liste des répertoires de tous les fichiers du bucket. | URL individuelles des fichiers répertoriés dans le sitemap. |
Comment Google sait que les fichiers sont prêts à être récupérés | Une fois vos flux de données générés, mettez à jour le fichier marker.txt avec le dernier horodatage. |
Une fois vos flux de données générés, mettez à jour le fichier marker.txt avec le dernier horodatage. |
Une fois vos flux de données générés, mettez à jour l'en-tête de réponse last-modified de votre sitemap.xml avec le dernier horodatage. |
Limites applicables aux fichiers |
Nombre maximal de fichiers: 100 000. Votre paquet Amazon S3 doit comporter moins de 100 000 fichiers au total. |
Nombre maximal de fichiers: 100 000. Votre bucket Google Cloud Storage doit contenir moins de 100 000 fichiers au total. |
Nombre maximal de fichiers: 100 000. Le nombre de chemins d'accès dans le fichier XML de votre sitemap doit être inférieur à 100 000. |
Connecter vos flux de données pour l'ingestion par lots
Après avoir hébergé vos flux, vous devez les associer à votre projet dans Actions Center. La configuration initiale des flux de production s'effectue sur la page Tâches d'intégration. Vous pourrez modifier la configuration des flux de production et de bac à sable à tout moment sur la page Configuration > Flux pour tout utilisateur du portail disposant d'un rôle d'administrateur. L'environnement bac à sable est utilisé à des fins de développement et de test, tandis que les flux de production sont présentés aux utilisateurs.
Si vous hébergez vos flux de données avec Amazon S3
- Dans le Centre Actions, accédez à Configuration > Flux.
-
Cliquez sur Modifier et remplissez le formulaire Mettre à jour le flux:
- Feed Delivery method (Mode d'envoi du flux) : définissez Amazon S3.
- Marker File (Fichier de repère) : indiquez l'URL du fichier
marker.txt
. - Fichiers de données:indiquez l'URL du bucket S3 contenant les flux de données.
- ID d'accès:saisissez l'ID de clé d'accès IAM disposant des autorisations nécessaires pour lire les ressources S3.
- Access Key (Clé d'accès) : saisissez la clé d'accès secrète IAM dotée des autorisations nécessaires pour lire les ressources S3.
- Cliquez sur Envoyer.
- Au bout d'une à deux heures, vérifiez si l'ingestion par lots récupère vos fichiers de flux.
Si vous hébergez vos flux de données avec Google Cloud Storage
- Dans le Centre Actions, accédez à Configuration > Flux.
-
Cliquez sur Modifier et remplissez le formulaire Mettre à jour le flux:
- Feed Delivery method (Mode d'envoi du flux) : définissez Google Cloud Storage.
- Marker File (Fichier de repère) : indiquez l'URL du fichier
marker.txt
. - Fichiers de données:indiquez l'URL du bucket GCS contenant les flux de données.
- Cliquez sur Envoyer.
- Un compte de service est créé pour accéder à votre bucket GCS. Vous trouverez le nom du compte dans Configuration > Flux une fois les tâches d'intégration terminées. Ce compte de service doit disposer du rôle "Lecteur des anciens objets de l'espace de stockage". Ce rôle peut être attribué au compte de service sur la page "IAM" de la console Google Cloud.
- Au bout d'une à deux heures, vérifiez si l'ingestion par lots récupère vos fichiers de flux.
Si vous hébergez vos flux de données via HTTPS
- Dans le Centre Actions, accédez à Configuration > Flux.
-
Cliquez sur Modifier et remplissez le formulaire Mettre à jour le flux:
- Mode d'envoi du flux:définissez-le sur HTTPS.
- Fichier sitemap:indiquez l'URL du fichier
sitemap.xml
. - Nom d'utilisateur:saisissez les identifiants du nom d'utilisateur pour accéder au serveur HTTPS.
- Mot de passe:saisissez le mot de passe permettant d'accéder au serveur HTTPS.
- Cliquez sur Envoyer.
- Au bout d'une à deux heures, vérifiez si l'ingestion par lots récupère vos fichiers de flux.
Exemples de chemins
Le tableau suivant contient des exemples de chemins pour chacune des options d'hébergement:
Amazon S3 | Google Cloud Storage | HTTPS avec un sitemap | |
---|---|---|---|
Chemin d'accès | s3://foorestaurant-google-feed-sandbox/ |
gs://foorestaurant-google-feed-sandbox/ |
https://sandbox-foorestaurant.com/sitemap.xml |
Fichier de repère | s3://foorestaurant-google-feed-sandbox/marker.txt |
gs://foorestaurant-google-feed-sandbox/marker.txt |
Non applicable |
Plans de site pour l'hébergement HTTPS
Respectez les consignes suivantes lorsque vous définissez des sitemaps:
- Les liens de votre sitemap doivent renvoyer vers les fichiers eux-mêmes.
- Si votre sitemap inclut des références à un fournisseur cloud au lieu de votre propre nom de domaine, assurez-vous que le début des URL, comme
https://www.yourcloudprovider.com/your_id
, est stable et unique à votre tâche par lot. - Veillez à ne pas importer de sitemaps partiels (par exemple, dans le cas d'une importation partielle de données). Si vous le faites, Google n'ingérera que les fichiers du sitemap, ce qui entraînera une baisse de votre inventaire et un blocage de l'ingestion de votre flux.
- Assurez-vous que les chemins d'accès aux fichiers référencés dans le sitemap ne changent pas. Par exemple, n'indiquez pas la référence de votre sitemap
https://www.yourcloudprovider.com/your_id/10000.json
aujourd'hui, mais seulementhttps://www.yourcloudprovider.com/your_id/20000.json
demain.
Exemple de sitemap
Voici un exemple de fichier sitemap.xml
qui diffuse des fichiers de flux de données:
Exemple 1: Entités regroupées par marchands (recommandé).
XML
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://your_fulfillment_url.com/restaurant_1.ndjson</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/restaurant_2.ndjson</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/restaurant_3.ndjson</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> </urlset>
Exemple 2: Entités regroupées par types.
XML
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://your_fulfillment_url.com/restaurant.json</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/menu.json</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/service.json</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> </urlset>
Mettre à jour vos flux de données
Une fois vos flux de données connectés, Google recherche des mises à jour une fois par heure, mais nous n'ingrons tous les flux de données que lorsque les fichiers marker.txt
ou sitemap.xml
ont été modifiés. Vous devez probablement mettre à jour vos flux de données une fois par jour pour éviter que votre inventaire ne devienne obsolète.
Pour indiquer que les flux de données ont été modifiés et sont prêts pour l'ingestion par lots, mettez à jour le champ de métadonnées d'objet last-modified
du fichier marker.txt
(pour GCP et S3) ou l'en-tête de réponse last-modified
du fichier sitemap.xml
. Google utilise ces valeurs pour déterminer l'actualisation d'un flux de données.
Lors de l'ingestion du flux,
- Les nouvelles entités qui n'existent pas dans votre inventaire de bout en bout des commandes et qui ne comportent aucune erreur seront insérées.
-
Les entités déjà présentes dans l'inventaire qui ne présentent aucune erreur lors de l'ingestion et dont la valeur
dateModified
est plus récente que leur entrée actuelle ou, en l'absence dedateModified
, l'heure de début de l'ingestion du flux est plus récente que l'entrée actuelle dans laquelle elles seront mises à jour. Sinon, elles seront marquées comme non actualisées. - Les entités qui faisaient partie d'un flux précédent qui ne sont plus incluses dans le flux par lot en cours de traitement sont supprimées, à condition que le flux ne contienne pas d'erreurs au niveau du fichier.
L'horodatage ou l'en-tête de réponse last-modified
ne doivent être mis à jour qu'après la génération et la mise à jour de tous les fichiers de flux de données. Limitez l'exécution des tâches par lot qui mettent à jour vos flux de données à une seule fois par jour. Vous pouvez également prévoir un intervalle d'au moins trois heures entre chaque tâche par lot. Si vous ne suivez pas ces étapes, Google peut récupérer les fichiers obsolètes.