当前位置:网站首页 > 编程语言 > 正文

spss26永久许可证代码(spss19永久许可证代码)



原文:CirecleCI Blog

协议:CC BY-NC-SA 4.0

原文:https://circleci.com/blog/deploy-aws-lambda-cdk/

本教程涵盖:

  1. 定义您的 AWS CDK 应用程序和 AWS Lambda 处理程序
  2. 手动构建和部署 CDK 应用程序
  3. 自动化部署

这是由两部分组成的系列教程的第一部分。您还可以学习如何使用 AWS CDK 来自动部署带有 Lambda 授权器的 REST APIs】。

当您构建基于云的应用程序时,您可以选择使用云提供商提供的 GUI(图形用户界面)或 CLI(命令行界面)来部署资源。这种方法在只有少量资源的情况下可以很好地工作,但是随着应用程序复杂性的增加,手动管理基础设施会变得很困难。

您可以使用像 Terraform 或 AWS CDK 这样的解决方案,让您以编程方式管理基础设施代码,而不是手动部署云资源。借助富有表现力的面向对象编程语言,AWS CDK 允许您使用现有的技能和工具来开发云基础设施,从而加快开发过程。使用 AWS CDK 消除了对上下文切换的需要,因为您可以使用相同的 IDE 和工具来定义基础结构代码和运行时代码。AWS CDK 还使您的代码与 git 工作流的集成更加容易,并允许您使用 CI/CD 管道来自动化部署过程。

在本教程中,我将指导您使用 AWS 云开发工具包(CDK)来部署一个与 AWS S3 和 AWS DynamoDB 交互的 AWS Lambda 函数。

对于本教程,您需要在系统上设置 Node.js 来定义您的 AWS CDK 应用程序和 AWS Lambda 处理程序。您还需要在您的系统上安装 AWS CLI 和 AWS CDK CLI,以便您可以配置 AWS 凭据并手动构建您的 CDK 应用程序。您将需要一个用于部署应用程序的 AWS 帐户和一个用于自动化部署的 CircleCI 帐户。

下面是跟随本教程所需的所有东西的列表:

我们的教程是平台无关的,但是使用 CircleCI 作为例子。如果你没有 CircleCI 账号,请在 注册一个免费的

首先,为您的 CDK 项目创建一个新目录,并导航到其中。

 
  

接下来,使用 CDK CLI 运行命令,这将使用 TypeScript 创建一个新的 CDK 项目。参数指定初始化项目时使用的模板。

 
  

执行此命令会创建一个新的 CDK 项目,其中包含几个文件。在本教程的后面,我将解释其中一些文件的重要性以及它们中定义的结构。

注意: CDK 支持 TypeScript、Python、Java、C#等多种语言。你可以选择使用任何你觉得舒服的语言。

在本节中,您将使用 Node.js 定义一个 AWS Lambda 函数。Lambda 函数演示了如何将 CSV 文件保存到 AWS S3 并向 DynamoDB 表中添加一个条目。

首先,在 CDK 项目的根目录下创建一个目录。在目录中,添加一个用于 lambda 处理程序的文件和一个用于定义依赖关系的文件。

在文件中,定义 NodeJS 项目的名称,并添加一些将被我们的处理程序使用的依赖项。以下是该文件应该包含的内容:

 
  

添加完依赖项后,运行目录中的命令来安装软件包。

接下来,在文件中,定义一个空函数。在本教程的后面部分,您将实现这个函数。

 
  

现在,您可以开始实施了。创建一个包含虚拟数据的 CSV 文件,并将其保存为临时文件。将这段代码添加到您之前创建的文件的底部:

 
  

接下来,在文件中定义另一个函数,它采用本地文件路径和 S3 对象路径,并将文件上传到 AWS S3。

 
  

该函数读取本地文件的内容,并使用 SDK 的函数上传文件。

最后,添加您在文件中创建的空 AWS Lambda 处理程序的实现。Lambda 处理程序在其事件参数中接收。处理程序首先将 CSV 文件上传到 AWS S3,然后用和上传对象的 S3 路径更新 DynamoDB 表。

 
  

处理程序使用 SDK 的方法在 DynamoDB 表中插入一个新项目。

现在您已经定义了 AWS Lambda 处理程序,您可以定义将在您的应用程序中使用的所有 CDK 构造。AWS CDK 构造是云组件,封装了配置细节和使用一个或多个 AWS 服务的粘合逻辑。CDK 为最常用的 AWS 服务提供了一个构造库。

使用模板生成 CDK 项目会创建文件。这个文件包含了类。使用此文件定义 CDK 构件。

 
  

接下来,检查您的应用程序需要什么。这些任务将在本教程的下一节中描述。

  • 创建一个 AWS S3 存储桶来保存由 AWS Lambda 函数上传的 CSV 文件。
  • 创建一个 DynamoDB 表,其中的和对象键将由 AWS Lambda 函数更新。
  • 定义一个将使用 S3 和 DymamoDB 表的 AWS Lambda 函数。确保 AWS Lambda 函数将和作为参数。
  • 确保 AWS Lambda 函数有足够的权限对 S3 存储桶和 DymamoDB 表执行操作。

定义 AWS S3 时段

要定义一个 AWS S3 桶,需要添加一个 CDK 构造,在文件中定义的内创建一个 AWS S3 桶。AWS S3 时段名称在所有 AWS 帐户中都是唯一的,因此您需要为您的时段提供一个唯一的名称。

 
  

此时,如果您尝试部署堆栈,它将简单地部署一个 CloudFormation 应用程序,并为您创建一个 AWS S3 存储桶。

定义一个 DynamoDB 表

要定义 DynamoDB 表,添加一个 CDK 构造,在文件中定义的内创建一个 DynamoDB 表。

 
  

表名在您的 AWS 帐户中必须是唯一的。如果您的 AWS 帐户中已经有一个名为的表,那么在定义 DynamoDB 构造时更新。

注意,您已经将定义为表的主分区键。这将确保值在表中是唯一的。

定义 AWS Lambda 函数

要定义一个 AWS Lambda 函数,添加一个 CDK 构造,在文件中定义的内创建一个 AWS Lambda 函数。AWS Lambda 函数将使用 NodeJS 运行时,并将使用我们在目录中定义的代码。此外,S3 桶名称和 DynamoDB 表名称将作为环境变量传递给该函数。

 
  

这个代码片段指定 AWS Lambda 函数的超时是 30 秒。Lambda 函数的最长执行时间可达 15 分钟。

授予 AWS Lambda 函数权限

最后,授予 AWS Lambda 函数足够的权限。Lambda 函数需要对 S3 对象的权限。通过在的构造函数中的现有代码后添加以下构造来授予这些权限:

 
  

Lambda 函数还需要对 DynamoDB 表的读/写权限。在的构造函数中的现有代码后添加以下构造:

 
  

您可以使用 AWS CDK IAM 模块定义更复杂的 IAM 策略。

现在,您已经在堆栈中定义了 CDK 构造,您可以将应用程序部署到 AWS 帐户。首先手动部署项目,确保一切正常。然后,一旦您验证了它的功能,您就可以使用 CircleCI 自动化部署。

在第一次部署项目之前,您需要使用 CLI 引导项目。应用程序的引导提供了 AWS CDK 部署应用程序可能需要的资源。这些资源可能包括用于存储部署相关文件的 S3 存储桶和用于授予部署权限的 IAM 角色。从项目的根目录发出以下命令:

 
  

确保您在系统上配置了 AWS 凭据。如果配置了凭据,CDK 将自动使用它。

接下来,将应用程序部署到 AWS 帐户。

 
  

执行该命令后,可能会提示您确认将应用于您的帐户的 IAM 角色/策略更改。如果您的应用程序设置正确,并且您的系统具备所有的先决条件,那么部署应该会成功。

现在您已经使用命令行手动部署了 CDK 应用程序,您可以自动化工作流了。自动化工作流意味着,每当您将代码推送到主分支时,基础结构的变更可以被自动打包和部署。您需要完成以下任务:

  • 更新
  • 更新 NPM 脚本
  • 添加配置脚本
  • 创建 CircleCI 项目
  • 设置环境变量

更新。gitignore

由命令生成的代码包含一个默认忽略所有文件的文件。用以下代码片段替换的内容:

 
  

更新 NPM 脚本

CircleCI 部署配置使用 NPM 脚本来执行和命令。将这些脚本添加到根级文件中:

 
  

添加配置脚本

首先,在包含 CI 管道配置文件的项目根目录中添加一个脚本。将以下代码片段添加到其中:

 
  

