今天我们要来介绍如何在 GCP 上建立 VM 并布署我们的 API 程序。
首先点选功能选的 Compute Engine -> VM 执行个体。第一次进到这个页面会询问我们是否要启用这个 API,点选启用,之後之後进到 Compute Engine 的主页。(启用 API 会花一点时间,启用完毕之後就很快了)
接着在 "VM 执行个体" 分页下点选 "建立执行个体"
接着要设定我们的 VM。以下列出不是使用预设设定的区块。
设定完之後,点选建立,再等它跑一下,我们的 VM 就建好了。GCP 会把我们导向 VM 列表的页面,我们可以在这边看到所有 VM 的资讯。
点选 "连线" 底下的 SSH 下拉选单,可以直接用浏览器开一个 SSH terminal 操作 VM
当然也可以用第三方软件搭配刚刚设定的 SSH key 连到这个 VM
GCP 的 VM 预设会使用浮动的外部 IP,可以参考这篇文章把 VM 的 IP 设为固定。
布署程序常见的方法有
笔者这里选择最简单的方法 3。
首先,我们必须在 VM 上安装需要的软件
sudo yum install git
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-5.0
接着,建立一个放我们 API 专案的资料夹
sudo mkdir /ironman
sudo mkdir /ironman/dotnet_api
再从 git 上 clone 原始码
cd /ironman/dotnet_api # 跳到 dotnet_api 资料夹
sudo git clone https://github.com/eric-yijuin-lin/IThomeIronman.git
在 build 专案之前,我们先把之前的 UserServiceWithFile 还原成 UserService(写死的 List)省去处理档案路径的麻烦。可以在程序进版控之前先改,或者 clone 下来之後在 VM 上改,如果要在 VM 上改可以参考以下步骤:
sudo vi /ironman/dotnet_api/IThomeIronman/Ithome_2021_API/Startup.cs
i
进入编辑模式(底下会出现 -- INSERT -- 字样)services.AddScoped<IUserCRUD, UserService>();
Esc
离开编辑模式,然後输入 :wq
+ Enter
完成编辑Esc
离开编辑模式,然後输入 :q!
+ Enter
放弃编辑最後,输入下面这 「一行」 指令,就能看到我们的 API 程序跑起来了。
sudo dotnet run --urls="https://0.0.0.0:443" --project /ironman/dotnet_api/IThomeIronman/Ithome_2021_API/Ithome_2021_API.csproj
上面指令中 --url 参数指定监听 443 port 的 https 连线, --project 参数告诉 .NET SDK 要 build + 执行哪个专案。这个指令不是很好的做法,它只是暂时测试用,之後我们会再修改布署相关的工作。
回到 GCP 的 VM 列表,复制外部 IP
然後到浏览器输入 https://外部IP/api/User 就能看到我们的 API Server 已经可以让外部连线!
不过由於 dotnet 内建的 SSL 凭证是开发者凭证,浏览器不会信任它所以会跳出警告。程序自己写的,可以安心的点选进阶 -> 仍要前往。
今天我们用了满多偷懒的方式,目的是用最简单的方法把 API 程序跑起来,明天我们将用比较正式的方法对这个流程做修改
>>: Laravel Queue Job:深入理解 timeout 的运作
今天要来写controller的部分, (1)controller新称showOneMinKbar方...
Agenda 资安宣言 测试环境与工具 学习目标 技术原理与程序码 References 下期预告 ...
Spinner选单 Spinner有快速选择选单中项目的功能,是个很常用的选择工具,不过spinne...
今日文章目录 > - 应用情境 > - CSS原理练习 > - 应用情境练习 &...
国小造句最常见的题目就是:如果...就...,如果被打就会痛。对於程序语言也是有这样的语法给你作使用...