Pour créer un package que vous pouvez réutiliser dans plusieurs dépôts Dataform, vous devez créer un dépôt Dataform dédié au package et le connecter à un dépôt Git tiers pour le mettre à la disposition d'autres dépôts Dataform.
Vous devez ensuite créer un fichier index.js
de premier niveau et y ajouter le contenu de votre package exportable, comme les fonctions et les constantes. Pour obtenir un exemple de package créé dans Dataform, consultez dataform-package-base
sur GitHub.
Une fois le package créé, vous pouvez l'installer dans un autre dépôt Dataform et utiliser le contenu exportable du package, comme les constantes et les fonctions, pour développer des workflows SQL.
Au lieu de créer un package, vous pouvez réutiliser des fonctions et des constantes JavaScript dans un seul dépôt Dataform avec des inclusions. Pour en savoir plus, consultez la section Réutiliser du code dans un seul dépôt avec des inclusions.
Avant de commencer
Dans la console Google Cloud, accédez à la page Dataform page.
Créez un dépôt Dataform dédié à votre package. Faites correspondre le nom du dépôt au nom de votre package.
Connectez le dépôt à un dépôt Git tiers qui hébergera votre package.
Créez et initialisez un espace de travail dans le dépôt Dataform.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer un package, demandez à votre administrateur de vous accorder le rôle IAM Administrateur Dataform (roles/dataform.admin
) sur les dépôts.
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.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Créer un package dans Dataform
Pour créer votre propre package avec du code JavaScript que vous pouvez réutiliser dans Dataform, procédez comme suit dans votre espace de travail:
Dans le volet Fichiers, cliquez sur le menu
Plus.Cliquez sur Créer un fichier.
Dans le volet Créer un fichier, procédez comme suit :
Dans le champ Ajouter un chemin d'accès au fichier, saisissez
index.js
.Cliquez sur Créer un fichier.
Dans le fichier
index.js
, saisissez le code JavaScript que vous souhaitez exporter.Créez des constantes au format suivant:
const CONSTANT_NAME = CONSTANT_VALUE; module.exports = { CONSTANT_NAME };
Remplacez les éléments suivants :
CONSTANT_NAME
: nom de votre constanteCONSTANT_VALUE
: valeur de votre constante
Créez des fonctions au format suivant:
function FUNCTION_NAME(PARAMETERS) { FUNCTION_BODY } module.exports = { FUNCTION_NAME }
Remplacez les éléments suivants :
FUNCTION_NAME
: nom de votre fonctionPARAMETERS
: paramètres de votre fonctionFUNCTION_BODY
: code que vous souhaitez que la fonction exécute
Facultatif: cliquez sur Format.
Facultatif: Dans le répertoire
definitions
, ajoutez le code de votre package qui ne sera pas exporté.Validez et transférez vos modifications.
L'exemple de code de package suivant montre le fichier index.js
du package postoffice
qui exporte la fonction getDomain
:
// filename index.js
// package name postoffice
const GENERIC_DOMAINS = "('samplemail.com','samplemail.co.uk','examplemailbox.com'";
function getDomain(email) {
let cleanEmail = `trim(${email})`
const domain = `substr(${cleanEmail}, strpos(${cleanEmail}, '@') + 1)`;
return `case
when ${domain} in ${common.GENERIC_DOMAINS} then ${cleanEmail}
when ${domain} = "othermailbox.com" then "other.com"
when ${domain} = "mailbox.com" then "mailbox.global"
when ${domain} = "support.postman.com" then "postman.com"
else ${domain}
end`;
}
module.exports = { getDomain }
Étape suivante
- Pour savoir comment installer votre package dans un dépôt et importer son contenu dans des fichiers JavaScript ou SQLX, consultez Installer un package dans Dataform.
- Pour en savoir plus sur les packages dans Dataform, consultez la section Réutiliser du code dans plusieurs dépôts avec des packages.
- Pour savoir comment écrire des variables et des fonctions JavaScript que vous pouvez réutiliser dans Dataform, consultez la section Réutiliser du code dans un seul dépôt avec des inclusions.