CI 脚本使用 CircleCI 的 aws-cli orb 来设置 aws 配置——访问密钥和密码。作业有几个不同的步骤,安装软件包,计算,并部署变更。步骤只在拉请求时执行,并在 PR 上添加一个总结基础设施变更的注释。

命令检查分支并仅在或环境中部署。命令执行文件中定义的脚本。

管道配置将负责构建、打包和部署 CDK 堆栈到指定的 AWS 帐户。提交更改并将它们推送到 Github 存储库。

注意: 一定要把换成自己的地区,如果不一样的话。

为应用程序创建一个 CircleCI 项目

接下来,使用 CircleCI 控制台将存储库设置为 CircleCI 项目。在控制台的项目选项卡上,搜索 GitHub repo 名称。点击为您的项目设置项目

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

系统将提示您手动添加新的配置文件或使用现有的配置文件。您已经将所需的配置文件推送到代码库,所以选择最快选项,并输入托管您的配置文件的分支的名称。点击设置项目继续。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

完成设置将自动触发管道。管道将在第一次运行时失败,因为我们还没有定义环境变量。

设置环境变量

从项目仪表盘中点击项目设置,然后点击环境变量选项卡。点击添加环境变量。您应该已经创建了 AWS 访问密钥和密码,如本教程的先决条件中所述。将这些值分别作为和相加。另外,将的环境变量设置为您希望部署应用程序的地区。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

配置好环境变量后,再次运行管道。这一次它应该会成功构建。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本教程向您展示了 AWS CDK 如何简化基础设施相关代码的管理。借助 AWS CDK,您可以使用自己熟悉的语言为应用程序提供资源。AWS CDK 允许您在定义应用程序时使用逻辑语句和面向对象的技术。此外,AWS CDK 使用行业标准协议使基础设施代码可测试。

本教程向您展示了定义 AWS Lambda 函数的一个非常常见的用例,该函数具有与其他 AWS 服务交互的包依赖关系。我希望您同意用所有 AWS 服务定义堆栈并使用这里概述的步骤授予它细粒度的权限是多么简单。你可以在 GitHub 上查看本教程中使用的完整的源代码。如果你想定义一个类似的堆栈,GitHub 项目也可以作为你的模板。


Vivek Kumar Maskara 是 JP 摩根的一名软件工程师。他喜欢写代码,开发应用程序,创建网站,并写关于他的经历的技术博客。他的简介和联系方式可以在maskaravivek.com找到。

阅读更多 Vivek Maskara 的帖子

原文:https://circleci.com/blog/deploy-django-apps-to-aws/

本教程涵盖:

  1. 在 AWS 上设置 Django 应用程序
  2. 使用弹性 Beanstalk 命令行界面
  3. 创建连续部署管道

您的软件开发团队有大量的工具可供他们使用。一些旧工具正在以新的方式使用,这激发了更多新工具的产生。例如,JavaScript 已经从一种用于增加网站交互性的语言发展成为一种满足前端和后端需求的全栈语言。JavaScript 为 Express、Nest.js 和许多其他技术铺平了道路。

正如开发团队现在可以用 JavaScript 构建 API 一样,他们也可以构建由 Python 支持的 web 应用程序。这得到了 Flask 和 Django 等成熟框架的支持。越来越多的工具提供商正在他们的服务中增加对基于 Python 的应用程序的支持。

在本文中,我将指导您将 Django 应用程序部署到 AWS Elastic Beanstalk。我们将使用 circle ciAWS Elastic Beanstalkorb 来处理认证和部署。

AWS Elastic Beanstalk 帮助您在 Amazon 云中部署和管理应用程序,而不必了解运行这些应用程序的基础设施。弹性 Beanstalk 降低了管理复杂性,而不会限制选择或控制。您只需上传您的应用程序,Elastic Beanstalk 就会自动处理容量供应、负载平衡、伸缩和应用程序健康监控等细节。

除了对 Django 和 Python 有一个基本的了解之外,您还需要这些东西来从本教程中获得最大的收益:

我们的教程是平台无关的,但是使用 CircleCI 作为例子。如果你没有 CircleCI 账号,请在 注册一个免费的

通过运行以下命令克隆示例 Django 项目:

 
   

接下来,转到上一个命令创建的新文件夹的根目录。通过运行以下命令设置项目:

 
   

默认情况下,您的申请将送达。您可以在该端点查看 JSON 响应。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

既然您已经在本地运行了应用程序,那么回顾一下您的部署策略是一个好主意。除了包含配置文件来设置 CircleCI 的部署之外,不需要对项目代码进行任何更改。

以下是部署策略步骤的列表:

  1. 将应用程序部署到 Elastic Beanstalk
  2. 创建一个配置文件以在 CircleCI 上构建应用程序
  3. 将项目推送到 GitHub 上的存储库中
  4. 在 CircleCI 建立项目
  5. 提供 Amazon 凭证并使用 AWS Elastic Beanstalk orb 进行身份验证

在项目目录中,创建一个名为的新目录。

 
   

在目录中,创建一个名为的新文件,并将其添加到:

 
   

WSGIPath 从包含您的 wsgi.py 脚本的目录开始。它将用于启动您的应用程序。

接下来,使用以下命令初始化您的 EB CLI 存储库:

 
   

如果您在安装时没有提供访问 id密钥,您将看到类似如下的错误:

 
   

提供有效的和来完成设置过程。如果您还没有,可以按照下一节中的步骤操作。

添加具有编程访问权限的用户

转到 AWS 添加用户页面。选择用户名和 AWS 访问类型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

选择访问键-编程访问,使用 CLI 访问您的 Beanstalk 环境。

接下来,选择用户的权限。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

前面的截图显示了在 AWS Elastic Beanstalk 上管理应用程序的最低要求。

点击下一个两次,创建新用户。

您将收到一条成功消息以及您的用户凭据。该页面只显示一次,因此,记下访问密钥 ID秘密访问密钥。这些将在本教程的后面使用。您可以下载包含凭据的 CSV 文件。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

使用这些凭证来验证并继续部署过程。

创造新环境

使用以下命令创建新环境:

 
   

这创建了一个名为的弹性 Beanstalk 环境;大约需要五分钟。该过程完成后,您可以通过运行以下命令找到新环境的域:

 
   

域名是属性的值。

一旦应用程序被部署,将属性添加到中的设置中。

 
   

接下来,部署变更。因为您使用 git 进行版本控制,所以您需要在运行之前提交您的更改。

 
   

现在,再次运行命令。这一次,健康状态应该是绿色。将属性粘贴到您的浏览器中,以查看您的 API。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在项目的根目录下,创建一个名为的新文件夹。在该文件夹中,创建一个名为的新文件,并添加以下内容:

 
   

这个配置使用 CircleCI 提供的两个 orb。 orb 提供了对 Python 环境(安装了 pip)的访问,该环境用于在将更新部署到 AWS 之前对其进行测试。所有这些都发生在工作中。 orb 将变更部署到您在前面的步骤中创建的环境中。

在工作流完成运行作业之后,来自 orb 的作业部署变更。键确保任务首先运行。为作业指定了应用程序名称、环境名称和平台版本。名为的上下文被传递给作业。您将在本教程的后面部分创建此上下文。

提交并将您的更改推送到 git:

 
   

从您的 CircleCI 仪表板,进入组织设置页面。选择上下文,然后点击创建上下文按钮。为您的上下文输入一个唯一的名称。您的上下文出现在安全性设置为的列表中。这意味着组织中的任何人都可以在运行时访问该上下文。正如本教程的配置中所指定的,上下文名称应该是。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

接下来,选择上下文。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击添加环境变量按钮,输入变量名和值。然后点击添加变量按钮保存。上下文需要 3 个环境变量:

的值在项目的文件中指定,在部分下。

接下来,您需要在 GitHub 上建立一个存储库,并将项目链接到 CircleCI。查看将项目推送到 GitHub 以获取指示。

登录您的 CircleCI 帐户。如果你注册了你的 GitHub 账户,你所有的库都可以在你项目的仪表盘上看到。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击项目旁边的设置项目

系统将提示您编写新的配置文件,或者在项目中使用现有的配置文件。选择现有的分支,并输入您的代码在 GitHub 上所在的分支的名称。点击设置项目。

您的第一个工作流将开始运行并成功完成。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

要确认您的工作流程是否成功,您可以使用属性在浏览器中打开新部署的应用程序。

