Cette page présente la fonctionnalité de paiements du demandeur pour Cloud Storage.
Présentation
Lorsqu'un utilisateur accède à une ressource Cloud Storage telle qu'un bucket ou un objet, des frais sont associés à la création et à l'exécution de la requête. Ces frais comprennent :
les frais de traitement des données liés aux opérations, à la réplication et à la récupération des données ;
les frais de réseau liés à la lecture des données.
Généralement, ces frais d'accès sont facturés au propriétaire de projet de la ressource. Toutefois, si le demandeur fournit un projet de facturation avec sa requête, le projet du demandeur est facturé à la place. Lorsque la fonctionnalité de paiements du demandeur est activée sur votre bucket, vous pouvez exiger que les demandeurs incluent un projet de facturation dans leurs requêtes, ce qui affectera les frais à leur projet. Cette fonctionnalité s'avère utile si vous souhaitez, par exemple, mettre un grand nombre de données à la disposition des utilisateurs, mais que vous ne voulez pas que leur accès vous soit facturé.
Frais restant à charge
Les frais de stockage des données, y compris les frais de suppression anticipée, sont toujours imputés au projet contenant le bucket, même si le mode "Paiement par le demandeur" est activé sur le bucket.
Restrictions
La restriction suivante s'applique en cas d'utilisation des paiements du demandeur :
- Vous ne pouvez pas utiliser de buckets pour lesquels les paiements du demandeur sont activés pour réaliser des importations et des exportations depuis Cloud SQL.
- Vous ne pouvez pas utiliser de buckets pour lesquels les paiements du demandeur sont activés pour réaliser des exportations depuis Pub/Sub.
Exigences relatives à l'utilisation et aux accès
Pour utiliser la fonctionnalité de paiements du demandeur sur un bucket donné, activez l'indicateur de métadonnées sur celui-ci. Une fois l'indicateur activé, seuls les utilisateurs suivants peuvent accéder au bucket ou à son contenu :
Les demandeurs qui spécifient un projet de facturation dans leur requête. Le projet inclus dans la requête doit être en règle, et l'utilisateur doit détenir un rôle contenant l'autorisation
serviceusage.services.use
pour le projet. Le rôle Consommateur Service Usage comprend l'autorisation requise.Les demandeurs qui ne spécifient pas de projet de facturation, mais qui disposent de l'autorisation
resourcemanager.projects.createBillingAssignment
pour le projet contenant le bucket. Le rôle Gestionnaire de projet de facturation dispose de l'autorisation requise. Les frais d'accès associés à ces requêtes sont imputés au projet contenant le bucket.
Toutes les autres requêtes envoyées au bucket échouent avec l'erreur 400 UserProjectMissing
.
En plus de satisfaire ces exigences, le demandeur doit disposer d'autorisations suffisantes pour exécuter l'action demandée. Par exemple, un utilisateur qui spécifie un projet de facturation valide dans sa requête ne peut pas importer d'objets dans le bucket, sauf s'il dispose d'une autorisation explicite le lui permettant, telle que l'autorisation storage.objects.create
pour ce bucket ou le projet auquel il appartient.
Opérations facturées à la source
Les opérations qui possèdent à la fois un bucket source et un bucket de destination, telles que les copies ou les réécritures, sont imputées au projet contenant le bucket source. Dans la plupart des cas (lorsque vous exécutez des appels directs à l'aide des API JSON et XML, par exemple), vous n'avez besoin de spécifier un projet de facturation que si les paiements du demandeur sont activés sur le bucket source.
Dans certains cas, par exemple gcloud storage cp
avec l'option --no-clobber
, vous devez inclure un projet de facturation si le bucket source ou le bucket de destination (ou les deux) disposent de la fonctionnalité de paiements du demandeur activée. Cette exigence est due au fait que ces opérations appellent les deux buckets lors de l'exécution de l'action.
Opérations à requêtes multiples
Pour les opérations nécessitant plusieurs requêtes, l'utilisation de projets de facturation dans vos requêtes implique les comportements suivants :
Pour les importations avec reprise, seule la première requête doit inclure un projet de facturation qui s'appliquera à l'ensemble de l'importation. Les projets de facturation spécifiés dans les requêtes ultérieures sont ignorés.
Pour les réécritures avec l'API JSON et les importations en plusieurs parties de l'API XML, chaque requête peut utiliser un projet de facturation différent. Un projet de facturation spécifié dans une requête précédente ne s'applique pas aux requêtes ultérieures.
Facturation
Les frais associés à l'ajout d'un projet de facturation dans votre requête n'apparaissent pas séparément dans votre facturation. Par exemple, supposons que vous téléchargiez plusieurs fichiers d'un bucket sur lequel la fonctionnalité de paiements du demandeur est activée et que vous spécifiez le projet my-project
pour facturer la requête. Si my-project
contient également un bucket à partir duquel vous effectuez des téléchargements, votre facture n'indique que le total des frais encourus pour les téléchargements combinés. Elle ne fait pas la distinction entre les téléchargements effectués depuis votre bucket et ceux effectués à partir du bucket exploitant les paiements du demandeur.
Si vous souhaitez faire la distinction entre les frais provenant de vos propres ressources Cloud Storage et les frais liés à l'inclusion de projets de facturation dans vos requêtes, vous devez créer un projet ne contenant pas de ressources Cloud Storage. Ce projet est donc dédié à l'envoi de requêtes aux ressources situées dans d'autres projets, tels que les buckets de paiements du demandeur.
Étape suivante
- Découvrez comment utiliser les paiements du demandeur.
- Rendre les données publiques