Un sujet d'importation Cloud Storage vous permet d'ingérer en continu des données Cloud Storage dans Pub/Sub. Vous pouvez ensuite diffuser les données dans l'une des destinations compatibles avec Pub/Sub. Pub/Sub détecte automatiquement les nouveaux objets ajoutés au bucket Cloud Storage et les ingère.
Cloud Storage est un service permettant de stocker vos objets dans Google Cloud. Un objet est une donnée immuable constituée d'un fichier dans n'importe quel format. Vous stockez des objets dans des conteneurs appelés buckets. Les buckets peuvent également contenir des dossiers gérés, que vous utilisez pour fournir un accès étendu à des groupes d'objets partageant un préfixe de nom.
Pour en savoir plus sur Cloud Storage, consultez la documentation Cloud Storage.
Pour en savoir plus sur les sujets d'importation, consultez la page À propos des sujets d'importation.
Avant de commencer
Un bucket Cloud Storage doit déjà exister avant de créer un thème d'importation Cloud Storage. Si vous utilisez la console pour créer le sujet d'importation, le workflow vous permet de créer un bucket Cloud Storage. Pour découvrir d'autres méthodes de configuration, consultez Créer des buckets.
Le cas échéant, assurez-vous que la règle de stockage des messages du sujet Pub/Sub chevauche la région où se trouve votre bucket Cloud Storage. Pour en savoir plus, consultez la page La règle de stockage des messages est conforme à l'emplacement du bucket.
Certains services Google Cloud disposent de comptes de service gérés par Google Cloud qui leur permettent d'accéder à vos ressources. Ces comptes de service sont appelés agents de service. Pub/Sub crée et gère un compte de service pour chaque projet au format
service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com
. Configurez les rôles et autorisations requis sur le compte de service Pub/Sub pour gérer les sujets d'importation Cloud Storage, y compris les suivants:Attribuez le rôle Éditeur Pub/Sub (
roles/pubsub.publisher
) au compte de service Pub/Sub. Ce compte de service va publier sur le sujet d'importation. Pour attribuer ce rôle, vous avez besoin d'un compte utilisateur disposant du rôle Administrateur Pub/Sub (roles/pubsub.admin
). Pour en savoir plus, consultez la section Ajouter le rôle Éditeur Pub/Sub au compte de service Pub/Sub.Accordez des autorisations Cloud Storage au compte de service Pub/Sub. Pour accorder ces autorisations, vous avez besoin d'un compte utilisateur disposant du rôle Administrateur de l'espace de stockage (
roles/storage.admin
). Pour en savoir plus, consultez la section Attribuer des rôles Cloud Storage au compte de service Pub/Sub.
Rôles et autorisations requis pour gérer les sujets d'importation Cloud Storage
Pour obtenir les autorisations nécessaires pour créer et gérer un sujet d'importation Cloud Storage, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Pub/Sub (roles/pubsub.editor
) sur votre sujet ou votre projet.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour créer et gérer un sujet d'importation Cloud Storage. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour créer et gérer un sujet d'importation Cloud Storage:
-
Créez un sujet d'importation :
pubsub.topics.create
-
Supprimer un thème d'importation :
pubsub.topics.delete
-
Obtenir un sujet d'importation :
pubsub.topics.get
-
Lister un sujet d'importation :
pubsub.topics.list
-
Publier dans un sujet d'importation :
pubsub.topics.publish
-
Mettre à jour un sujet d'importation :
pubsub.topics.update
-
Obtenez la stratégie IAM pour un sujet d'importation :
pubsub.topics.getIamPolicy
-
Configurez la stratégie IAM pour un sujet d'importation :
pubsub.topics.setIamPolicy
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Vous pouvez configurer le contrôle des accès au niveau du projet et au niveau de ressources individuelles.
La règle de stockage des messages est conforme à l'emplacement du bucket
La règle de stockage des messages du sujet Pub/Sub doit chevaucher les régions où se trouve votre bucket Cloud Storage. Cette règle indique où Pub/Sub est autorisé à stocker vos données de message.
Pour les buckets dont le type d'emplacement est "région" : la stratégie doit inclure cette région spécifique. Par exemple, si votre bucket se trouve dans la région
us-central1
, la règle de stockage des messages doit également inclureus-central1
.Pour les buckets dont le type d'emplacement est birégional ou multirégional: la règle doit inclure au moins une région dans l'emplacement birégional ou multirégional. Par exemple, si votre bucket se trouve dans la région
US multi-region
, la règle de stockage des messages peut inclureus-central1
,us-east1
ou toute autre région de laUS multi-region
.Si la règle n'inclut pas la région du bucket, la création du sujet échoue. Par exemple, si votre bucket se trouve dans
europe-west1
et que votre stratégie de stockage des messages n'inclut queasia-east1
, un message d'erreur s'affiche.Si la règle de stockage des messages n'inclut qu'une seule région qui chevauche l'emplacement du bucket, la redondance multirégionale peut être compromise. En effet, si cette seule région devient indisponible, vos données risquent de ne pas être accessibles. Pour garantir une redondance totale, nous vous recommandons d'inclure au moins deux régions dans la règle de stockage des messages qui font partie de l'emplacement multirégional ou birégional du bucket.
Pour en savoir plus sur les emplacements des buckets, consultez la documentation.
Ajouter le rôle Éditeur Pub/Sub au compte de service Pub/Sub
Vous devez attribuer le rôle "Éditeur Pub/Sub" au compte de service Pub/Sub pour que Pub/Sub puisse publier des messages dans le sujet d'importation Cloud Storage.
Pour activer la publication sur tous les sujets d'un projet, consultez Activer la publication sur tous les sujets. Utilisez cette méthode si vous n'avez pas créé de sujets d'importation Cloud Storage.
Pour activer la publication dans un sujet spécifique, consultez Activer la publication dans un seul sujet. N'utilisez cette méthode que si le sujet d'importation Cloud Storage existe déjà.
Activer la publication sur tous les sujets d'importation Cloud Storage
Choisissez cette option lorsque vous ne disposez pas d'un sujet d'importation Cloud Storage dans votre projet.
Dans la console Google Cloud, accédez à la page IAM.
Activez l'option Inclure les attributions de rôles fournies par Google.
Recherchez le compte de service Pub/Sub au format suivant:
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
Pour ce compte de service, cliquez sur le bouton Modifier le compte principal.
Si nécessaire, cliquez sur Ajouter un autre rôle.
Recherchez et sélectionnez le rôle Éditeur Pub/Sub (
roles/pubsub.publisher
).Cliquez sur Enregistrer.
Activer la publication sur un seul sujet d'importation Cloud Storage
Si vous souhaitez autoriser Pub/Sub à publier dans un sujet d'importation Cloud Storage spécifique qui existe déjà, procédez comme suit:
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Exécutez la commande
gcloud pubsub topics add-iam-policy-binding
:gcloud pubsub topics add-iam-policy-binding TOPIC_ID\ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com"\ --role="roles/pubsub.publisher"
Remplacez les éléments suivants :
TOPIC_ID est l'ID ou le nom du sujet d'importation Cloud Storage.
PROJECT_NUMBER est le numéro du projet. Pour afficher le numéro de projet, consultez Identifier des projets.
Attribuer des rôles Cloud Storage au compte de service Pub/Sub
Pour créer un sujet d'importation Cloud Storage, le compte de service Pub/Sub doit être autorisé à lire le bucket Cloud Storage spécifique. Les autorisations suivantes sont requises :
storage.objects.list
storage.objects.get
storage.buckets.get
Pour attribuer ces autorisations au compte de service Pub/Sub, choisissez l'une des procédures suivantes:
Accordez des autorisations au niveau du bucket. Sur le bucket Cloud Storage spécifique, attribuez les rôles "Lecteur des objets Storage anciens" (
roles/storage.legacyObjectReader
) et "Lecteur des anciens buckets Storage" (roles/storage.legacyBucketReader
) au compte de service Pub/Sub.Si vous devez attribuer des rôles au niveau du projet, vous pouvez attribuer le rôle "Administrateur de l'espace de stockage" (
roles/storage.admin
) au projet contenant le bucket Cloud Storage. Attribuez ce rôle au compte de service Pub/Sub.
Autorisations relatives aux buckets
Suivez les étapes ci-dessous pour accorder les rôles Lecteur des objets de l'espace de stockage (roles/storage.legacyObjectReader
) et Lecteur des anciens buckets de l'espace de stockage (roles/storage.legacyBucketReader
) au compte de service Pub/Sub au niveau du bucket:
Dans la console Google Cloud, accédez à la page Cloud Storage.
Cliquez sur le bucket Cloud Storage à partir duquel vous souhaitez lire les messages et les importer dans le sujet d'importation Cloud Storage.
La page Informations sur le bucket s'ouvre.
Sur la page Informations sur le bucket, cliquez sur l'onglet Autorisations.
Dans l'onglet Autorisations > Afficher par compte principal, cliquez sur Accorder l'accès.
La page Accorder l'accès s'affiche.
Dans la section Ajouter des comptes principaux, saisissez le nom de votre compte de service Pub/Sub.
Le format du compte de service est
service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com
. Par exemple, pour un projet avec PROJECT_NUMBER=112233445566
, le compte de service a le formatservice-112233445566@gcp-sa-pubsub.iam.gserviceaccount.com
.Dans le menu déroulant Attribuer des rôles > Sélectionner un rôle, saisissez
Object Reader
, puis sélectionnez le rôle Storage Legacy Object Reader (Lecteur d'objets anciens Storage).Cliquez sur Ajouter un autre rôle.
Dans la liste déroulante Sélectionner un rôle, saisissez
Bucket Reader
, puis sélectionnez le rôle Storage Legacy Bucket Reader (Lecteur de bucket ancien Storage).Cliquez sur Enregistrer.
Autorisations liées au projet
Pour attribuer le rôle Administrateur de l'espace de stockage (roles/storage.admin
) au niveau du projet, procédez comme suit:
Dans la console Google Cloud, accédez à la page IAM.
Dans l'onglet Autorisations > Afficher par compte principal, cliquez sur Accorder l'accès.
La page Accorder l'accès s'affiche.
Dans la section Ajouter des comptes principaux, saisissez le nom de votre compte de service Pub/Sub.
Le format du compte de service est
service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com
. Par exemple, pour un projet avec PROJECT_NUMBER=112233445566
, le compte de service a le formatservice-112233445566@gcp-sa-pubsub.iam.gserviceaccount.com
.Dans le menu déroulant Attribuer des rôles > Sélectionner un rôle, saisissez
Storage Admin
, puis sélectionnez le rôle Storage Admin (Administrateur de l'espace de stockage).Cliquez sur Enregistrer.
Pour en savoir plus sur l'IAM Cloud Storage, consultez la page Gestion de l'authentification et des accès Cloud Storage.
Propriétés des sujets d'importation Cloud Storage
Pour en savoir plus sur les propriétés communes à tous les sujets, consultez la section Propriétés d'un sujet.
Nom du bucket
Il s'agit du nom du bucket Cloud Storage à partir duquel Pub/Sub lit les données publiées dans un sujet d'importation Cloud Storage.
Format d'entrée
Lorsque vous créez un sujet d'importation Cloud Storage, vous pouvez spécifier le format des objets à ingèrer sous la forme Texte, Avro ou Avro Pub/Sub.
Texte Les objets sont censés contenir des données en texte brut. Ce format d'entrée tente d'ingérer tous les objets du bucket tant qu'ils répondent à la durée minimale de création d'objet et correspondent aux critères de modèle glob.
Séparateur. Vous pouvez également spécifier un délimiteur par lequel les objets sont divisés en messages. Si elle n'est pas définie, le caractère de retour à la ligne (
\n
) est utilisé par défaut. Le délimiteur ne doit comporter qu'un seul caractère.Avro Les objets sont au format binaire Apache Avro. Aucun objet qui n'est pas au format Apache Avro valide n'est ingéré. Voici les limites concernant Avro:
- Les versions Avro 1.1.0 et 1.2.0 ne sont pas compatibles.
- La taille maximale d'un bloc Avro est de 16 Mo.
Pub/Sub Avro. Les objets sont au format binaire Apache Avro avec un schéma correspondant à celui d'un objet écrit dans Cloud Storage à l'aide d'un abonnement Cloud Storage Pub/Sub avec le format de fichier Avro. Voici quelques consignes importantes pour Pub/Sub Avro:
Le champ de données de l'enregistrement Avro est utilisé pour renseigner le champ de données du message Pub/Sub généré.
Si l'option write_metadata est spécifiée pour l'abonnement Cloud Storage, toutes les valeurs du champ "attributes" sont renseignées en tant qu'attributs du message Pub/Sub généré.
Si une clé de tri est spécifiée dans le message d'origine écrit dans Cloud Storage, ce champ est renseigné en tant qu'attribut avec le nom
original_message_ordering_key
dans le message Pub/Sub généré.
Durée minimale pour créer l'objet
Vous pouvez éventuellement spécifier une durée minimale pour créer l'objet lorsque vous créez un sujet d'importation Cloud Storage. Seuls les objets créés à partir de ce code temporel sont ingérés. Ce code temporel doit être fourni au format YYYY-MM-DDThh:mm:ssZ
.
Toute date, passée ou future, comprise entre 0001-01-01T00:00:00Z
et 9999-12-31T23:59:59Z
inclus, est valide.
Correspondre au schéma glob
Vous pouvez éventuellement spécifier un format de correspondance glob lors de la création d'un sujet d'importation Cloud Storage. Seuls les objets dont le nom correspond à ce format sont ingérés. Par exemple, pour ingérer tous les objets avec le suffixe .txt
, vous pouvez spécifier le modèle glob comme **.txt
.
Pour en savoir plus sur les syntaxes acceptées pour les modèles glob, consultez la documentation Cloud Storage.
Créer un sujet d'importation Cloud Storage
Assurez-vous d'avoir effectué les procédures suivantes:
Créez un bucket Cloud Storage. Si vous utilisez la console pour créer le sujet d'importation, le workflow vous permet de créer un bucket Cloud Storage.
Ajoutez le rôle Éditeur Pub/Sub au compte de service Pub/Sub pour tous les sujets.
Accordez des autorisations Cloud Storage au compte de service Pub/Sub.
Créer le sujet et l'abonnement séparément, même si vous le faites rapidement, peut entraîner une perte de données. Il existe une courte période pendant laquelle le sujet existe sans abonnement. Si des données sont envoyées au sujet pendant cette période, elles sont perdues. En créant d'abord le sujet, puis l'abonnement, puis en convertissant le sujet en sujet d'importation, vous vous assurez qu'aucun message n'est manqué lors du processus d'importation.
Pour créer un sujet d'importation Cloud Storage, procédez comme suit:
Console
-
Dans la console Google Cloud, accédez à la page Topics (Sujets).
-
Cliquez sur Create topic (Créer un sujet).
La page des détails du sujet s'ouvre.
-
Dans le champ ID du sujet, saisissez un ID pour votre sujet d'importation Cloud Storage.
Pour en savoir plus sur l'attribution de noms aux sujets, consultez les consignes d'attribution de noms.
-
Sélectionnez Ajouter un abonnement par défaut.
-
Sélectionnez Activer l'ingestion.
-
Pour la source d'ingestion, sélectionnez Google Cloud Storage.
-
Pour le bucket Cloud Storage, cliquez sur Parcourir.
La page Sélectionner un bucket s'ouvre. Sélectionnez l'une des options suivantes :
-
Sélectionnez un bucket existant dans un projet approprié.
-
Cliquez sur l'icône Créer, puis suivez les instructions à l'écran pour créer un bucket. Après avoir créé le bucket, sélectionnez-le pour le sujet d'importation Cloud Storage.
-
-
Lorsque vous spécifiez le bucket, Pub/Sub recherche les autorisations appropriées sur le bucket pour le compte de service Pub/Sub. En cas de problème d'autorisation, un message semblable à celui-ci s'affiche:
Unable to verify if the Pub/Sub service agent has write permissions on this bucket. You may be lacking permissions to view or set permissions.
Si vous rencontrez des problèmes d'autorisation, cliquez sur Définir les autorisations. Pour en savoir plus, consultez la section Accorder des autorisations Cloud Storage au compte de service Pub/Sub.
-
Pour Format d'objet, sélectionnez Texte, Avro ou Pub/Sub Avro.
Si vous sélectionnez Texte, vous pouvez éventuellement spécifier un délimiteur pour diviser les objets en messages.
Pour en savoir plus sur ces options, consultez la section Format d'entrée.
- Facultatif. Vous pouvez spécifier une durée minimale pour créer l'objet pour votre sujet. Si elle est définie, seuls les objets créés après la durée minimale de création d'objets sont ingérés.
Pour en savoir plus, consultez la section Durée minimale pour créer l'objet.
- Vous devez spécifier un modèle glob. Pour ingérer tous les objets du bucket, utilisez
**
comme modèle glob. Si ce champ est défini, seuls les objets correspondant au modèle donné sont ingérés.Pour en savoir plus, consultez la section Correspondre à un format générique.
- Conservez les autres paramètres par défaut.
- Cliquez sur Create topic (Créer un sujet).
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Exécutez la commande
gcloud pubsub topics create
:gcloud pubsub topics create TOPIC_ID\ --cloud-storage-ingestion-bucket=BUCKET_NAME\ --cloud-storage-ingestion-input-format=INPUT_FORMAT\ --cloud-storage-ingestion-text-delimiter=TEXT_DELIMITER\ --cloud-storage-ingestion-minimum-object-create-time=MINIMUM_OBJECT_CREATE_TIME\ --cloud-storage-ingestion-match-glob=MATCH_GLOB
Dans la commande, seuls
TOPIC_ID
, l'option--cloud-storage-ingestion-bucket
et l'option--cloud-storage-ingestion-input-format
sont obligatoires. Les options restantes sont facultatives et peuvent être omises.Remplacez les éléments suivants :
-
TOPIC_ID: nom ou ID de votre sujet.
-
BUCKET_NAME: spécifie le nom d'un bucket existant. Exemple :
prod_bucket
Le nom du bucket ne doit pas inclure l'ID du projet. Pour créer un bucket, consultez la page Créer des buckets. -
INPUT_FORMAT: spécifie le format des objets ingérés. Il peut être défini sur
text
,avro
oupubsub_avro
. Pour en savoir plus sur ces options, consultez la section Format d'entrée. -
TEXT_DELIMITER: spécifie le séparateur à utiliser pour diviser les objets texte en messages Pub/Sub. Il doit s'agir d'un seul caractère et ne doit être défini que lorsque
INPUT_FORMAT
esttext
. La valeur par défaut est le caractère de nouvelle ligne (\n
).Lorsque vous utilisez gcloud CLI pour spécifier le délimiteur, soyez particulièrement attentif à la gestion des caractères spéciaux tels que la nouvelle ligne
\n
. Utilisez le format'\n'
pour vous assurer que le séparateur est correctement interprété. L'utilisation simple de\n
sans guillemets ni échappement entraîne un séparateur"n"
. -
MINIMUM_OBJECT_CREATE_TIME: spécifie le délai minimal au cours duquel un objet a été créé pour qu'il soit ingéré. au format UTC
YYYY-MM-DDThh:mm:ssZ
. Par exemple,2024-10-14T08:30:30Z
.Toute date, passée ou future, de
0001-01-01T00:00:00Z
à9999-12-31T23:59:59Z
inclus, est valide. -
MATCH_GLOB: spécifie le modèle glob à faire correspondre pour qu'un objet soit ingéré. Lorsque vous utilisez gcloud CLI, le caractère
*
d'un caractère générique de correspondance avec des caractères*
doit être formaté en tant qu'expression\*\*.txt
ou l'ensemble du caractère générique de correspondance doit être placé entre guillemets"**.txt"
ou'**.txt'
. Pour en savoir plus sur les syntaxes acceptées pour les modèles glob, consultez la documentation Cloud Storage.
-
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go du guide de démarrage rapide de Pub/Sub : utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub Go.
Pour vous authentifier auprès de Pub/Sub, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de Pub/Sub : utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub Java.
Pour vous authentifier auprès de Pub/Sub, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js du guide de démarrage rapide de Pub/Sub : utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub Node.js.
Pour vous authentifier auprès de Pub/Sub, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python du guide de démarrage rapide de Pub/Sub : utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub Python.
Pour vous authentifier auprès de Pub/Sub, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
C++
Avant d'essayer cet exemple, suivez les instructions de configuration pour C++ du guide de démarrage rapide de Pub/Sub : utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub C++.
Pour vous authentifier auprès de Pub/Sub, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js (TypeScript)
Avant d'essayer cet exemple, suivez les instructions de configuration de Node.js décrites dans le guide de démarrage rapide de Pub/Sub : utiliser des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence sur l'API Pub/Sub pour Node.js.
Pour vous authentifier auprès de Pub/Sub, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Si vous rencontrez des problèmes, consultez Résoudre les problèmes d'importation Cloud Storage.
Modifier un sujet d'importation Cloud Storage
Vous pouvez modifier un sujet d'importation Cloud Storage pour mettre à jour ses propriétés.
Par exemple, pour redémarrer l'ingestion, vous pouvez modifier le bucket ou mettre à jour la durée minimale de création d'objets.
Pour modifier un sujet d'importation Cloud Storage, procédez comme suit:
Console
-
Dans la console Google Cloud, accédez à la page Topics (Sujets).
-
Cliquez sur le sujet "Importer depuis Cloud Storage".
-
Sur la page des détails de l'article, cliquez sur Modifier.
-
Modifiez les champs que vous souhaitez modifier.
-
Cliquez sur Mettre à jour.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Pour éviter de perdre vos paramètres pour le sujet d'importation, veillez à les inclure tous chaque fois que vous mettez à jour le sujet. Si vous omettez quelque chose, Pub/Sub rétablit le paramètre sur sa valeur par défaut d'origine.
Exécutez la commande
gcloud pubsub topics update
avec tous les indicateurs mentionnés dans l'exemple suivant:gcloud pubsub topics update TOPIC_ID \ --cloud-storage-ingestion-bucket=BUCKET_NAME\ --cloud-storage-ingestion-input-format=INPUT_FORMAT\ --cloud-storage-ingestion-text-delimiter=TEXT_DELIMITER\ --cloud-storage-ingestion-minimum-object-create-time=MINIMUM_OBJECT_CREATE_TIME\ --cloud-storage-ingestion-match-glob=MATCH_GLOB
Remplacez les éléments suivants :
-
TOPIC_ID correspond à l'ID ou au nom du sujet. Ce champ ne peut pas être modifié.
-
BUCKET_NAME: spécifie le nom d'un bucket existant. Exemple :
prod_bucket
Le nom du bucket ne doit pas inclure l'ID du projet. Pour créer un bucket, consultez la page Créer des buckets. -
INPUT_FORMAT: spécifie le format des objets ingérés. Il peut être défini sur
text
,avro
oupubsub_avro
. Pour en savoir plus sur ces options, consultez la section Format d'entrée. -
TEXT_DELIMITER: spécifie le séparateur à utiliser pour diviser les objets texte en messages Pub/Sub. Il doit s'agir d'un seul caractère et ne doit être défini que lorsque
INPUT_FORMAT
esttext
. La valeur par défaut est le caractère de nouvelle ligne (\n
).Lorsque vous utilisez gcloud CLI pour spécifier le délimiteur, soyez particulièrement attentif à la gestion des caractères spéciaux tels que la nouvelle ligne
\n
. Utilisez le format'\n'
pour vous assurer que le séparateur est correctement interprété. L'utilisation simple de\n
sans guillemets ni échappement entraîne un séparateur"n"
. -
MINIMUM_OBJECT_CREATE_TIME: spécifie le délai minimal au cours duquel un objet a été créé pour qu'il soit ingéré. au format UTC
YYYY-MM-DDThh:mm:ssZ
. Par exemple,2024-10-14T08:30:30Z
.Toute date, passée ou future, de
0001-01-01T00:00:00Z
à9999-12-31T23:59:59Z
inclus, est valide. -
MATCH_GLOB: spécifie le modèle glob à faire correspondre pour qu'un objet soit ingéré. Lorsque vous utilisez gcloud CLI, le caractère
*
d'un caractère générique de correspondance avec des caractères*
doit être formaté en tant qu'expression\*\*.txt
ou l'ensemble du caractère générique de correspondance doit être placé entre guillemets"**.txt"
ou'**.txt'
. Pour en savoir plus sur les syntaxes acceptées pour les modèles glob, consultez la documentation Cloud Storage.
-
Quotas et limites pour les sujets d'importation Cloud Storage
Le débit de l'éditeur pour les sujets d'importation est limité par le quota de publication du sujet. Pour en savoir plus, consultez la page Quotas et limites de Pub/Sub.
Étape suivante
Activez les journaux de plate-forme pour un sujet d'importation Cloud Storage.
Choisissez le type d'abonnement pour votre sujet.
Découvrez comment publier un message dans un sujet.
Résoudre les problèmes liés à un sujet d'importation Cloud Storage