在本教程中,我向您展示了如何使用 GitHub、CircleCI 和 AWS Elastic Beanstalk 为 Django API 设置 CI/CD 管道。使用您在这里学到的知识,您可以实现 Python 项目自动化部署的最佳实践。这为您的团队创造了机会,如果他们觉得他们不能在自动化部署的项目中使用他们选择的编程语言。

本教程的全部代码可以在 GitHub 上找到。


Oluyemi 是一名拥有电信工程背景的技术爱好者。出于对解决用户日常遇到的问题的浓厚兴趣,他冒险进入编程领域,并从那时起将他的问题解决技能用于构建 web 和移动软件。Oluyemi 是一名热衷于分享知识的全栈软件工程师,他在世界各地的几个博客上发表了大量技术文章和博客文章。作为技术专家,他的爱好包括尝试新的编程语言和框架。

阅读更多 Olususi Oluyemi 的帖子

原文:https://circleci.com/blog/deploy-dockerized-dotnet-core-to-azure/

本教程涵盖:

  1. 对 ASP.NET 核心应用程序进行归档
  2. 创建连续部署配置来构建和部署容器映像
  3. 部署。NET 核心应用程序到 Azure 容器注册表

在本教程中,您将学习如何使用 Docker 构建一个定制的 ASP.NET 核心容器,并在 Azure Container Registry 上托管容器映像,Azure Container Registry 是微软拥有的一个平台,允许您在私有注册表中构建、存储和管理容器映像。

在本教程结束时,您将能够应用在此获得的知识,将 Microsoft Azure registry 上的容器映像与 web app 服务链接起来,并启动您的应用程序。您将了解如何确保由于对您的代码库所做的更改而构建的每个新容器图像将自动更新应用程序。

为此,我们将:

  • 在Azure Container Registry(ACR)上创建一个注册表来托管我们的容器映像,并获取访问密钥
  • 为项目创建一个容器映像,并在本地构建和运行该容器
  • 将 Docker 映像发布到创建的 Azure 容器注册中心
  • 创建一个 Azure web 应用程序,并将其与发布的容器图像链接
  • 启用连续部署,并创建一个配置文件,以便在 CircleCI 上构建和部署我们的容器映像
  • 将项目推送到 GitHub,并与 CircleCI 连接
  • 将容器映像部署到 Azure 容器注册中心

本教程需要以下内容:

我们的教程是平台无关的,但是使用 CircleCI 作为例子。如果你没有 CircleCI 账号,请在 注册一个免费的

在本节中,您将从 GitHub 上的存储库中克隆本教程的演示项目。从终端运行:

 
    

一旦该过程完成,您将把项目下载到一个文件夹中。我们将继续建立一个容器注册中心来托管将为我们的项目生成的容器映像。

Azure 容器注册表存储了该项目的图像。要创建它,请转到 Azure 门户主页,然后单击创建资源。然后选择集装箱>集装箱登记处。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在注册表创建页面上,我使用了名称。你可以使用任何你想要的名字;只是记得在你跟随教程的时候用它来代替我的。接下来,输入注册表所需的详细信息。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击审核+创建。您将被重定向到可以查看注册表信息的页面。然后,点击创建来设置一个新的注册中心实例。

从注册表中获取访问密钥

在本节中,您将在 Azure 容器注册表中启用 Docker 访问。这对于部署过程至关重要,因为它允许您通过 CLI 远程登录 Azure container registry 并向其推送映像。

要启用 Docker 访问,打开注册表,进入设置部分,点击访问键

这将显示注册表名称和登录服务器。使用切换按钮启用管理员用户。然后,复制用户名和任何密码,最好是第一个。请将它放在手边,因为在教程的后面会用到它。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

接下来,您将使用已经包含在克隆项目中的定制 Dockerfile 文件来构建一个容器映像。Dockerfile 具有安装所有项目依赖项、构建项目并运行它所需的命令。转到应用程序的根目录,打开 docker 文件,并确保它包含以下内容:

 
    

上面的文件中指定了两个不同的阶段:

  • 采用。NET SDK 来安装任何需要的依赖项,并在将项目发布到名为的文件夹之前编译项目。
  • 使用ASP.NET 核心运行时映像从指定的工作目录运行应用程序,在本例中是。

这有时被称为多级 Dockerfile 。它将开发和生产指令合并到一个 Dockerfile 文件中,降低了流程的复杂性。

在本节中,您将使用上一步中的注册表 URL 来构建项目的 Docker 映像。运行以下命令:

 
    

注意: 用您为注册表 URL 和登录服务器详细信息选择的名称替换和。

基于应用程序和 Dockerfile 文件的内容,这个命令将构建容器映像。因为它使用了您之前创建的注册中心名称和登录服务器,所以它可以很容易地将容器映像映射到 Azure 容器注册中心。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在您已经构建了本地版本的容器映像,通过运行以下命令确保它能够工作:

 
    

该命令在后台运行容器,将容器 ID 打印到终端,并在端口上运行应用程序。请访问查看。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

下一步是登录 Azure 容器注册中心,并将容器映像推送到注册中心。从终端运行:

 
    

如果需要,用您的注册表 URL 替换。然后,用适当的值替换以下占位符:

  • 是容器注册表的用户名。
  • 是容器注册表的密码。

登录后,通过运行以下命令将映像推送到 Azure 注册表:

 
    

该映像将被部署到 Azure registry。

接下来,您需要创建一个 Azure Web App ,并将其与容器映像连接。进入 Azure 门户主页,点击创建资源

然后选择Containers>Web App for Containers来创建一个新的 Web App 服务实例。

您将被重定向到创建 Web 应用程序页面。选择 Azure 订阅和资源组。如果没有资源组,请创建一个新的资源组。确保选择了默认值。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Docker 选项卡中,选择图像源及其 Docker 图像。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击审核+创建。您将被重定向到一个页面,在该页面上您可以查看 web 应用程序的详细信息。点击创建来设置一个新的 Azure web 应用。

您可以访问 URL 来查看部署到 Azure 的应用。

每次你的 Docker 图片更新时,你都想让应用程序接收更新。为了确保这一点,您需要为 web app 服务启用连续部署。

单击 web 应用程序名称,然后转到部署部分。点击部署中心,然后向下滚动设置选项卡。通过选择单选按钮来打开连续部署。点击保存

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

选择连续部署后,web 应用程序将触发的新部署。每次在 Azure Container Registry 上重新构建 Docker 映像时,都会调用. NET Core 应用程序。

下一步是为 CircleCI 添加管道配置。该配置将自动测试并运行命令来构建容器映像并将其推送到 Azure 容器注册中心。

在项目的根目录下,打开文件并用以下内容更新它:

 
    

这些脚本从 CircleCI 中拉入 Docker orb。他们使用它的执行器来安装 Docker 构建所需的工具,并将映像推送到 Azure 容器注册中心。

在 GitHub 上建立一个资源库,并将项目链接到 CircleCI。查看将您的项目推送到 GitHub 以获取指导。

登录您的 CircleCI 帐户。如果你注册了你的 GitHub 账户,你所有的库都可以在你项目的仪表盘上看到。搜索项目。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击设置项目按钮。将提示您是否已经在项目中定义了 CircleCI 的配置文件。输入分支名称(对于本教程,我们使用)。点击设置项目按钮完成该过程。

此构建将失败,因为它需要 Azure 容器注册表凭据,而您尚未添加它们。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

要解决凭证问题,请单击项目设置按钮,然后单击环境变量。添加这两个新变量:

  • 是容器注册表的用户名
  • 是容器注册表的密码。

点击从开始重新运行工作流程。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

您的工作流将成功运行。您可以在本地对代码库进行一些更改,并将其推送到 GitHub,以进一步测试持续部署流程。

就是这样!

去网址查看直播 app: 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意: 请注意,您在 Microsoft Azure 上的 URL 应该与上面显示的不同。

您刚刚学习了如何轻松地将 ASP.NET 核心应用程序 dockerize,将容器映像部署到 Microsoft Azure Container Registry,并在 web 服务上启动它。

有了 Azure web app 上启用的持续部署,你就可以确信,一旦你将新版本的容器映像推送到注册中心,应用就会一直自动更新。

我希望本教程对你有所帮助。访问样例库获取该项目的完整源代码。


Oluyemi 是一名拥有电信工程背景的技术爱好者。出于对解决用户日常遇到的问题的浓厚兴趣,他冒险进入编程领域,并从那时起将他的问题解决技能用于构建 web 和移动软件。Oluyemi 是一名热衷于分享知识的全栈软件工程师,他在世界各地的几个博客上发表了大量技术文章和博客文章。作为技术专家,他的爱好包括尝试新的编程语言和框架。

阅读更多 Olususi Oluyemi 的帖子

