云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

腾讯云_云主机杀毒_试用

小七 141 0

使用Terraform部署工人

今天,我们很高兴地宣布,Cloudflare Terraform提供程序现在支持Cloudflare worker。Terraform是配置基础设施的极好工具。传统上,如果你想启动、拆除或更新你的一些基础设施,你必须点击一个网站或进行一些API调用,这很容易导致人为错误。使用Terraform,您可以在简单的声明性配置文件中定义基础设施,并让Terraform知道如何为您进行API调用。这也让您可以像对待代码一样对待基础设施。您可以将Terraform配置文件检入版本控制,并将它们集成到您的正常软件开发工作流中。Terraform与许多基础设施提供商集成,包括Cloudflare。如果您想了解有关使用Cloudflare设置Terraform的更多信息,请查看Terraform和Cloudflare快速入门。在本文中,我将特别关注如何将Cloudflare Workers与Terraform集成。在这个例子中,我们将创建合伙企业,我们将在没有任何源服务器的情况下使用worker来服务整个站点。我们从零开始,但是如果您已经在使用Cloudflare workers并希望迁移到使用Terraform管理您的工人,那么您需要导入现有的脚本和路由,以便Terraform了解它们。请参阅末尾的"导入现有员工"部分。先决条件安装地形通过环境变量提供Cloudflare凭据将CLOUDFLARE_EMAIL设置为您的电子邮件地址将CLOUDFLARE_TOKEN设置为您的CLOUDFLARE API密钥如果您正在制定企业计划并希望使用多个脚本,则还需要将CLOUDFLARE_ORG_ID设置为您的帐户ID。您可以使用List Accounts API找到您的帐户ID创建Terraform配置文件创建一个任意名称的文件,并给它一个.tf文件扩展名。这是我们定义地形资源的地方。在该文件中,首先需要设置Cloudflare提供程序:提供程序"cloudflare"{}您可以在这个文件中定义您的凭证,但是通常最好使用环境变量,这样您就可以将配置文件签入版本控制,而不包括任何私有数据。接下来我们将创建一个名为zone的变量。与硬编码相反,在变量中定义区域的好处之一是,您可以设置一个单独的登台域,并使用与生产域相同的地形配置。有关使用变量的详细信息,请参阅文档。可变"区域"{默认值="合伙企业"}设置工作者脚本现在让我们编写我们的工人脚本。如果你在寻找灵感,看看一些工人食谱。对于本例,我将使用这个脚本并将其命名为party\u parrot_工人.js.接下来,我们需要将cloudflare_worker_脚本资源添加到Terraform配置中,并引用脚本文件。打开并添加以下tf文件:资源"cloudflare_worker_script""主脚本"{区域="${可变区}"content="${file"("派对鹦鹉_工人.js")}"}如果您是Terraform新手,请查看Terraform资源文档以了解有关该模式的更多信息。这里我们提供两个参数,区域引用我们之前定义的变量,内容引用我们刚刚创建的文件。注意:Cloudflare Enterprise plan支持使用多个(命名)脚本。要使用这个,参数将略有不同。删除zone参数,因为命名脚本没有绑定到特定区域,而是添加name参数来定义脚本的名称。有关示例,请参阅cloudflare_worker_脚本文档。设置工人路线为了让工作者开始处理流量,我们还需要定义至少一条路由。为此,请将cloudflare_worker_路由资源添加到Terraform配置中。资源"cloudflare_worker_route""catch_all_route"{区域="${可变区}"图案="*${可变区}/*"启用=真依赖于=cloudflare_worker_script.main_脚本"]}与脚本资源一样,zone参数引用我们先前定义的变量。pattern参数定义应该向工作进程发送哪些请求。在这个例子中,我们使用一个路由模式,比如*合伙企业*它将匹配所有的流量。但是,如果只希望工作线程处理对区域的请求子集,则可以定义一个更具体的模式,例如mysubdomain.example.com网站/*或者*example.com/mypath*. 有关路由模式的更多信息,请访问此处。enabled参数指定与模式匹配的请求应运行工作进程。或者,您可以将enabled设置为false,这意味着任何与模式匹配的请求都不应该运行工作线程。可以创建多个布线模式,在不太具体的布线模式之前应用更具体的布线模式。例如,可以创建一个布线模式,例如example.com/assets/*并设置enabled=false,然后创建另一个模式*example.com网站*并设置enabled=true。这将使工作者能够处理除匹配请求之外的所有流量example.com/assets/*.最后,我们将depends_-on设置为指向上面创建的脚本资源。一般来说,Terraform将尝试并行地创建资源,但是如果在创建脚本之前尝试创建路由,则可能会出现错误。通过使用depends_-on参数,Terraform将知道在创建路由之前首先创建脚本。注意:与脚本资源一样,如果您在企业计划中使用多个脚本,则某些参数会有所不同。删除enabled参数,改为设置script_name="${cloudflare_worker"_脚本。你的脚本资源.name}"指定路由应该运行的脚本。通过使用此语法直接引用脚本资源,Terraform已经知道路由依赖于脚本,因此您还可以删除depends_-on参数。您可以在cloudflare_worker_route文档中查看更多详细信息。应用地形配置现在我们已经在配置文件中定义了脚本和路由资源,现在可以部署了!要初始化Terraform,请运行Terraform init$terraform初始化正在初始化提供程序插件。。。地形已成功初始化!你现在可以开始使用Terraform了。试着运行"地形计划"看看基础架构所需的任何更改。所有地形命令现在应该有用了。如果您曾经为Terraform设置或更改模块或后端配置,重新运行此命令以重新初始化您的工作目录。如果你忘了,其他人命令将检测到它,并在必要时提醒您这样做。现在要部署更改,请运行terraform apply。Terraform将向您展示它将进行的更改的预览。$terraform应用已生成执行计划,如下所示。资源操作用以下符号表示:+创建Terraform将执行以下操作:+cloudflare_工作人员_路线。赶上所有路线id:启用:"真"多个脚本:图案:"*合伙企业/*"区域:"合伙企业"分区标识:+cloudflare_工作人员_script.main_脚本id:内容:"…为简洁起见省略…"区域:"合伙企业"分区标识:计划:2表示添加,0表示更改,0表示销毁。是否要执行这些操作?Terraform将执行上述操作。只接受"是"进行批准。输入值:如果一切正常,请键入yes并按return应用更改。cloudflare_工作人员_script.main_脚本:正在创建。。。内容:"=>"…为简洁起见省略区域:"=>"合伙企业"区域\ id:"=>""cloudflare_工作人员_script.main_脚本:1s后创建完成(ID:专区:partyparrot.business)cloudflare_工作人员_路线。赶上所有路线:正在创建。。。已启用:""=>"真"多个脚本:""=>""模式:"=>"*合伙企业/*"区域:"=>"合伙企业"区域\ id:"=>""cloudflare_工作人员_路线。赶上所有路线:0s后创建完成(ID:af595c1bb7cd4d1698c4d6cbcb364662)申请完成!资源:添加了2个,更改了0个,销毁了0个。恭喜你,你的worker脚本和路由已经部署!您可以看到运行在的示例脚本合伙企业.当您对脚本或Terraform配置进行更改时,您可以再次运行Terraform apply,Terraform将找出更改的内容并部署任何更新。导入现有工作人员如果您已经在使用Cloudflare worker,但希望通过Terraform开始管理它们,则需要让Terraform知道您的现有配置,以便Terraform知道如何应用未来的更改。首先,您需要创建.tf文件,并为所有现有脚本和路由添加cloudflare_worker_脚本和cloudflare_worker_路由资源。接下来,您需要单独运行相应的terraform导入。。。用于每个脚本和路由资源的命令。import命令接受两个参数:在.tf文件中定义的资源的标识符(例如:cloudflare_worker_script.main_脚本或cloudflare_worker_路线。赶上所有路线)用于从cloudflare API查找资源的ID。有关详细信息,请参阅cloudflare_worker_脚本和cloudflare_worker_路由文档。结束本例的完整脚本和terraform配置文件托管在Github上。无论您是在使用Cloudflare Workers还是刚刚开始使用,Terraform都是管理worker配置的一个很好的方法。如果您有兴趣了解更多信息,以下是一些有用的链接:Cloudflare Workers文档Cloudflare Terraform提供程序文档更多员工的博客帖子更多Terraform博客文章terraform提供程序cloudflare源