我怎么会这么依赖 GUI?

news/2024/10/20 6:18:36/

AWS CLI、.NET 和 Lambda 函数
欢迎来到雲闪世界。在 Windows 上使用 Visual Studio 和 AWS Explorer 绝对会让你变得懒惰。我的意思是,能够通过右键单击项目来构建和部署 Lambda 函数之类的东西真是太棒了,但有时最好了解幕后发生了什么。

尽管如此,既然我能够以类似的方式构建所有内容,我现在非常致力于切换到 Visual Studio Code。此时我主要关心的是确保在 Windows 上工作时(这仍然会发生)构建/测试/部署顺序几乎与 Debian 上完全相同。我想也许我不得不用古怪的混合脚本来做一堆像这样的愚蠢特技,但后来我想起了 WSL2!

Windows Subsystem for Linux(版本 2)是与 Windows 系统一起运行的正确 Linux 内核。在处理我们使用的某些硬件Cassia Networks X1000 蓝牙网关时,我经常使用它。在 SmartShepherd,我们经常需要在短时间内连接 500 个或更多的蓝牙 LE 设备,而使用 Android 上的蓝牙堆栈(或几乎任何东西)根本无法实现。我有一个在 Cassia 上运行的小型服务器应用程序(它们使用 Ubuntu 容器),环境托管 SSH 会话和安全副本以测试其新版本。因此,WSL2 的 Debian 安装正在发挥作用。

但是,因为它已经安装好了,所以我最好全力以赴,尝试在 BUSTER3(Acer Nitro)上复制我在 Chungus Proliant 上的 .NET 环境。

文档和安装
不分先后顺序:

.NET 3.1 说明请点击此处
AWS CLI此处
此处为AWS Lambda 模板
在本地目录中安装 .NET 3.1。我使用 wget,您可以使用 curl 或直接通过浏览器下载并将其复制到某处。

wget https://dot.net/v1/dotnet-install.sh
chmod 755 dotnet-install.sh
./dotnet-install.sh -c 3.1

