공개 API REST .Net 5 Google Cloud Run 사용 안 함 Github e Google Cloud Build
ASP.NET Core Web API
![](https://s1.md5.ltd/image/094f71c8a8db232bcf287d1a7f4bb39a.png)
Nomeie o projeto e coloque-o dentro da pasta raiz do repositório do Github.
![](https://s1.md5.ltd/image/5e465c9a897fec0c4309fdc8f3558c9e.png)
.net 버전을 선택하십시오.
Aqui vale uma observação, a versão que você usar do .net vai influenciar como o arquivo dockerfile deverá ser configurado, se quiser escolher outra versão, fique à vontade, mas será necessário adaptar o dockerfile.
![](https://s1.md5.ltd/image/97095e26d74e0bec160b28150882c073.png)
실행 옵션 선택
webapi
.![](https://s1.md5.ltd/image/1d7fc32b5cad5000f31c4f3da3cd7694.png)
Execute o projeto, faça um GET no
/weatherforecast
apenas para validar que está tudo funcionando.![](https://s1.md5.ltd/image/93d2d43ab375de85ca8f4a238b1ade75.png)
Program.cs가 필요하지 않은 적응형 Vamos
Program.cs
필요한 변경 사항으로서의 외관
Program.cs
para ficar como o do código abaixo:using System;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
namespace webapi
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args)
{
var port = Environment.GetEnvironmentVariable("PORT") ?? "8080";
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Development";
if (environment == "Development")
{
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
}
else
{
var url = new[]
{
string.Concat("http://0.0.0.0:", port)
};
return Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>().UseUrls(url); });
}
}
}
}
다른 코드는 중요하지 않습니다. No codigo é importante notar o bloco do other, nele estamos dizendo que quando o ambiente não for "Development"aplicação deverá subir usando o IP
0.0.0.0
, isso é necessário para que a aplicação fique visível fora do do container quado publicarmos no Cloud Run .도커파일
Crie o
Dockerfile
na raiz do repositório. Verifique seu projeto também está na raiz do repositório, se não tiver, mude para a raiz.![](https://s1.md5.ltd/image/7dfeee73af8ea8180a1040adee9fdea1.png)
다음은 dockerfile과 código abaixo를 연결하는 것입니다.
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build-env
WORKDIR /app
COPY . ./
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/aspnet:5.0
WORKDIR /app
COPY --from=build-env /app/out .
ENV ASPNETCORE_ENVIRONMENT Production
ENTRYPOINT ["dotnet", "webapi.dll"]
Importante alterar a última linha, o nome do arquivo .dll deve ser exatamente igual à DLL principal do seu projeto.
Se seu projeto tiver uma estrutura de pastas diferente do meu, talvez precise alterar outros pontos do dockerfile.
Salve tudo e faça commit.
GCP가 없는 Cloud Run
Se desejar, crie um projeto novo.
![](https://s1.md5.ltd/image/1c464e211db11fb98f77ec7040f71e21.png)
Pesquise por cloud run na barra de pesquisa no meio da barra do topo. Abra 또는 Cloud Run 제품. Crie um novo serviço.
![](https://s1.md5.ltd/image/78da43e57874d9725325e446d1917c7d.png)
새로운 프로젝트를 시작하려면 Cloud Build API를 사용하는 것이 가장 정확합니다.
![](https://s1.md5.ltd/image/07bc23f8a3abd3b3c732940cd9c45370.png)
셀레시오네
Continuously deploy new revisions from a source repository
에 클리크엠Setup With Cluod Build
![](https://s1.md5.ltd/image/e5191760eed3f376e54969c99cb9221f.png)
Importante: eu já tinha minha conta do Github conectada ao GCP, portanto, não consegui tirar prints dessa etapa, mas se for a primeira vez sua, você terá que vincular a sua conta do Github com o GCP.
Selecione o projeto que você quer publicar.
![](https://s1.md5.ltd/image/4c80d8a2cc4378a36fb71dd5b72d86cc.png)
이전에는 Dockerfile을 선택하고 표시했습니다. No campo
Branch
deixe o valor padrão ^main$
para que o Cloud Build seja acionado apenas quando houver commit na branch main do seu repositório, se quiser outra branch, fique à vontade.![](https://s1.md5.ltd/image/abc62a67d4b9c4650d5ca13bcfa3129b.png)
Preencha o
Service name
, eu deixei o valor padrão. Escolha uma região, para exemplo deixei a padrão.Na opção de Autoscaling deixei a quantidade mínima de instâncias como zero, isso aumenta o tempo de resposta a um request, mas reduz custos, que no meu caso é mais importante. Se você quiser reduzir o tempo de resposta da sua aplicação deixe pelo menos 1 no mínimo e faça ajustes de acordo com a sua volumetria.
Assim como o mínimo, deixei o máximo em 1 instância, porque novamente o mais importante para mim não é performance e sim custo. Se quiser melhorar a performance avalie aumentar o limite máximo de instâncias, mas lembre-se que isso gerará custos.
![](https://s1.md5.ltd/image/8b0d9c1243d084afbebe3824182170c8.png)
Por último, é preciso select as configurações de Ingress e Authentication, para fins educativos deixei aberto para
Allow all traffic
e Allow unauthenticated invocations
. Parações em produção thinke buscar mais informações para restringir o tráfego e as requisições sem autenticação.![](https://s1.md5.ltd/image/c60713af9c717d2595735f3a233400a7.png)
선택 사항: Abra o menu
Container, Connections, Security
e faça ajustes no seu container em relação à memória, timeout, requests maximos por container.Para o deploy automático essas configurações são unrelevantes e você poderá alterá-las no futuro.
Crie seu serviço e aguarde.
![](https://s1.md5.ltd/image/4073d4eb4707992bd26cfe198c1c4c33.png)
Quando estiver concluído se tudo deu certo ficará como o da imagem abaixo.
![](https://s1.md5.ltd/image/3e07d3861f99bdc6c4bddadbabab404f.png)
URL이 공개된 GCP에서 이전 이미지로 액세스할 수 없는 쿼드로에서 엔드포인트가 없는 API 액세스 권한이 있습니다
/weatherforecast
.URL: https://democsharpgcpcloudrun-lwy2plkqfa-uc.a.run.app/weatherforecast
![](https://s1.md5.ltd/image/33c08c05e02693609518fc22faff9af0.png)
결론
Cloud Run에서 처음으로 커밋할 수 있는 주요 저장소는 Github에서 공개할 수 있습니다.
O Cloud Run tem um recurso chamado Revisões, com ele é possível fazer rollback caso uma nova versão quebre algum aspecto da sua API.
Além de permitir que você gerencie o tráfego entre duas ou mais versões, podendo fazer deploy canário. Infelizmente, até o momento não consegui configurar um deploy canário automático, se você souber como faz, coloca nos comentário, por favor.
Obrigado por ter ficado até o fim.
Reference
이 문제에 관하여(공개 API REST .Net 5 Google Cloud Run 사용 안 함 Github e Google Cloud Build), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/felipemsfg/como-publicar-uma-api-rest-net-5-no-google-cloud-run-usando-github-e-google-cloud-build-509p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)