原文:https://circleci.com/blog/deploy-dotnetcore-azure/

  1. 创建一个 Azure Web 应用程序和一个配置文件来构建它
  2. 在 GitHub 和 CircleCI 上设置项目
  3. 将项目部署到 Azure Web 应用程序

自动化新 web 应用程序的部署和特性更新的发布可以提高开发团队的生产力和效率。自动化还最大限度地减少甚至消除了重复的手动部署,手动部署会在开发过程的这一关键部分引入人为错误的风险。自动化是一个有价值的目标,但是开发人员使用的各种框架和语言会使自动化部署成为一个挑战。

微软 Azure Web Apps 是一个平台即服务 (PaaS) ,让你发布运行在多个框架上、用不同编程语言编写的 Web 应用。然后,您可以使用 CI/CD 工具来构建、测试和部署 web 应用程序,以获得更快的发布周期、更高效的开发和更高质量的代码。

在本教程中,我将向您展示如何建立一个连续的部署管道来将 ASP.NET 核心应用程序部署到 Azure Web App 服务。我们将使用 Azure CLI orb 进行身份验证,并直接部署我们的应用程序。

您将需要这些来从本教程中获得最大收益:

我们的教程是平台无关的,但是使用 CircleCI 作为例子。如果你没有 CircleCI 账号,请在 注册一个免费的

您的第一步是使用 Git 克隆一个用 ASP.NET 核心构建的 API。运行以下命令:

 
     

接下来,转到上一个命令创建的新文件夹的根目录。运行应用程序:

 
     

您可能会得到一个关于框架版本兼容性的错误。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

默认情况下。NET framework 应用程序在构建它的版本上运行。演示应用程序是用 ASP.NET 核心版本构建的。如果您运行的是不同的版本,将会出现该错误。使用以下命令找出您的计算机上安装的版本:

 
     

如果输出的版本不是版本,您可以修复它。转到应用程序的根目录,打开文件。像这样更新:

 
     

将替换为之前在您的终端上显示的版本。然后,用命令再次运行项目。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

该应用将于上线。导航到这个端点来查看 JSON 响应。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

既然您已经在本地运行了应用程序,那么回顾一下您的部署策略是一个好主意。除了包含配置文件来设置 CircleCI 的部署之外,不需要对项目代码进行任何更改。

按照时间顺序,我们将:

  1. 创建 Azure web 应用程序
  2. 创建一个配置文件以在 CircleCI 上构建应用程序
  3. 将项目推送到 GitHub 上的存储库中
  4. 在 CircleCI 建立项目
  5. 提供 Azure 凭据并使用 Azure CLI orb 进行身份验证
  6. 使用 Git 设置部署 URL
  7. 将我们的项目部署到 Azure Web App

如果您还没有帐户,在 Azure 上创建一个帐户。然后转到你的 Azure 门户仪表板,点击创建资源来创建一个新的服务实例。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

接下来,从热门列表中点击 Web 应用

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

您将被重定向到创建 Web 应用程序页面。选择 Azure 订阅和资源组。如果尚未创建新的资源组,请创建一个。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在,为您的 web 应用程序输入一个友好的、唯一的名称。对于本教程,我使用了。如上图所示,更新其他字段。

点击审核+创建,然后创建。Azure 正在设置 web 应用环境,请稍候。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一旦流程完成,您将拥有一个 web 应用程序来托管您的 ASP.NET 核心应用程序。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这一步,我们将使用 Windows orb 和 Azure CLI orb 为 CircleCI 创建管道配置。

首先,在项目的根目录下创建一个名为的文件夹。在新文件夹中,创建一个名为的文件。在新文件中,添加:

 
     

这种配置可能看起来有点复杂,所以我将尝试为您分解它。

首先,它定义并引入我们在这个项目中使用的 orb:

  • orb 用于安装、初始化和登录 Azure 命令行界面。Azure CLI 让您可以访问一组命令来创建和管理 Azure 资源。
  • orb 为您提供了构建 Windows 项目的工具,例如。Net 框架。

配置的下一部分指定了两个不同的作业:

作业使用执行器,它从 GitHub 中检查我们的项目,安装项目的依赖项,并将应用程序发布到一个名为的新的子文件夹中。这个作业的另一个步骤是,它使用工作区特性将数据从工作流中的特定作业移动到可能需要相同数据的后续作业。

在这种情况下,我们希望包含项目的已发布版本的文件夹在下一个作业中可用,而不需要重新构建项目。

作业使用来安装 Azure CLI,并提供认证 Azure 用户的步骤。然后,它会附加先前存储的文件夹。然后,该作业使用 Azure CLI 来配置将与我们的 Azure web 应用程序连接的 Git URL。

工作流的最后一部分指定在任务完成之前不应该运行。

下一步是在 GitHub 上建立一个资源库,并将项目链接到 CircleCI。查看将项目推送到 GitHub 以获取指示。

登录您的 CircleCI 帐户。如果你注册了你的 GitHub 账户,你所有的库都可以在你项目的仪表盘上看到。

点击项目旁边的设置项目

用您的资源组替换资源组。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

系统将提示您编写新的配置文件,或者在项目中使用现有的配置文件。选择现有的分支,并输入您的代码在 GitHub 上所在的分支的名称。点击走吧

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

您的第一个工作流将开始运行:

  • 工作会过去的
  • 将会失败

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

因为我们还没有指定 Azure 凭证,所以作业将会失败。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

要解决这个问题,创建一个 Azure 服务主体并添加输出作为环境变量。点击项目设置

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击左侧工具条上的环境变量按钮,创建这些变量:

  • 是存储服务主体的租户 ID 的环境变量的名称。
  • 是存储服务主体全名的环境变量的名称。
  • 是存储服务主体密码的环境变量的名称。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

了解如何使用 Azure CLI 创建 Azure 服务主体。

回到仪表板。点击从失败的重新运行工作流程。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当构建完成运行时,您可以查看输出。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这是为您自动生成的本地 URL,用于部署到您的 Azure web 应用。网址的格式是。

下一步是创建您的部署凭证并更新配置文件。请注意,部署凭据与 Azure 身份验证凭据不同。

在这一步中,您将更新配置文件,并使用 Git 部署到生成的 URL。首先,返回门户为部署创建一个新的凭证,这样 Git 就不会提示输入密码。

从侧面菜单栏中,点击部署中心,然后点击本地 Git / FTP 凭证。滚动到用户范围部分。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输入用户名或使用默认用户名。输入密码并再次输入以确认。

点击顶部的保存按钮。

将的内容替换为:

 
     

对配置文件的更新包括 Git,设置一个远程 URL 来引用我们之前生成的链接,并推送到 Azure。

用您之前在 Azure 中为本地 Git 创建的凭证替换和占位符。

注意: 如果您在密码中使用了任何特殊字符(如或),将会出现错误。为了防止这种错误,请使用与其等效的 HTML 编码引用。

快好了!再一次把你的代码推给 GitHub。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在访问您的应用程序。您的应用程序已部署。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

您和您的团队所使用的越来越多的框架和语言可能会阻止您迁移到完全自动化的部署过程。在本教程中,我们展示了您可以使用 Windows 和 Azure orbs 设置功能部署管道。该管道成功地将 ASP.NET 核心应用程序部署到 Azure Web Apps 托管平台。

与您的开发团队分享您的工作成果,开始关于用自动化取代手动部署的对话。即使部署一个复杂的应用程序也是可以完成的,更低的人为错误风险、更高的效率和更高质量的代码都是值得投资的。

我希望这篇教程对你有所帮助。完整的源代码可以在 GitHub 上找到。


Oluyemi 是一名拥有电信工程背景的技术爱好者。出于对解决用户日常遇到的问题的浓厚兴趣,他冒险进入编程领域,并从那时起将他的问题解决技能用于构建 web 和移动软件。Oluyemi 是一名热衷于分享知识的全栈软件工程师,他在世界各地的几个博客上发表了大量技术文章和博客文章。作为技术专家,他的爱好包括尝试新的编程语言和框架。

阅读更多 Olususi Oluyemi 的帖子

原文:https://circleci.com/blog/deploy-dotnetcore-heroku/

本教程涵盖:

  1. 设置示例 ASP.NET 核心项目
  2. 在 Heroku 上创建应用程序
  3. 配置您的 ASP.NET 部署管道

以其跨平台兼容性和优雅的结构而闻名,ASP.NET 核心是微软为构建现代网络应用而创建的开源框架。有了它,开发团队可以构建单一的 web 应用和任意大小和复杂度的 RESTful APIs。