一旦安装了 .NET(它将位于.dotnet主目录中的隐藏目录中,然后您可以编辑 .bashrc 以包含以下最后三行:

export PATH=" P A T H : PATH: PATH:HOME/.dotnet: H O M E / . d o t n e t / t o o l s " e x p o r t D O T N E T R O O T = HOME/.dotnet/tools" export DOTNET_ROOT= HOME/.dotnet/tools"exportDOTNETROOT=HOME/.dotnet
export DOTNET_MULTILEVEL_LOOKUP=0

不太清楚最后一个是干什么的,但是如果你在用户目录中安装了 .NET,而不是全局安装,工具似乎会要求你这样做。我更喜欢只为我自己安装它,并不是因为我的机器上有 100 个其他用户,更多的是出于习惯,因为我在大型多用户机器上做 Unix 系统管理的时候,我们总是默认在本地安装未知的东西,直到我们信任它。我当时的导师坚持要求 root 用户保持原封不动、原封不动,就像出厂时一样,这样你就不会被锁在价值数十万美元的机器之外。在像 Proliant 这样欠我 150 美元的东西上似乎有点傻,但有时候旧习难改。

安装 Amazon CLI 很简单,尽管您可能必须这样做sudo apt-get install zip unzip,但我在 Chungus 上没有这样做,但我必须在 Buster3 上这样做。

wget https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip
unzip awscliv2.zip
sudo ./aws/install
aws --version

最后,适用于 dotnet 的 AWS 工具和 dotnet lambda 模板。所有这些基本上允许您访问通常在 Visual Studio 中右键单击的内容。

dotnet new --install Amazon.Lambda.Templates::5.4.0
dotnet tool install -g Amazon.Lambda.Tools

嗯,是的,但是它有效吗?
Amazon.Lambda.Templates 用于创建新的 Lambda 函数,它们在您的 .NET 项目根目录中创建一个文件 aws-lambda-tools.defaults.json,您可以使用该文件填写 lambda 函数所在的区域、安全内容等。这里就不多说了,因为AWS 有更好的文档。

可以说它确实有效,因此(例如)如果您想将 .NET 3.1 Lambda 函数打包为准备部署的 zip 文件,您可以转到项目的根目录并执行以下操作:

dotnet lambda package

果然,它创建了 zip 文件。 dotnet lambda deploy将替换现有的 Lambda。由于我在 Chungus 和 Buster3 上同时执行了上述所有操作,因此环境尽可能接近相同,我现在可以构建和部署我的 Lambda 函数。下一站:将 Docker 部署到 ECS。

脚注
Buster3 得名的原因并不十分有趣,但我想记录下来以备后人参考。当我辞职创办 SmartShepherd 时,我回到家才意识到我实际上没有一台笔记本电脑可用来工作。工作单位提供了一台不错的 HP Spectre,但当我估算出它的价格时,我大吃一惊。它们是漂亮的机器,但对于一家苦苦挣扎的初创公司来说太贵了。我的一个孩子有一台他们用来写东西的废弃笔记本电脑,那是一台相对古老的东芝 C650,铰链坏了。它坏了,所以我叫它 BUSTER。它的规格并不令人印象深刻,但足以运行 Ti 的 Code Composer Studio,直到我们拥有 MVP。我一有几美元,就把它换成了一台新的 Acer Aspire E5-553,叫做 BUSTER2,因为为什么不呢。由于我太傻,又想买便宜货,所以没仔细看规格,它很便宜,有一块独立显卡,内存有 16GB。后来,当我需要为 Docker 做虚拟化时,才发现这个蠢东西在 BIOS 和固件中禁用了所有虚拟化!我费了好大劲才弄好固件设置,才让它正常工作。从那以后,我发誓不再使用宏碁的机器,尽管 BUSTER2 赢得了它的名字。Buster2 陪我们去了深圳,成为 HAX10 的一部分,并且大部分工作都完成了。他仍然带着那次旅行的贴纸。

BUSTER3 有点意外。我们在旅行(当然是在疫情之前),BUSTER2 让我很头疼,键盘玩起来很卡,Windows 10 Pro 几乎停滞不前。我在一家知名技术回收连锁店的橱窗里看到了一台二手 Acer Nitro 5,价格合适。尽管我已经公开宣布不再使用 Acer 机器,但配置还是很不错的,不容错过。这款电脑非常棒,如果你需要一台价格实惠但性能高的设备来进行开发工作,强烈推荐。
在这里插入图片描述

(从左到右)Buster、Buster3、Buster2
感谢关注雲闪世界。(Aws解决方案架构师vs开发人员&GCP解决方案架构师vs开发人员)


http://www.ppmy.cn/news/1511712.html

相关文章

爱心动画代码HTML5

这段代码是一个HTML5 Canvas动画,它通过JavaScript创建了一个动态的爱心效果。页面初始化时,首先定义了一些基本设置,如粒子数量、持续时间、速度等。然后,定义了Point和Particle类,用于处理粒子的位置和运动。接着&am…

Linux安装MQTT 服务器(图文教程)

MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,专为低带宽和不稳定的网络环境设计,非常适合物联网(IoT)应用。 官网地址:https://www.emqx.com/ 一、版本选择 根据自己…

开源的数据库增量订阅和消费的中间件——Cancl

目录 工作原理 MySQL主备复制原理 Canal 工作原理 主要功能和特点 应用场景 实验准备 安装JDK11 下载MySQL8.0 配置canal.admin 配置canal-deployer 测试数据读取 新增一台主机用做被同步的目标机器测试 官方地址:https://github.com/alibaba/canal?ta…

使用 C++ 实现一个简单的数据库连接池

使用 C 实现一个简单的数据库连接池 在现代应用程序中,数据库连接的管理是一个重要的性能瓶颈。频繁地创建和销毁数据库连接会导致显著的性能下降。为了解决这个问题,连接池技术应运而生。本文将介绍如何使用 C 实现一个简单的数据库连接池,…

JAVA--多线程

Java中的多线程是指在同一个Java虚拟机(JVM)中并发执行多个线程的能力。线程是程序执行的最小单元,Java提供了丰富的API来创建和管理线程。以下是Java中实现多线程的一些关键概念和方法: Thread 类:Java提供了Thread类…

jenkins配置+vue打包多环境切换

jenkins配置流水线过程 1.新建item 加入相关的参数就行了。 流水线脚本设置 后端脚本 node {stage checkoutsh"""#每次打包清空工作空间目录rm -rf $workspace/*cd $workspace#到工作空间下从远端svn服务端拉取代码svn co svn://10.1.19.21/repo/技术中台/低…

掌握axios:在TypeScript中进行高效网页数据抓取

在当今的互联网时代,数据已成为企业最宝贵的资产之一。无论是社交媒体分析、市场趋势预测还是用户行为研究,高效地获取和处理网页数据都是至关重要的。本文将通过访问抖音平台的案例,介绍如何在TypeScript中使用axios库进行高效的网页数据抓取…

Python知识点:如何使用Kubernetes与Python进行容器编排

Kubernetes 是一个开源的容器编排平台,用于自动化容器化应用的部署、管理和扩展。结合 Python,你可以通过 Kubernetes API 和工具,如 kubectl 和 kubernetes-client 库,来编写和管理容器化应用。以下是如何使用 Kubernetes 和 Pyt…