Skip to content

Latest commit

 

History

History
67 lines (42 loc) · 3.65 KB

README.md

File metadata and controls

67 lines (42 loc) · 3.65 KB

Type_GCF

GitHub language count Linguagem principal License Stargazers

Setup   |    Start e Deploying   |    Modificações   |    Como funciona   |    Testes   |    Créditos

☁️ Google Cloud Functions modelo de projeto Typescript

Modelo de projeto com typescript para deploy no Google Cloud Function.

Setup

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

Start e Deploying

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

Modificações

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:

  1. index.ts, na exportação
  2. start e deploy scripts no arquivo package.json
  3. 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.

Como funciona

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.

Testes

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.

Créditos

Esse projeto é baseado em, gcf-typescript-template.