得益于 CircleCI 改进的基础设施以及对 Windows 平台和技术的支持,为 ASP.NET 核心应用程序设置自动化部署流程变得更加容易。

本文将指导您将 ASP.NET 核心应用程序自动部署到 Heroku。

以下是您需要从本教程中获得最大收益的项目列表:

我们的教程是平台无关的,但是使用 CircleCI 作为例子。如果你没有 CircleCI 账号,请在 注册一个免费的

首先,您将从 GitHub 克隆一个用 ASP.NET 核心 MVC 构建的简单应用程序。为此,请输入以下命令:

 
      

这会将 starter 应用程序下载到您的开发文件夹中名为的文件夹中(或者您运行命令的位置)。

接下来,进入新克隆的应用程序并运行该应用程序:

 
      

您可能会得到一个关于框架版本兼容性的错误。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

发生此错误的原因是,默认情况下,. NET framework 应用程序在生成它的版本上运行。演示应用程序是用 ASP.NET 核心版本构建的。如果您运行的是不同的版本,将会出现该错误。通过运行以下命令,检查计算机上安装的当前版本:

 
      

如果输出的版本不是版本,您可以通过编辑应用程序根目录中的文件来修复它。像这样更新:

 
      

将替换为之前在您的终端上显示的版本。如果你有一个类似于的版本,你只需要在配置中添加。完成后,用再次运行项目。

导航至,打开默认主页。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里没发生什么事情。对 ASP.NET 核心应用程序默认主页上的内容做了一个小的修改。

现在,按下停止应用程序运行。

接下来您需要做的是在 Heroku 上创建一个新的应用程序。新的应用程序将托管和运行我们的 ASP.NET 核心应用程序。前往 Heroku 仪表盘开始。点击新增,然后点击新增 App 。在表单中填写您的应用程序和您所在地区的名称。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后,点击创建 app 按钮。您将被重定向到新创建的应用程序的部署视图。

正如在 Heroku Buildpacks 页面上所详述的,Buildpacks 扩展了 Heroku 的构建系统,以支持您选择的任何编程语言。构建包也使二进制包对运行时可用。

为了在 Heroku 上成功运行这个项目,您需要添加一个 buildpack。为此,点击设置选项卡。在构建包部分,点击添加构建包按钮。

这将打开一个表单,您可以在其中选择一个官方支持的构建包,或者为您的构建包提供一个 URL。目前,Heroku 还没有官方支持的 ASP.NET 核心构建包。没关系,您可以提供. NET 核心构建包的 URL。将粘贴到输入栏,点击保存更改

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们最不需要的就是 API 密钥。您将使用此密钥和应用程序名称将您的 ASP.NET 部署管道连接到 Heroku。要获取您的 API 密钥,请打开帐户设置页面。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

滚动到 API 键部分。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击显示按钮,复制 API 密钥。将它保存在您以后可以轻松找到的地方。

接下来,我们需要为 CircleCI 添加 ASP.NET 部署管道配置。对于这个项目,管道将由安装项目的依赖项和为生产编译应用程序的步骤组成。

在项目的根目录下,创建一个名为的文件夹。在该文件夹中,创建一个名为的文件。在新创建的文件中,添加以下配置:

 
      

这个配置引入了 Heroku orb ,它自动让我们访问一组强大的 Heroku 任务和命令。其中一个任务是,它直接从你的 GitHub repo 将你的应用程序部署到你的 Heroku 账户。它还引入了 Windows orb ,为您提供了构建 Windows 项目的工具,如通用 Windows 平台(UWP)应用程序、. NET 可执行文件或特定于 Windows 的项目(如。NET 框架)。

该配置指定了一个名为的作业。它使用执行器,安装项目所需的所有依赖项,然后构建项目。

接下来,我们需要在 GitHub 上建立一个存储库,并将项目链接到 CircleCI。查看将您的项目推送到 GitHub 以获得逐步说明。

接下来,登录您的 CircleCI 帐户。如果你注册了你的 GitHub 账户,你所有的库都可以在你项目的仪表盘上看到。

点击为您的项目设置项目

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

系统将提示您编写新的配置文件,或者在项目中使用现有的配置文件。选择现有选项。在 GitHub 上输入您的代码所在的分支的名称,然后点击设置项目按钮。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

您的第一个工作流将开始运行,但会失败。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此部署过程失败,因为我们没有提供 Heroku API 密钥。我们现在可以解决这个问题。点击项目设置按钮,然后点击环境变量。添加这两个新变量:

  • 是 Heroku ( )中的应用名称
  • 是您从帐户设置页面获取的 Heroku API 密钥

从失败的中选择重新运行工作流以重新运行 Heroku 部署。这一次,您的工作流将成功运行。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

要确认工作流是否成功,您可以在浏览器中打开新部署的应用程序。您的应用程序的 URL 应该是这样的格式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在本教程中,我向您展示了如何轻松地将 ASP.NET 核心应用程序部署到 Heroku 平台。CircleCI 基础设施使使用现有工具快速处理部署变得容易,让您和您的团队有宝贵的时间专注于开发您的应用程序。

我希望本教程对你有所帮助。完整的源代码可以在 GitHub 上找到。


Oluyemi 是一名拥有电信工程背景的技术爱好者。出于对解决用户日常遇到的问题的浓厚兴趣,他冒险进入编程领域,并从那时起将他的问题解决技能用于构建 web 和移动软件。Oluyemi 是一名热衷于分享知识的全栈软件工程师,他在世界各地的几个博客上发表了大量技术文章和博客文章。作为技术专家,他的爱好包括尝试新的编程语言和框架。

阅读更多 Olususi Oluyemi 的帖子

原文:https://circleci.com/blog/deploy-feathersjs-heroku/

本教程涵盖:

  1. 创建 FeathersJS API
  2. 在 Heroku 上创建和设置项目
  3. 自动部署到 Heroku

这是由两部分组成的系列之一。你还可以学习如何自动测试 FeathersJS 应用程序。

自动化不仅仅是构建解决方案来取代复杂或耗时的手动流程。正如流行的说法,“任何能够自动化的事情都应该自动化。”例如,将更新部署到应用程序可以而且应该是自动化的。在本教程中,我将向您展示如何设置一个 FeathersJS 应用程序到 Heroku 的免提部署。我将指导您实现一个持续部署(CD)管道,以便在推出更改时立即发布应用程序的更新。我们将使用的示例应用程序是一个管理测验问题的 API。它提供了创建、阅读、更新和删除测验问题的端点。

开始之前,请确保您的系统上安装了以下项目:

  • 10.0.0 的最低 NodeJS 版本
  • 像 NPM 或纱这样的最新的 JavaScript 包管理器
  • FeathersJS CLI

通过运行以下命令安装 FeathersJS CLI:

 
       

对于存储库管理和持续集成/持续部署,您需要:

我们的教程是平台无关的,但是使用 CircleCI 作为例子。如果你没有 CircleCI 账号,请在 注册一个免费的

FeathersJS 是一个轻量级 web 框架,用于使用 JavaScript 或 TypeScript 创建实时应用程序和 REST APIs。FeathersJS 工具集包括一个架构模式,它使得创建可伸缩的 REST APIs 和实时应用程序变得容易。您可以在几分钟内构建原型,在几天内构建生产就绪的应用。

Heroku 是一个平台即服务(PaaS ),使开发人员能够完全在云中构建、运行和操作应用程序。通过关注维护基于云的应用程序的更高要求方面,Heroku 允许开发人员专注于构建应用程序,而不是维护服务器。

为项目创建新文件夹:

 
       

接下来,使用 Feathers CLI 命令生成一个新应用程序。

 
       

对于这个项目,我们将使用 JavaScript。还有,我们只想做一个 REST API。回答 CLI 中的问题,如下所示:

 
       

在您做任何事情之前,更新索引页面,让访问者知道 API 正在构建中。在中,向元素添加一条“在建”消息:

 
       

接下来,使用以下命令运行您的应用程序:

 
       

默认情况下,应用程序运行在端口 3030。在您的浏览器中输入即可访问。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

下一步是在 Heroku 上创建一个新的应用程序。你可以从 Heroku 仪表盘上完成这项工作。点击新建,然后点击新建 App。如图所示填写表格。如果需要,您可以为应用程序使用不同的名称和地区。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击创建应用按钮。然后,您将被重定向到新创建的应用程序的部署视图。

接下来,您需要添加一个构建包。点击设置选项卡。在构建包部分,点击添加构建包

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在打开的表单上,您可以选择一个官方支持的构建包,或者为您的构建包提供一个 URL。选择 nodejs 使用官方支持的 Heroku nodejs 构建包。点击保存修改。Node.js 将用于构建您的下一个部署。

