Header Ads

Usando CRON Jobs em CloudFlare Workers através do Wrangler

O Cloudflare Workers demonstrou ser uma solução única e poderosa para computação sem servidor. Com a nova adição de trabalhos CRON, agora você pode executar Cloudflare Workers em uma programação sem depender de um gatilho externo. Neste artigo, exploramos como configurar um novo script, implantar esse script no Cloudflare e, por fim, acionar esse script com um trabalho CRON.

Primeiros passos com o Wrangler

Antes de implantarmos um novo script no Cloudflare, precisamos instalar e configurar a ferramenta de linha de comando Wrangler para implantar nosso novo script de trabalho.

Instalando a ferramenta de linha de comando Wrangler

Para criar uma implantação de site, Cloudflare criou a ferramenta de linha de comando Wrangler. O Wrangler requer instalação por meio de NPM (gerenciador de pacotes NodeJS) ou Cargo (gerenciador de pacotes de idioma Rust).

Instalação NPM

 npm i @ cloudflare / wrangler -g 

Carga

 gerenciador de instalação de carga 

 

gerenciador de instalação de carga --features sys-openssl

Login do Wrangler e criação de site

Primeiro, vamos fazer o login no Cloudflare usando o Wrangler. Para fazer isso, usamos o novo recurso de login do Wrangler. Isso solicitará que uma página da Web seja aberta e, se você já estiver autenticado no Cloudflare, a autenticação acontecerá muito rapidamente. Caso contrário, faça login e o Wrangler configurará o token de API automaticamente.

 login do wrangler 

 

Como você pode ver no local de configuração, há um arquivo . toml que agora contém seu token de API para tornar todas as operações subsequentes perfeitas. Este arquivo está contido no diretório inicial do usuário e armazenado no subdiretório . wrangler \\ config \\ default. toml.

Criando um script de trabalho do Cloudflare para consultar o CRON do WordPress

Neste artigo, vamos criar um Cloudflare Worker simples que simplesmente consultará o arquivo wp-cron. php em uma programação. O modo como o WordPress funciona é que, em uma solicitação de página, ele tentará executar qualquer tarefa CRON interna definida. Isso significa que os trabalhos são executados apenas ocasionalmente com um site de baixo volume e podem ser prejudiciais para um site de alto volume. Isso pode nem sempre ser viável em alguma hospedagem, então você pode definir a mesma configuração, mas acionar externamente o sistema WordPress CRON.

Precisamos desabilitar a configuração CRON padrão do WordPress usando a seguinte configuração em wp-config. php. Isso entra em vigor no momento em que o arquivo é salvo.

 define ('DISABLE_WP_CRON', verdadeiro); 

Normalmente, os scripts de trabalho são acionados apenas quando são chamados. Nesse caso, programaremos um gatilho CRON para ser executado a cada cinco minutos.

Cloudflare Workers programados por CRON triggers serão executados em máquinas subutilizadas para fazer o uso mais eficiente dos recursos.

Criação da configuração do acionador CRON

Os gatilhos CRON do Cloudflare Worker usam a familiar sintaxe Unix CRON. Isso o torna imediatamente familiar e com uma riqueza de recursos de aprendizagem por trás dele. Você pode até definir vários gatilhos CRON para um único script de trabalho, até um limite atual de três. A sintaxe de configuração se parece com o código abaixo, que mostra um gatilho em execução a cada 5 minutos.

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

Agora que temos nossa configuração de acionador, como colocamos tudo junto para implantar nosso script no ambiente Cloudflare?

Implantando o script CRON do WordPress e agendando o trabalho CRON

Para criar todos os arquivos necessários e configurar um trabalhador javascript simples, podemos usar o comando interno gerar que o Wrangler possui. Isso criará um diretório chamado wordpress-cron que contém tudo o que é necessário para implantar um trabalhador baseado em javascript.

 # Gerar simples javascript Cloudflare Worker scaffold wrangler gerar wordpress-cron 

A seguir, modifique o arquivo index. js que é gerado. Dentro do script, vamos simplesmente chamar o arquivo wp-cron. php com o parâmetro doing_wp_cron. Quando for chamado, todos os trabalhos CRON que precisarem ser executados serão.

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

Finalmente, você precisará atualizar seu arquivo wrangler. toml para incluir as informações necessárias. Atualize o arquivo de configuração para incluir seu acccount_id e zone_id. Para obter esses valores, localize o painel principal do seu site e role para baixo para encontrar a seção API. Tanto o ID da conta quanto o ID da zona estarão localizados lá.

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

Esta rota corresponderá a qualquer protocolo, http ou https, e quaisquer parâmetros ou caminhos adicionais além da seção wordpress-cron. Sinta-se à vontade para fazer o que quiser. Na realidade, isso permite que você acione manualmente o script, mas o acionador CRON vai lidar com isso na maioria das vezes.

Finalmente, precisamos implantar este trabalhador, o que você pode fazer usando o comando publicar, conforme mostrado abaixo.

 publicação do Wrangler 

Depois que o script foi implantado e executado pela primeira vez, você pode ver estatísticas e informações na página do painel Workers do Cloudflare.

 

Conclusão

Este exemplo simples de uso de gatilhos CRON com Cloudflare Workers é apenas arranhar a superfície das possibilidades. Comece a explorar Cloudflare Workers e como essa tecnologia sem servidor pode se encaixar em seu fluxo de trabalho hoje!

Nenhum comentário