Utilisation de tâches CRON dans CloudFlare Workers via Wrangler –

Utilisation de tâches CRON dans CloudFlare Workers via Wrangler –

Cloudflare Workers s’est révélé être une solution unique et puissante pour l’informatique sans serveur. Avec le nouvel ajout de tâches CRON, vous pouvez désormais exécuter Cloudflare Workers selon un calendrier sans compter sur un déclencheur externe. Dans cet article, nous explorons comment configurer un nouveau script, déployer ce script sur Cloudflare et finalement déclencher ce script avec une tâche CRON.

Premiers pas avec Wrangler

Avant de pouvoir déployer un nouveau script sur Cloudflare, nous devons installer et configurer l’outil de ligne de commande Wrangler pour déployer notre nouveau script de travail.

Installation de l’outil de ligne de commande Wrangler

Pour créer un déploiement de site, Cloudflare a créé l’outil de ligne de commande Wrangler. Wrangler nécessite une installation via NPM (gestionnaire de packages NodeJS) ou Cargo (gestionnaire de packages de langue Rust).

Installation de NPM

npm i @cloudflare/wrangler -g

Cargaison

cargo install wrangler

cargo install wrangler --features sys-openssl

Connexion Wrangler et création de site

Tout d’abord, nous allons nous connecter à Cloudflare en utilisant Wrangler. Pour ce faire, nous utilisons le nouveau wrangler login fonctionnalité. Cela demandera l’ouverture d’une page Web, et si vous êtes déjà authentifié dans Cloudflare, l’authentification se produira très rapidement. Sinon, connectez-vous et Wrangler configurera automatiquement le jeton API.

wrangler login

Comme vous pouvez le voir à partir de l’emplacement de configuration, il y a un .toml fichier qui contient maintenant votre jeton API pour rendre toutes les opérations ultérieures transparentes. Ce fichier est contenu dans le répertoire personnel de l’utilisateur et stocké dans le sous-répertoire .wrangler\config\default.toml.

Création d’un script Cloudflare Worker pour interroger WordPress CRON

Dans cet article, nous allons créer un simple Cloudflare Worker qui interrogera simplement le wp-cron.php fichier selon un calendrier. La façon dont WordPress fonctionne est que sur une demande de page, il tentera d’exécuter toutes les tâches CRON internes définies. Cela signifie que les tâches ne sont exécutées qu’occasionnellement avec un site à faible volume et peuvent être préjudiciables à un site à volume élevé. Cela peut ne pas toujours être faisable sur certains hébergements, vous pouvez donc définir le même paramètre mais déclencher en externe le système WordPress CRON.

Nous devons désactiver la configuration par défaut de WordPress CRON en utilisant la configuration suivante dans wp-config.php. Cela prend effet au moment où le fichier est enregistré.

define('DISABLE_WP_CRON', true);

En règle générale, les scripts de travail ne sont déclenchés que lorsqu’ils sont appelés. Dans ce cas, nous programmerons un déclencheur CRON pour l’exécuter toutes les cinq minutes.

Les agents Cloudflare planifiés par les déclencheurs CRON s’exécuteront sur des machines sous-utilisées pour utiliser les ressources de la manière la plus efficace possible.

Création de la configuration du déclencheur CRON

Les déclencheurs Cloudflare Worker CRON utilisent la syntaxe Unix CRON familière. Cela le rend immédiatement familier et avec une multitude de ressources d’apprentissage derrière lui. Vous pouvez même définir plusieurs déclencheurs CRON pour un seul script de travail, jusqu’à une limite actuelle de trois. La syntaxe de configuration ressemble au code ci-dessous qui montre un déclencheur s’exécutant toutes les 5 minutes.

[triggers]crons = ["*/5 * * * *"]

Maintenant que nous avons notre configuration de déclencheur, comment pouvons-nous tout mettre en place pour déployer notre script dans l’environnement Cloudflare?

Déploiement du script CRON WordPress et planification du travail CRON

Pour créer tous les fichiers nécessaires et configurer un simple worker javascript, nous pouvons utiliser la commande generate intégrée de wrangler. Cela créera un répertoire nommé, wordpress-cron qui contient tout le nécessaire pour déployer un worker basé sur javascript.

# Generate simple javascript Cloudflare Worker scaffold
wrangler generate wordpress-cron

Ensuite, modifiez le index.js fichier qui est généré. Dans le script, nous appellerons simplement le wp-cron.php fichier avec le paramètre de doing_wp_cron. Lorsqu’il est appelé, tous les travaux CRON qui doivent être exécutés le seront.

addEventListener("fetch", event => {
  return event.respondWith(
    fetch("<https://mysite.com/wp-cron.php?doing_wp_cron>")
  )
})

Enfin, vous devrez mettre à jour votre wrangler.toml fichier pour inclure les informations nécessaires. Mettez à jour le fichier de configuration pour inclure votre acccount_id et zone_id. Pour obtenir ces valeurs, recherchez le tableau de bord principal de votre site et faites défiler vers le bas pour trouver la section API. L’ID de compte et l’ID de zone y seront localisés.

name = "wordpress-cron"
type = "javascript"
account_id = "account_id"
workers_dev = false
route = "*mysite.com/wordpress-cron*"
zone_id = "zone_id"
[triggers]
crons = ["*/5 * * * *"]

Cette route correspondra à n’importe quel protocole, http ou https, et tous les paramètres ou chemins supplémentaires au-delà du wordpress-cron section. N’hésitez pas à faire ce que vous voulez. En réalité, cela vous permet de déclencher manuellement le script, mais le déclencheur CRON le gérera la plupart du temps.

Enfin, nous devons déployer ce worker, ce que vous pouvez faire à l’aide de la commande publish comme indiqué ci-dessous.

wrangler publish

Une fois le script déployé et exécuté pour la première fois, vous pouvez voir les statistiques et les informations sur la page du tableau de bord Cloudflare Workers.

Conclusion

Cet exemple simple d’utilisation de déclencheurs CRON avec Cloudflare Workers ne fait qu’effleurer la surface des possibilités. Commencez à explorer Cloudflare Workers et comment cette technologie sans serveur peut s’intégrer à votre flux de travail dès aujourd’hui!

Articles similaires

Quelle est la meilleure box internet en 2021 ?

Quelle est la meilleure box internet en 2021 ?

Les avantages des abonnés Spotify Premium ne s’appliquent pas aux podcasts

Les avantages des abonnés Spotify Premium ne s’appliquent pas aux podcasts

Il existe enfin un moyen d’utiliser iMessage sur Android, mais cela semble un peu extrême

Il existe enfin un moyen d’utiliser iMessage sur Android, mais cela semble un peu extrême

Vous pourrez bientôt trier les contacts dans Outlook pour Android

Vous pourrez bientôt trier les contacts dans Outlook pour Android

Articles récents