您最不需要的就是 API 密钥。你要用这个把你的 CircleCI 管道连接到 Heroku。要获取 API 密钥,请打开账户设置页面,向下滚动到 API 密钥部分。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击显示按钮,复制显示的 API 密钥。

接下来,我们需要为 CircleCI 添加管道配置。对于这个项目,管道将由两个步骤组成:

  1. 打造。在这里,我们构建项目并安装项目依赖项。理想情况下,我们应该在这个阶段运行项目测试。然而,为了保持本教程的合理长度,我们将跳过测试。
  2. 部署到 Heroku 。如果构建阶段成功完成,您可以将最新的更改部署到 Heroku。

在项目的根目录下,创建一个名为的文件夹。在其中,创建一个名为的文件。在新创建的文件中,添加以下配置:

 
       

这种配置吸引了 Heroku orb 。这个球体给你提供了一套强大的 Heroku 任务和命令。其中一个任务是,直接从 GitHub repo 将您的应用程序部署到您的 Heroku 帐户。该配置使用 Node.js orb ,它允许您在默认启用缓存的情况下安装包。

在配置中还指定了一个名为的任务,它检查最新的代码并安装在文件中指定的包。

最后,有一个工作流运行作业,然后是作业。注意,有一个选项告诉 CircleCI 只有在构建工作完成后才运行。

接下来,在 GitHub 上建立一个存储库,并将项目链接到 CircleCI。看到这个帖子寻求帮助:把你的项目推到 GitHub 。

登录您的 CircleCI 帐户。如果你注册了你的 GitHub 账户,你所有的库都会显示在你项目的仪表盘上。

在您的项目旁边,点击设置项目

CircleCI 检测项目中的文件。点击使用现有配置,然后开始建造。您的第一个工作流将开始运行,但是,它将失败!这是可以预料的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

部署过程失败,因为您没有提供 Heroku API 密钥。现在就去解决它。点击项目设置按钮,然后点击环境变量。添加两个新变量如下:

  • 变量是 Heroku ( )中的 app 名称。
  • 变量是您从帐户设置页面检索的 Heroku API 密钥。

选择从失败的选项重新运行工作流,以重新运行 Heroku 部署。要确认工作流是否成功,您可以在浏览器中打开新部署的应用程序。应用程序的 URL 应该是这样的格式:。

你将会看到你正在建设的索引页面。

是时候添加功能来处理我们的 API 上的问题了。对于本教程,问题将包含这些属性的字段:

  • 困难
  • 问题
  • 回答正确

创建问题时,默认情况下会分配一个唯一的主键。

使用以下命令创建数据库支持的服务:

 
       

对于这项服务,使用,只需按回车即可确认。使用作为服务名,并用默认值确认所有其他提示。只需按下回车:

 
       

有了这个命令,FeathersJS 就为您的问题提供了 CRUD 操作所需的一切。此时,您已经有了一个包含这些端点的 API:

  • 逐页列出所有问题。
  • 创建一个新问题。
  • 返回 id 为 123 的问题的详细信息。您还可以在这个请求中包含查询:。
  • 和用 id 123 更新问题的细节。
  • 删除 id 为 123 的问题。

您可以为您的应用程序提供服务,并向任何端点发出请求。对于本教程,在使用新的 API 之前,先植入数据库并覆盖一些默认功能。

当您收到添加问题的请求时,您希望在将请求保存到数据库之前,只从请求中检索前面指定的三个值。通过覆盖服务方法来实现。打开并对其进行编辑以匹配以下代码:

 
       

接下来,创建一个播种器,为您提供一些示例问题。在目录中,创建一个名为的新文件。将此代码添加到新创建的文件中:

 
       

接下来,打开并编辑它以匹配以下代码:

 
       

请注意,该代码片段中的代码首先检查数据库中的问题数量,只有当没有问题时才播种。这可以防止种子程序在每次启动本地服务器时运行。

现在你可以用 Postman 来测试你的 API 了。

向发送一个请求。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

向发送请求以检索问题列表。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

整洁!最后,用最新的代码更新 git 存储库。不要忘记从索引页中删除“正在建设中”的消息。

 
       

您的 CircleCI 构建再次运行,完成后,您的 Heroku 应用程序将更新为最新代码。干得好!

在本教程中,我向您展示了如何使用 GitHub、CircleCI 和 Heroku 为 FeathersJS API 设置 CI/CD 管道。

通过自动化发布新特性的过程,生产环境中的人为错误风险大大降低。产品还增加了一定程度的质量保证,因为只有当新特性的行为符合预期时,才会部署新特性。也就是说,只有当他们通过了指定的测试用例。

这也有助于更有效的软件管理过程和更快乐的开发人员。重复的,平凡的方面是自动化的,所以你的团队可以专注于解决问题和创造。要了解持续集成和部署的更多好处,请访问什么是 CI/CD 管道。

本教程的全部代码可以在 GitHub 上找到。


Oluyemi 是一名拥有电信工程背景的技术爱好者。出于对解决用户日常遇到的问题的浓厚兴趣,他冒险进入编程领域,并从那时起将他解决问题的技能用于构建 web 和移动软件。Oluyemi 是一名热衷于分享知识的全栈软件工程师,他在世界各地的几个博客上发表了大量技术文章和博客文章。由于精通技术,他的爱好包括尝试新的编程语言和框架。


Oluyemi 是一名拥有电信工程背景的技术爱好者。出于对解决用户日常遇到的问题的浓厚兴趣,他冒险进入编程领域,并从那时起将他的问题解决技能用于构建 web 和移动软件。Oluyemi 是一名热衷于分享知识的全栈软件工程师,他在世界各地的几个博客上发表了大量技术文章和博客文章。作为技术专家,他的爱好包括尝试新的编程语言和框架。

阅读更多 Olususi Oluyemi 的帖子

原文:https://circleci.com/blog/deploy-flutter-android/

Flutter 是 Google 提供的一个工具包,用于构建跨平台应用,包括 Android、iOS 和 web 应用。随着越来越多的应用程序使用 it 和 Dart(底层语言)编写,考虑开发人员如何将他们的代码打包并交付给用户变得越来越重要。利用 CircleCI 和浪子,这是一个相对简单的过程,可以自动化。

按照以下指南,可以安装并创建您的第一个应用程序:

默认的“hello world”应用程序就足够了。我们不会过多地处理应用程序本身。将其推送到 GitHub 上的一个存储库中。

确保您已设置好使用 Google Play 或 Apple App Store 发布应用程序,每个应用程序的步骤会有所不同,因此请务必遵循各个提供商概述的步骤。

阅读更多关于移动应用开发持续集成的信息。

当发布 Android 应用时,在实现浪子之前有一些要求需要满足。需要一个“上传密钥”,这样谷歌才能在接受应用之前验证其真实性。设置的步骤可以在这里找到。建议在构建 Android 应用程序时使用 AppBundles,因为它允许 Google 为不同的平台构建单独的 apk,同时保持文件大小不变。记下您保存文件的位置。虽然它可以存在于您的主目录中,但是在配置文件时,将它保存到项目中一个被 g it 忽略的目录中会很方便。

本指南中的两个东西需要作为环境变量添加到 CircleCI 中:文件和文件。这将允许持续集成管道正确构建和签署应用程序。因为一个文件需要换行,而另一个文件是二进制文件,所以建议在将它们作为环境变量添加之前对它们进行 base64 编码,以保留数据。

您可以通过运行以下命令对它们进行编码:

 
         

然后,可以在作业过程中使用以下命令重新添加这些文件:

 
         

在创建 Android 设置时,您还需要设置一个浪子服务帐户。你可以在这里阅读更多关于的内容。请务必将您的服务帐户 JSON 文件放在手边。我们将很快将其添加到管道中。还要注意,命令应该从您的 Flutter 项目下的目录中运行。

添加浪子所需的服务帐户可以通过添加服务帐户 JSON 文件内容作为环境变量来完成。这不要与混淆,后者应该是文件的文件路径。

现在我们的环境变量已经就位,我们可以使用 Flutter 构建一个签名的文件,是时候告诉浪子如何为我们做这件事了。我们从安卓开始。打开会显示一些构建 Android 应用的默认设置,但它们对我们的用例不起作用。我们在用颤动建造。

首先,我们来定义一个新的“车道”。这是浪子被调用时将执行的一组指令。目前,我们将把我们的应用推向“测试”频道,而不是生产。

 
         

