Setup | Start e Deploying | Modificações | Como funciona | Testes | Créditos
Modelo de projeto com typescript para deploy no Google Cloud Function.
Primeiro você precisa baixar e configurar o Google Cloud SDK. Crie um projeto e ative a API, instale o Google Cloud SDK e autorize seu IP. Você pode seguir a seção "Antes de começar" do link Guia de início rápido.
Depois disso execute o seguinte comando:
git clone https://github.com/PauloDavi/type_gcfunction.git && cd type_gcfunction && yarn
Este projeto é configurado para uma única função (helloWorld
), que você pode testar localmente ou implantar na nuvem.
Para testar localmente, use o script start:
yarn start
Isso executará o compilador Typescript e a estrutura de funções no modo de observação, para que você possa acessar sua função no localhost. Ele será reconstruído quando você modificar os arquivos Typescript.
Para implantar em seu projeto no GCF, use o script deploy:
yarn deploy
Você provavelmente vai querer mudar o nome da função de helloWorld
para algo mais sensato. O novo nome da função deve ser o mesmo em:
index.ts
, na exportação- start e deploy scripts no arquivo
package.json
- Você também pode modificar o arquivo
env.yaml
, esse é o arquivo que vai setar as variáveis de ambiente no google cloud functions, e lembre de renomear o arquivo .env.example para .env, esse aquivo é utilizado para setar as variáveis de ambiente na sua maquina local
Se você precisar de suporte a mais de uma função em um único repositório, precisará criar scripts para teste e implantação local por conta própria.
tsconfig.json
configura o compilador Typescript para traspilar a pasta ./src
e envia os arquivos Javascript compilados para a pasta ./dist
, o package.json
especifica o arquivo ./dist/index.js
como um ponto de entrada para o aplicativo. A pasta ./dist
é adicionada ao arquivo.gitignore
, uma vez que esses arquivos js não precisam ser mandados para o github. No entanto, um arquivo .gcloudignore
(que funciona da mesma maneira que .gitignore
, mas para a ferramenta gcloud) não inclui a pasta ./dist
na lista de ignorados, porque é necessário fazer upload desses arquivos js e usá-los para executar seu projeto.
Para teste local, functions-framework
e tsc-watch
são usados.
Faça seus testes automatizados na pasta ./tests
, os testes utilizam a biblioteca jest. Os testes sempre devem terminar com .spec.ts para que o jest entenda que eles são testes.
Esse projeto é baseado em, gcf-typescript-template.