介绍 Terraform使用的Hashicorp 配置语言 (HCL)提供了许多其他编程语言中存在的有用结构和功能。在基础架构代码中使用循环可以大大减少代码重复并提高可读性,从而使未来的重构更容易并具有更大的灵活性。HCL 还提供了一些常见的数据结构,例如列表和映射(在其他语言中也分别称为数组和字典),以及执行路径分支的条件。 Terraform 的独特之处在于能够手动指定所依赖的资源。虽然它在运行代码时构建的执行图已经包含检测到的链接(在大多数情况下都是正确的),但您可能会发现自己需要强制一个 Terraform 无法检测到的依赖关系。 在本文中,我们将回顾 HCL 提供的数据结构、它的资源循环功能(count键for_each、 和for),编写条件来处理已知和未知值,以及明确指定资源之间的依赖关系。 先决条件 一个 DigitalOcean 帐户。如果您没有,请注册一个新帐户。 DigitalOcean 个人访问令牌,您可以通过 DigitalOcean 控制面板创建。可以在此链接中找到执行此操作的说明:如何生成个人访问令牌。 Terraform 安装在您的本地计算机上,并使用 DigitalOcean 提供商设置了一个项目。完成步骤1和步骤2中的如何使用Terraform与DigitalOcean教程,并确保该项目命名文件夹terraform-flexibility,而不是loadbalance。在步骤 2 中,您不需要包含pvt_key变量和 SSH 密钥资源。 添加到您的 DigitalOcean 帐户的完全注册的域名。有关如何执行此操作的说明,请访问官方文档。 注意:本教程已专门使用 Terraform 进行了测试0.13。 HCL 中的数据类型 在本节中,在您详细了解 HCL 的循环和其他使您的代码更加灵活的功能之前,我们将首先介绍可用的数据类型及其用途。 Hashicorp 配置语言支持原始和复杂的数据类型。原始数据类型是字符串、数字和布尔值,它们是不能从其他类型派生的基本类型。另一方面,复杂类型将多个值组合成一个。两种类型的复数值是结构类型和集合类型。 结构类型允许将不同类型的值组合在一起。主要示例是用于指定基础架构外观的资源定义。与结构类型相比,集合类型也对值进行分组,但仅限于相同类型的值。我们感兴趣的 HCL 中可用的三种集合类型是列表、映射和集合。 列表 列表类似于其他编程语言中的数组。它们包含已知数量的相同类型的元素,可以使用数组符号 ( []) 通过它们的整数索引访问这些元素,从 0 开始。这是一个列表变量声明的示例,其中包含您将部署的 Droplet 的名称在接下来的步骤中: variable ..
Category : 教程系列
下载完整的电子书! 如何使用EPUB 格式的HTML电子书构建网站 如何使用PDF 格式的HTML电子书构建网站 电子书简介 如果您有兴趣学习如何构建和设计网站,超文本标记语言 (HTML) 是一个很好的起点。这本基于项目的书将通过使用我们的演示站点(如下)作为模型构建个人网站,向您介绍 HTML 及其方法。一旦您学习了基础知识,您就会知道如何更改网站的设计并添加个性化内容。遵循本书中的章节不需要任何先前的编码经验。 HTML 是用于在 Web 浏览器中显示文档的标准标记语言。HTML 最初由 Tim Berners Lee 于 1990 年在欧洲核研究组织 (CERN) 工作期间开发,是 1991 年 8 月 6 日用于发布世界上第一个网站的关键创新技术之一。 感谢 CERN 的修复项目,您现在可以重新访问原始网站。从那时起,HTML 得到了显着的更新和扩展,但其格式化和构建网页的基本目的保持不变。 今天,HTML 是用于构建网络的众多工具之一。了解如何编写 HTML 将为您作为 Web 设计师的职业生涯奠定坚实的基础,并为您学习其他前端 Web 开发技能(如 CSS 和 JavaScript)做好准备。 在本书中,您将学习如何使用常见的 HTML 标签和技术创建和自定义网站。完成本书后,您将拥有一个可以部署到云的站点。 下载完整的电子书! 如何使用EPUB 格式的HTML电子书构建网站 如何使用PDF 格式的HTML电子书�..
介绍 处理从 API 检索和显示数据的一种方法是将用户路由到组件,然后在该组件的ngOnInit挂钩中调用服务中的方法以获取必要的数据。在获取数据时,也许组件可以显示加载指示器。 还有另一种使用所谓的 a 的方法route resolver,它允许您在导航到新路线之前获取数据。 一种可用的 API 是Hacker News API。Hacker News 是一个分享链接和讨论链接的网站。该 API 可用于检索最受欢迎的帖子并显示有关单个帖子的信息。 在本教程中,您将实现一个路由解析器,在导航到显示收集到的数据的路由之前从 Hacker News API 获取数据。 先决条件 要完成本教程,您需要: Node.js 安装在本地,您可以按照如何安装 Node.js 和创建本地开发环境来完成。 对设置 Angular 项目有一定的了解。 本教程已通过 Node v15.3.0、npmv6.14.9、@angular/corev11.0.1、@angular/commonv11.0.1、@angular/routerv11.0.1 和rxjsv6.6.0 验证。 步骤 1 — 设置项目 出于本教程的目的,您将从使用@angular/cli. npx @angular/cli new angular-route-resolvers-example –style=css –routing –skip-tests 这将配置一个新的 Angular 项目,其样式设置为“CSS”(与“Sass”、Less 或“Stylus”相反)、启用路由并跳过测试。 导航到新创建的项目目录: cd angular-route-resolvers-example ..
介绍 在之前的教程“如何创建 Django 应用程序并将其连接到数据库”中,我们介绍了如何创建 MySQL 数据库、如何创建和启动 Django 应用程序以及如何将其连接到 MySQL 数据库。 在本教程中,我们将创建 Django模型来定义我们将存储的博客应用程序数据的字段和行为。这些模型将数据从 Django 应用程序映射到数据库。这是 Django 用来通过其对象关系映射 (ORM) API(称为“模型”)生成数据库表的工具。 先决条件 本教程是Django 开发系列的一部分,是该系列的延续。 如果您还没有关注本系列,我们将做出以下假设: 您已安装 Django 版本 3 或更高版本。 您已将 Django 应用程序连接到数据库。我们正在使用 MySQL,您可以按照 Django 系列的第二部分“如何创建 Django 应用程序并将其连接到数据库”来实现这种连接。 您正在使用基于 Unix 的操作系统,最好是 Ubuntu 20.04 云服务器,因为这是我们测试过的系统。如果您想在类似的环境中设置 Django,请参阅我们的教程,“如何在 Ubuntu 20.04 上安装 Django 并设置开发环境”。 由于本教程主要涉及 Django 模型,因此即使您的设置有所不同,您也可以继续学习。 第 1 步 – 创建 ..
介绍 Nginx 是世界上最受欢迎的 Web 服务器之一,负责托管互联网上一些最大和流量最高的站点。在大多数情况下,它比 Apache 更资源友好,并且可以用作 Web 服务器或反向代理。 在本指南中,我们将解释如何在 Ubuntu 20.04 服务器上安装 Nginx。有关本教程的更详细版本,请参阅如何在 Ubuntu 20.04 上安装 Nginx。 第 1 步 – 安装 Nginx 由于 Nginx 在 Ubuntu 的默认存储库中可用,因此您可以使用apt打包系统安装它。 更新您的本地包索引: sudo apt update 安装 Nginx: sudo apt install nginx 步骤 2 – 调整防火墙 如果您遵循先决条件服务器设置教程,那么您已启用 UFW 防火墙。ufw使用以下命令检查可用的应用程序配置文件: sudo ufw app list OutputAvailable applications: Nginx Full Nginx ..
介绍 颜色渐变采用起始颜色和位置以及结束颜色和位置。然后它执行颜色之间的过渡。考虑到色彩理论,它们可以使应用程序在视觉上比普通设计更有趣。 在本文中,您将使用BoxDecoration‘s LinearGradient和gradient_app_barpackage将渐变应用于 Flutter 应用程序。 先决条件 要完成本教程,您需要: 下载并安装Flutter。 下载并安装Android Studio 或 Visual Studio Code。 建议为您的代码编辑器安装插件: Flutter和Dart为 Android Studio 安装的插件。 Flutter 为 Visual Studio Code 安装的扩展。 本教程通过 Flutter v1.22.2、Android SDK v30.0.2、Android Studio v4.1 验证。 步骤 1 — 设置项目 为 Flutter 设置环境后,您可以运行以下命令来创建新应用程序: flutter create flutter_gradient_example 导航到新的项目目录: cd flutter_gradient_example 使用flutter create将生成一个演示应用程序,该应用程序将显示单击按钮的次数。 第 2 步 – 使用 LinearGradient ..
作者选择了公共利益软件 (SPI)来接受捐赠,作为Write for DOnations计划的一部分。 介绍 通常,基于 Linux 的服务器不会预装图形用户界面 (GUI)。每当您想在实例上运行 GUI 应用程序时,典型的解决方案是采用虚拟网络计算 (VNC)。不幸的是,VNC 解决方案可能缓慢且不安全;许多还需要大量的手动配置。相比之下,X2Go提供了一个可工作的“云桌面”,具有始终在线、可远程访问且易于扩展的计算系统以及快速网络的所有优势。与许多 VNC 解决方案相比,它也更灵敏、更安全。 在本教程中,您将使用 X2Go 创建一个可以远程访问的XFCE桌面环境。如果您在个人计算机上安装了 Ubuntu 18.04 和 XFCE 环境(几乎与Xubuntu设置相同),则此云桌面将包含相同的实用程序。 本教程中描述的设置在以下情况下很有用: 您需要访问基于 Linux 的操作系统,并带有桌面环境,但无法将其安装在您的个人计算机上。 您在多个位置使用多台设备,并希望获得具有相同工具、外观、文件和性能的一致工作环境。 您的 Internet 服务提供商为您提供的带宽非常少,但您需要访问数十或数百 GB 的数据。 长时间运行的作业会使您的本地计算机数小时或数天不可用。想象一下,您必须编译一个大型项目,这将在您的笔记本电脑上花费 8 小时。在您的项目编译期间,您将无法观看电影或做任何非常耗费资源的事情。但是,如果您在服务器上运行该作业,现在您的计算机可以自由执行其他任务。 您正在与一个团队合作,他们有一台共享计算机可以访问以在项目上进行协作,这将使他们受益。 先决条件 在开始本教程之前,您需要: 具有 2GB 或更多 RAM 的 Ubuntu 18.04 x64 实例。2GB 是最小的,但是如果您计划运行内存占用很大的应用程序,那么 4GB 或更多的服务器是理想的选择。如果您愿意,可以使用DigitalOcean Droplet。 具有sudo权限和 SSH 密钥的用户。按照本指南开始:使用 ..
内容交付网络 (CDN) 是一组地理分布的服务器,经过优化以向最终用户交付静态内容。这种静态内容几乎可以是任何类型的数据,但 CDN 最常用于传送网页及其相关文件、流视频和音频以及大型软件包。 CDN 由位于不同位置的多个存在点 (PoP) 组成,每个存在点由多个边缘服务器组成,这些服务器 缓存来自源或主机服务器的资产。CDN 将用户请求路由到最近的边缘服务器,然后边缘服务器为用户提供适当的内容。但是,如果边缘服务器没有缓存资产或缓存资产已过期,CDN 将从附近的另一个 CDN 边缘服务器或您的源服务器获取并缓存最新版本。 这允许地理上分散的用户最大限度地减少接收静态内容所需的跳数,直接从附近边缘的缓存中获取内容。结果是显着减少了延迟和数据包丢失,缩短了页面加载时间,并大大减少了源基础架构的负载。 有关 CDN 的更多资源,请访问: 使用 CDN 加速静态内容交付 如何使用 DigitalOcean Spaces CDN 加速 WordPress 资产交付 我们的缓存相关教程、问题和其他教育资源的完整列表可以在我们的CDN 标记页面�..
介绍 在本指南中,您将通过 DigitalOcean 的管理面板创建一个 Ubuntu 20.04 服务器并将其配置为使用您的 SSH 密钥。设置好服务器后,您可以使用它来部署应用程序和网站。 本教程是云课程简介 的一部分,它指导用户完成将应用程序安全部署到云的所有步骤。如果您正在搜索有关 DigitalOcean Droplet 的一般文档,请访问我们的产品文档如何从 DigitalOcean 控制面板创建 Droplet。 先决条件 在开始本指南之前,您需要具备以下条件: 对命令行有一定的了解。如果您想了解或复习命令行,可以访问我们的Linux 命令行入门。 SSH 密钥以启用与您的服务器的安全连接。要通过命令行设置 SSH 密钥,您可以按照我们的指南如何在 Ubuntu 20.04 上设置 SSH 密钥。 用于设置 DigitalOcean Droplet 的信用卡或 PayPal 帐户。请注意,最小的 Droplet 产品可用于本教程,其每月订阅费用可在我们的定价页面上找到。用户可以随时取消他们的 Droplet 服务。 注意:符合条件的学生可以通过GitHub Student Developer Pack注册获得 50 美元的 Digital Ocean 免费积分。 步骤 1 — 创建 DigitalOcean 帐户 ..
我们介绍了使用CSS 进行剪辑时的clip-path属性的使用,因此我们现在讨论遮罩是很自然的。与剪裁相反,在剪裁中,图像或元素的一部分要么完全不可见,要么完全可见,通过遮罩,我们可以隐藏或显示具有不同不透明度级别的图像部分。 CSS 中的遮罩是使用mask-image属性完成的,并且必须提供图像作为遮罩。图像蒙版中 100% 黑色的任何内容都完全可见,任何 100% 透明的内容都将被完全隐藏,中间的任何内容都会部分遮住图像。CSS 中的线性和径向渐变是生成的图像,因此它们可以用作图像蒙版。使用遮罩元素的SVG也可以用作图像遮罩。让我们用具体的例子来看看图像蒙版的 3 种可能性: 使用渐变遮罩 让我们首先使用一个从透明到黑色的简单线性渐变。第一张图像是我们的默认起始图像,第二张图像应用了我们的线性渐变作为掩码图像值: 这是此处使用的 CSS 规则: .mask1 { -webkit-mask-image: linear-gradient(to bottom, transparent 25%, black 75%); mask-image: linear-gradient(to bottom, transparent 25%, black 75%); } 下面是两个有趣的效果示例,可以通过使用渐变进行遮罩来实现这些效果: 以及这两个渐变蒙版的 CSS 规则: .mask2 { -webkit-mask-image: radial-gradient(circle at 50% 60%, black 50%, rgba(0, 0, 0, 0.6) 50%); mask-image: radial-gradient(circle at 50% ..