这是一个车道的基本结构。接下来,我们要获取一个内部版本号,这是一个递增的数字,用作应用程序版本的参考(不同于面向用户的 semver)。

将以下内容添加到车道:

 
         

这确保了是对 Git 存储库进行提交的次数。这也可以在 Flutter 用来构建包的文件中手动递增。

接下来,我们将做建筑。我们需要转到父目录,运行几个 shell 命令来获取我们的包,清理以前的构建(如果有的话),然后用我们的构建号构建 appbundle。

 
         

最后,我们可以发送到测试版频道的应用商店。

 
         

最后,你的车道看起来会像这样:

 
         

继续保存文件,然后运行。它将逐步运行,为您构建应用程序并推送应用程序。

现在,我们将对 iOS 做同样的事情,但是将一些命令替换为它们各自的 iOS 命令。这应该在目录中完成。

 
         

注:app 是两次搭建。第一个构建基于最新的 Flutter 工具链,而第二个构建构建将上传到 Testflight 的实际的文件。

现在我们已经准备好了一切,是时候编写 CircleCI 配置了,这样分支的推送就可以转化为新的部署。

ios

对于 iOS 的部署,CircleCI 已经有相关文档了!设置带颤振的浪子展开的步骤类似于此处和此处和概述的步骤。

机器人

谈到要选择的 Docker 图像,有两个选项。你可以构建并推送 Flutter 项目使用的 Docker 镜像,在这里找到,或者你可以拉,它构建在一个现有的 CircleCI Android Docker 镜像之上并安装 Flutter 和浪子,避免在运行时安装它的额外开销。

还要确保前面提到的环境变量被添加到您的项目中。即:

  • -base64 编码的文件
  • -base64 编码的文件,包含密码和其他关于上传签名密钥的信息
  • -您的 Google 服务帐户用于验证的 JSON 字符串

在您的项目根目录中,添加一个文件夹,并在该文件夹中添加一个文件。将以下配置添加到新创建的文件中:

 
         

上面的代码片段定义了一个执行器,由于 CircleCI 2.1 中使用了可重用配置和 orbs ,我们可以在以后的配置中重用这个执行器。它还包括一些环境变量,以确保 Java 在构建应用程序时不会消耗我们所有的内存。接下来,我们将定义希望运行命令的作业。

 
         

最后,我们将定义我们的工作流,它将只在新代码被推送到分支时运行作业。

 
         

最终,您的配置将如下所示:

 
         

在 CircleCI 上设置您的项目。一旦你点击设置项目,你将被带到一个文本编辑器,允许你从上面复制配置。点击开始建造。现在,对 beta 分支的每个新提交都将导致部署。

原文:https://circleci.com/blog/deploy-laravel-heroku/

本教程涵盖:

  1. 克隆 Laravel 应用程序并在本地运行它
  2. 在 Heroku 上创建一个应用程序,包括 ClearDB MySQL 插件
  3. 为将 Laravel 应用程序部署到 Heroku 创建管道配置

在本教程中,我将向您展示如何建立一个连续部署管道,以最少的麻烦将 Laravel 应用程序部署到 Heroku 平台。自动化部署有助于团队限制部署过程中的人工干预,降低错误风险,并简化整个软件发布过程。

对于这篇文章,你需要:

我们的教程是平台无关的,但是使用 CircleCI 作为例子。如果你没有 CircleCI 账号,请在 注册一个免费的

首先,克隆一个用 Laravel 构建的作者应用程序。使用这个应用程序,您可以通过陈述作者的、、用户名和来创建一个作者列表。从终端输入以下命令下载项目:

 
         

进入应用程序,安装其依赖项并生成应用程序密钥:

 
         

接下来,创建一个文件,并使用以下命令生成应用程序密钥:

 
         

在本地运行应用程序可以确认它是否按预期工作。首先,更新数据库凭证:

 
         

用您计划使用的值替换、和。

接下来,创建数据库表并运行应用程序:

 
         

进入查看应用主页。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击作者查看作者列表。如果没有创建作者,列标签下面的空间将是空白的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击创建新作者添加新作者。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输入详细信息,点击提交

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

既然您已经确认了演示应用程序可以工作,那么您就可以开始设置 Heroku 的部署了。

要在 Heroku 上创建应用程序,请转到 Heroku 仪表板。点击新增,然后点击新增 App 。在表单中填写您的应用程序和您所在地区的名称。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后,点击创建 app 。您将被重定向到新创建的应用程序的部署视图。

默认情况下, Laravel 为五个数据库提供第一方支持。为了保持一致性,最好在 Heroku 上维护与本地相同的 MySQL 数据库。Heroku 默认使用 PostgreSQL,但是因为这个教程项目使用 MySQL,所以您需要安装一个名为 ClearDB 的 MySQL 附加组件。对于本教程来说,免费计划应该足够好。

要安装 ClearDB,点击 Resources,搜索 ClearDB,并选择它。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

选择免费计划,然后点击提交订单

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一旦该过程完成,ClearDB 将生成一个连接字符串,并将其包含在应用程序的配置变量中。

要更新应用程序的其他环境变量,点击设置,然后点击显示配置变量。复制并粘贴到您可以轻松提取凭证的地方。

数据库 URL 应该是这样的格式:。使用生成的数据库 URL,添加以下变量:

  • 打开和关闭 Laravel 应用程序的调试模式。
  • 表示应用程序是本地的还是生产中的。
  • 是生成的应用密钥。您可以使用本地机器上的副本。
  • 指定应用程序名称。
  • 用于说明您的应用程序的 URL。在本例中,它是我们的 Heroku 应用程序的 URL。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在您需要一个 API 密钥。您将使用此密钥和应用程序名称将您的 CircleCI 管道连接到 Heroku。要获取您的 API 密钥,请打开帐户设置页面。滚动到 API 键部分。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击显示按钮,复制 API 密钥。将它保存在您以后可以轻松找到的地方。

在本部分教程中,我将指导您为 CircleCI 添加管道配置。对于这个项目,管道由将我们的应用程序部署到 Heroku 的步骤组成。

在项目的根目录下,创建一个名为的文件夹。在该文件夹中,创建一个名为的文件。在新创建的文件中,添加以下配置:

 
         

这个配置文件为项目指定了 CircleCI 的版本。在撰写本文时,键调用最新版本的 Heroku orb 。这个 orb 抽象了设置 Heroku CLI 时通常涉及的复杂性。orb 会自动安装它,并使用它将应用程序部署到 Heroku。

任务从 CircleCI Docker Hub 注册中心获取 PHP Docker 图像。您的代码从存储库中签出,并且安装了项目的依赖项。如果为您的项目配置了测试,这将是运行测试的好地方。我们将跳过本教程的测试,只关注 Heroku 平台的部署。

作业使用执行器来检查项目并安装 Heroku CLI。部署应用程序并运行迁移命令,以便在 Heroku 上为您的应用程序创建数据库。

注意: 仅运行一次迁移命令(在第一次部署时)。然后编辑配置文件以删除 migrate 命令。

Procfile 帮助定义启动应用程序时应该执行的过程类型和命令。对于 PHP 运行时,您可以选择使用 Apache2 或 Nginx 作为 web 服务器来运行这个应用程序。对于本教程,我们将使用 Apache2 来服务我们的应用程序。要设置它,导航到您的项目的根目录,创建一个名为的新文件,并用以下内容填充它:

 
         

这个命令将 web 服务器设置为 Apache,并指定应用程序的服务文件夹。对于这个项目,它是文件夹。

接下来,在 GitHub 上建立一个存储库,并将项目链接到 CircleCI。查看将您的项目推送到 GitHub 以获得逐步说明。

登录您的 CircleCI 帐户。如果你注册了你的 GitHub 账户,你所有的库都可以在你项目的仪表盘上看到。

点击为您的项目设置项目

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

系统将提示您编写新的配置文件,或者在项目中使用现有的配置文件。选择现有选项。在 GitHub 上输入您的代码所在的分支的名称,然后点击 Let’s Go 按钮。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

您的第一个工作流将开始运行,但会失败。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此部署过程失败,因为您尚未提供 Heroku API 密钥。你现在可以弥补了。点击项目设置按钮,然后点击环境变量。添加这两个新变量:

  • 是 Heroku 中的 app 名称()。
  • 是您从帐户设置页面获取的 Heroku API 密钥。

从失败的中选择重新运行工作流以重新运行 Heroku 部署。这一次,您的工作流将成功运行。

您可以从应用的迁移中确认这一点。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

