{"id":18023571,"url":"https://github.com/jeffotoni/gcloudrun","last_synced_at":"2026-05-16T22:07:07.614Z","repository":{"id":65230643,"uuid":"423226763","full_name":"jeffotoni/gcloudrun","owner":"jeffotoni","description":"Api RESTfull - Go test Cloud Run","archived":false,"fork":false,"pushed_at":"2021-11-01T06:19:57.000Z","size":133,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-23T19:33:20.177Z","etag":null,"topics":["go","golang","google-cloud","google-cloud-run"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeffotoni.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-10-31T18:17:53.000Z","updated_at":"2022-04-15T05:08:33.000Z","dependencies_parsed_at":"2023-01-16T14:52:40.582Z","dependency_job_id":null,"html_url":"https://github.com/jeffotoni/gcloudrun","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jeffotoni/gcloudrun","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffotoni%2Fgcloudrun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffotoni%2Fgcloudrun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffotoni%2Fgcloudrun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffotoni%2Fgcloudrun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeffotoni","download_url":"https://codeload.github.com/jeffotoni/gcloudrun/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffotoni%2Fgcloudrun/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33120464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T18:38:32.183Z","status":"ssl_error","status_checked_at":"2026-05-16T18:38:29.903Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["go","golang","google-cloud","google-cloud-run"],"created_at":"2024-10-30T07:09:56.413Z","updated_at":"2026-05-16T22:07:07.597Z","avatar_url":"https://github.com/jeffotoni.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gcloudrun User\n\nTestando Google Cloud Run, testando com configurar e subir uma aplicação Go no serviço Cloud Run.\nO objetivo é testar e levantar as possibilidades quando utilziamos este serviço.\n\nAntes de iniciar lembra-lo que para fucionar precisaremos autenticar no google cloud com o seguinte comando.\n\nO exemplo abaixo é fazendo push e build direto de sua máquina local e enviando para Registry.\nLogo abaixo iremos fazer também utilizando Code Build + github.\n\n\n## Registry + Docker\n\n### Auth Login\n```bash\n$ gcloud auth login\n```\n\n### Artifacts Registry\n\nEste é a nova versão do Registry no Google Cloud, nos iremos utiliza-lo como Registry para armazenar nossas imagens.\nPara inicia-lo é preciso reinicia-lo com o link [Ativar Artifacts](https://console.cloud.google.com/apis/enableflow?apiid=artifactregistry.googleapis.com)\n\n```bash\n$ gcloud artifacts repositories create go2 --repository-format=docker \\\n--location=us-central1 --description=\"Docker repository Go\"\n```\n\n#### List Repo\n```bash\ngcloud artifacts repositories list\n```\n\n#### Auth Repo\n```bash\ngcloud auth configure-docker us-central1-docker.pkg.dev\n```\n\n#### Clear Repo\n```bash\ngcloud artifacts repositories delete go2 --location=us-central1\n```\n\n#### Docker Build\n\nCriamos um arquivo deploy.gcloud.sh, ele só irá funcionar se vocẽ tiver logado em seu ambiente do Google Cloud e ativado o Regitry.\n\n#### Docker Build\nFizemos um arquivo bash o deploy.gcloud.sh, porém foi criado o Markefile para que execute tudo de forma simples.\n\n```bash\n$ make deploy\n```\n\nFoi contruída uma API simples de exemplo para testarmos Google Cloud Run.\nAbaixo como executar localmente e testar para ver se está tudo ok.\n\n### API USER - DOCKER BUILD - LOCAL\n\n```bash\n$ docker docker build -f Dockerfile -t jeffotoni/gcloudrun.user .\n```\n\nAgora vamos subir nosso serviço usando docker.\n```bash\n$ docker run --rm --name gcloudrun.user -it -p 8080:8080 jeffotoni/gcloudrun.user:latest\n┌───────────────────────────────────────────────────┐ \n│                   Fiber v2.21.0                   │ \n│               http://127.0.0.1:8080               │ \n│       (bound on host 0.0.0.0 and port 8080)       │ \n│                                                   │ \n│ Handlers ............. 3  Processes ........... 1 │ \n│ Prefork ....... Disabled  PID ................. 1 │ \n└───────────────────────────────────────────────────┘ \n```\n\n### API USER - [GET] /api/v1/ping\n\nAgoa para testar vamos executar nossos endpoints e testar nossa api.\n\n```bash\n$ curl -i -XGET -H \"Content-type:application/json\" \\\nlocalhost:8080//api/v1/ping\n```\n\n### API USER - [POST] /api/v1/user\n\n```bash\n$ curl -i -XGET -H \"Content-type:application/json\" \\\nlocalhost:8080//api/v1/user -d '{\"name\":\"jefferson\",\"cpf\":\"23232323\", \"year\":2021}'\n```\n\n### K6 Test de Stress\n\nFoi criado test de stress utilizando K6, você poderá rodar ele utilizando docker ou instalar em sua máquina e rodar.\n\n```bash\n$ cd k6\n$ k6 run -e HOST=http://localhost:8080 --vus 100 --duration 30s script.post.js\nrunning (0m30.0s), 000/100 VUs, 1103723 complete and 0 interrupted iterations\ndefault ✓ [======================================] 100 VUs  30s\n\n     data_received..............: 227 MB  7.6 MB/s\n     data_sent..................: 400 MB  13 MB/s\n     http_req_blocked...........: avg=3.96µs  min=671ns    med=1.5µs   max=36.49ms p(95)=2.71µs  p(99)=7.08µs   p(99.99)=5.91ms   count=1103723\n     http_req_connecting........: avg=432ns   min=0s       med=0s      max=26.12ms p(95)=0s      p(99)=0s       p(99.99)=0s       count=1103723\n   ✓ http_req_duration..........: avg=2.29ms  min=40.61µs  med=1.38ms  max=45.86ms p(95)=7.41ms  p(99)=14.55ms  p(99.99)=33.12ms  count=1103723\n     http_req_failed............: 100.00% ✓ 1103723      ✗ 0    \n     http_req_receiving.........: avg=58.24µs min=4.46µs   med=14.92µs max=31.07ms p(95)=71.64µs p(99)=391.59µs p(99.99)=16.12ms  count=1103723\n     http_req_sending...........: avg=20.12µs min=3.91µs   med=8.84µs  max=31.15ms p(95)=19.8µs  p(99)=132.44µs p(99.99)=13.62ms  count=1103723\n     http_req_tls_handshaking...: avg=0s      min=0s       med=0s      max=0s      p(95)=0s      p(99)=0s       p(99.99)=0s       count=1103723\n     http_req_waiting...........: avg=2.21ms  min=23.78µs  med=1.34ms  max=43.41ms p(95)=7.25ms  p(99)=13.69ms  p(99.99)=27.43ms  count=1103723\n     http_reqs..................: 1103723 36783.164776/s\n     iteration_duration.........: avg=2.69ms  min=114.41µs med=1.6ms   max=132.9ms p(95)=8.48ms  p(99)=16.6ms   p(99.99)=118.67ms count=1103723\n     iterations.................: 1103723 36783.164776/s\n     vus........................: 100     min=100        max=100\n     vus_max....................: 100     min=100        max=100\n\n```\n\n## Cloud Run\n\nAntes de iniciar ative as APIs Cloud Build, Cloud Run, Container Registry, e Resource Manager.\n\nExiste a possibilidade de criar, listar, deletar o serviço Cloud Run sem precisar ir na interface web.\nOutro ponto legal é quando utiliza o Code Build, você poderá configura-lo manualmente ou na interface Web, integrando com seu github, gitbucket e Resource Manager.\n\nOutro ponto legal é que manualmente vc tem como criar seu deploy criando um arquivo cloudbuild.yaml.\n\n**Exemplo:**\n```bash\n steps:\n # Build the container image\n - name: 'gcr.io/cloud-builders/docker'\n   args: ['build', '-t', 'gcr.io/$PROJECT_ID/SERVICE-NAME:$COMMIT_SHA', '.']\n # Push the container image to Container Registry\n - name: 'gcr.io/cloud-builders/docker'\n   args: ['push', 'gcr.io/$PROJECT_ID/SERVICE-NAME:$COMMIT_SHA']\n # Deploy container image to Cloud Run\n - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'\n   entrypoint: gcloud\n   args:\n   - 'run'\n   - 'deploy'\n   - 'SERVICE-NAME'\n   - '--image'\n   - 'gcr.io/$PROJECT_ID/SERVICE-NAME:$COMMIT_SHA'\n   - '--region'\n   - 'REGION'\n images:\n - 'gcr.io/$PROJECT_ID/SERVICE-NAME:$COMMIT_SHA'\n```\nPara executar nosso exemplo basta rodar o exemplo logo abaixo.\n```bash\n$  gcloud builds submit\n```\n\n```bash\n$ gcloud run deploy --help\n```\n```bash\n$ gcloud run deploy \u003cservice-name\u003e --image \u003cimage_name\u003e\n```\n![Browser](cloudrun.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffotoni%2Fgcloudrun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeffotoni%2Fgcloudrun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffotoni%2Fgcloudrun/lists"}