要确认工作流成功,请在浏览器中打开新部署的应用程序。您的应用程序的 URL 应该是这样的格式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在本教程中,您已经学习了使用 CircleCI 和 Heroku 为 Laravel 应用程序设置连续部署管道所需的步骤和过程。使用这个管道可以确保特性部署的质量,并大大降低影响生产环境的人为错误的风险。

我希望本教程对你有所帮助。点击 GitHub 查看这里构建的项目的完整源代码。下次见,好好享受吧!


Oluyemi 是一名拥有电信工程背景的技术爱好者。出于对解决用户日常遇到的问题的浓厚兴趣,他冒险进入编程领域,并从那时起将他解决问题的技能用于构建 web 和移动软件。Oluyemi 是一名热衷于分享知识的全栈软件工程师,他在世界各地的几个博客上发表了大量技术文章和博客文章。由于精通技术,他的爱好包括尝试新的编程语言和框架。


Oluyemi 是一名拥有电信工程背景的技术爱好者。出于对解决用户日常遇到的问题的浓厚兴趣,他冒险进入编程领域,并从那时起将他的问题解决技能用于构建 web 和移动软件。Oluyemi 是一名热衷于分享知识的全栈软件工程师,他在世界各地的几个博客上发表了大量技术文章和博客文章。作为技术专家,他的爱好包括尝试新的编程语言和框架。

阅读更多 Olususi Oluyemi 的帖子

原文:https://circleci.com/blog/deploy-nuxt3-app-to-netlify/

本教程涵盖:

  1. 构建 Nuxt3 应用程序
  2. 为应用程序编写自动化测试
  3. 将应用部署到 Netlify

假设您想在 Netlify 上构建和部署一个 Nuxt3 应用程序。因为 Netlify 上不允许自定义脚本,所以在将网站部署到 Jamstack 托管平台之前,您将无法执行自动化测试等自定义任务。这就是持续集成/持续部署发挥作用的地方。使用 CI/CD 系统,您可以运行创建成功部署的自动化测试。在本教程中,我将带领您构建一个 Nuxt3 应用程序,为它编写自动化测试,并在 Netlify 上部署它。

Nuxt.js 是一个元框架,用于构建通用应用程序,或者运行在客户端和服务器端的应用程序。它是一个基于 Vue.js 构建的免费开源 JavaScript 库。Nuxt.js 的想法来自于 Next.js ,它为 React.js 生态系统提供了类似的目的。

Netlify 是开发团队托管 Jamstack 网站的热门选择。它允许您只需点击几下鼠标,即可连接您的存储库并部署您的静态网站。有时你有一个复杂的构建步骤,你需要对它进行一些控制。

要完成本教程,您需要:

我们的教程是平台无关的,但是使用 CircleCI 作为例子。如果你没有 CircleCI 账号,请在 注册一个免费的

第一步是设置一个要部署到 Netlify 的 Nuxt3 应用程序。

打开您的终端,导航到您想要的路径,并运行以下命令:

 
           

接下来,导航到目录,通过运行以下命令安装 NPM 依赖项:

 
           

安装完依赖项后,通过运行以下命令启动 Nuxt3 开发服务器:

 
           

使用浏览器访问,它显示了一个新的 Nuxt3 应用程序的默认主页。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

要使您的网站更具互动性,您可以向其中添加页面。

在项目的根目录下创建一个目录。在目录中,创建一个文件并添加以下代码:

 
           

接下来,在目录中,创建一个文件,并将以下代码添加到其中:

 
           

最后,保存你的进度,在浏览器上访问 Nuxt3 应用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Netlify 命令行界面(CLI) 允许您通过在 CI/CD 系统定制版本中运行命令行脚本,将您的网站部署到 Netlify。您需要将 CLI 作为开发依赖项安装到您的项目中。

转到项目的根目录,在终端中运行以下命令:

 
           

一旦安装完成,将项目代码推送到 GitHub 。

首先,访问 Netlify 的仪表板,点击添加新站点 > 导入一个现有项目

接下来,选择 GitHub 作为您的提供商,并搜索您的 GitHub 存储库。如果你的项目没有出现在列表中,点击在 GitHub 上配置 Netlify 应用程序并授权 Netlify 访问你的库。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

接下来,快速回顾一下您的 Netlify 项目的基本构建设置。如果一切正常,点击部署站点允许 Netlify 首次部署您的 Nuxt3 应用。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

构建过程完成后,请访问应用仪表板上的部署 URL。在我们这里是。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最后,当从 CircleCI 部署到 Netlify 时,您将需要一个站点 ID 和一个个人访问令牌:

  • 对于,请使用您网站的应用 ID。点击站点设置选项卡,然后点击常规 > 站点详情即可找到。

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 点击用户设置,然后点击应用,即可获得。将您的访问令牌保存在安全的地方;您将无法再次显示它。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

停止网络构建

有了这个设置,无论何时按下按钮,都会触发两次部署。一个部署在 Netlify,另一个部署在 CircleCI。为了节省资源,您只想从单一来源进行部署;在这种情况下,CircleCI。这意味着您需要禁用 Netlify 上的构建。

在 Netlify 仪表板上返回到您站点的页面。点击站点设置选项卡。在侧面菜单栏上点击构建&部署,然后点击编辑设置,选择停止构建。完成后保存您的更改。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

就是这样。现在 Netlify 不会在你推进到你的主分支时触发项目部署。

现在 Netlify 设置完成了,您可以开始设置 CircleCI 了。

在项目的根目录下,创建一个目录,并向其中添加一个文件。在这里,您将使用 CircleCI 编写构建和部署您的网站到 Netlify 的配置。现在,打开新创建的文件并添加以下内容:

 
           

这种配置:

  • 从存储库中检出项目
  • 安装并缓存项目依赖项
  • 构建()并缓存目录,该目录保存 Nuxt3 网站的生产构建
  • 将工作流配置为仅在推送至主分支时运行

接下来,将这些新的变更推送到您的 GitHub 存储库中。

现在,在 CircleCI 仪表板上,从左侧边栏菜单中点击项目

从项目列表中,找到您的项目并点击设置项目。您将收到 CircleCI 自动检测您的配置文件的通知。快速浏览一下,点击设置项目

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这将在 CircleCI 上成功触发构建,但不会部署到 Netlify。这是因为您尚未添加凭据。接下来你会这么做。

接下来,点击项目设置。在项目设置页面,点击左侧工具条菜单中的环境变量。在此页面上,添加这两个环境变量:

  • 是您的 Netlify 应用程序的应用程序 ID。
  • 是您的网络个人访问令牌。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

现在您已经在 CircleCI 上设置了项目,您可以使用部署凭证更新配置文件,并使用 Netlify CLI 部署您的网站。

更新文件的内容,如下所示:

 
           

此更新添加了脚本,以便使用您之前创建的凭据直接部署到 Netlify。

接下来,对您的代码进行一些修改,以验证新网站确实是从 CircleCI 部署的,并且将您的修改推送到 GitHub 。此按钮将触发部署管道,并将您的网站部署到 Netlify。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

构建成功后,再次访问您的网站以验证您部署的更改。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

您可能希望访问 Netlify 仪表板,以验证 Netlify 上没有触发任何构建。

在本文中,您学习了使用 CircleCI 在 Netlify 上构建和部署 Nuxt3 应用程序。这个 CI/CD 系统允许您运行定制脚本,这些脚本有时会在 Netlify 等托管平台上被阻止。接下来,您可以使用 CircleCI webhooks 从您的 CMS 触发部署。

如果你使用 Heroku 作为你的托管平台,你可以阅读我们关于使用 CircleCI 管道定制部署到 Heroku 的教程。

到此这篇spss26永久许可证代码(spss19永久许可证代码)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • yum命令下载安装包(yum的安装命令)2025-10-12 23:27:08
  • 手机本机信息查询(查本机手机型号怎么查)2025-10-12 23:27:08
  • ip查域名命令(从ip查域名)2025-10-12 23:27:08
  • 2258xt(2258xt跳线)2025-10-12 23:27:08
  • unet分割网络(unet分割效果差)2025-10-12 23:27:08
  • yml文件配置(yml文件配置数组)2025-10-12 23:27:08
  • ip反查域名工具在哪(ip反查域名在线工具)2025-10-12 23:27:08
  • 京玉窖藏vip15价格(京玉窖藏vip15价格2013年出品多少钱一瓶)2025-10-12 23:27:08
  • max3096中文手册(max3087中文资料)2025-10-12 23:27:08
  • 速排卵吃什么食物最好(速排卵吃什么食物最好怀孕)2025-10-12 23:27:08
  • 全屏图片