为 Code Engine 设置 Terraform
IBM Cloud® 上的 Terraform 支持以可预测和一致的方式创建 IBM Cloud 服务,因此您可以按照基础设施即代码 ( IaC ) 原则快速构建复杂的多层云环境。 与使用 IBM Cloud CLI 或 API 和 SDK 类似,您可以通过 HashiCorp 配置语言 (HCL) 自动创建、更新和删除 Code Engine 工作负载。
正在寻找 IBM Cloud® 上的 Terraform 托管解决方案? 试用 IBM Cloud® Schematics. 通过 Schematics,您可以使用熟悉的 Terraform 脚本语言,但不必担心设置和维护 Terraform 命令行和 IBM Cloud® Provider 插件。Schematics 还提供预定义的 Terraform 模板,您可以从 IBM Cloud® 目录中轻松安装。
安装 Terraform 并配置 Code Engine 的资源
在使用 Terraform 创建工作负载之前,请确保已完成以下先决条件。
- 确保您拥有创建和使用 Code Engine 资源 所需的权限。
- 安装 Terraform CLI 并为 Terraform 配置 IBM Cloud 提供程序插件。 有关更多信息,请参阅 Terraform on IBM Cloud®入门 教程。 该插件对用于完成此任务的 IBM Cloud API 进行抽象。
- 创建名为
main.tf的 Terraform 配置文件。 在此文件中,您使用 HashiCorp 配置语言来定义资源。 有关更多信息,请参阅 Terraform 文档。
-
使用
main.tf文件中的code_engine_project资源参数创建 Code Engine 项目。data "ibm_resource_group" "resource_group" { name = "<your_resource_group_name>" } resource "ibm_code_engine_project" "code_engine_project_instance" { name = "<your_project_name>" resource_group_id = data.ibm_resource_group.resource_group.id } -
完成构建配置文件后,初始化 Terraform CLI。 有关更多信息,请参阅 初始化工作目录。
terraform init -
从
main.tf文件供应项目。 有关更多信息,请参阅 使用 Terraform 供应基础架构。-
运行
terraform plan以生成 Terraform 执行计划来预览建议的操作。terraform plandata.ibm_resource_group.resource_group: Reading... data.ibm_resource_group.resource_group: Read complete after 1s [id=<your_resource_group_id>] Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # ibm_code_engine_project.code_engine_project_instance will be created + resource "ibm_code_engine_project" "code_engine_project_instance" { + account_id = (known after apply) + created_at = (known after apply) + crn = (known after apply) + href = (known after apply) + id = (known after apply) + name = "<your_project_name>" + project_id = (known after apply) + region = (known after apply) + resource_group_id = "<your_resource_group_id>" + resource_type = (known after apply) + status = (known after apply) } Plan: 1 to add, 0 to change, 0 to destroy. -
运行
terraform apply以创建计划中定义的资源。terraform applydata.ibm_resource_group.resource_group: Reading... data.ibm_resource_group.resource_group: Read complete after 1s [id=<your_resource_group_id>] Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # ibm_code_engine_project.code_engine_project_instance will be created + resource "ibm_code_engine_project" "code_engine_project_instance" { + account_id = (known after apply) + created_at = (known after apply) + crn = (known after apply) + href = (known after apply) + id = (known after apply) + name = "my-project" + project_id = (known after apply) + region = (known after apply) + resource_group_id = "5218b5c8c749454b9fc8be28f32e458e" + resource_type = (known after apply) + status = (known after apply) } Plan: 1 to add, 0 to change, 0 to destroy. Changes to Outputs: + ibm_code_engine_project = { + account_id = (known after apply) + created_at = (known after apply) + crn = (known after apply) + href = (known after apply) + id = (known after apply) + name = "my-project" + project_id = (known after apply) + region = (known after apply) + resource_group_id = "5218b5c8c749454b9fc8be28f32e458e" + resource_type = (known after apply) + status = (known after apply) + timeouts = null } Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes ibm_code_engine_project.code_engine_project_instance: Creating... ibm_code_engine_project.code_engine_project_instance: Still creating... [10s elapsed] ibm_code_engine_project.code_engine_project_instance: Still creating... [20s elapsed] ibm_code_engine_project.code_engine_project_instance: Still creating... [30s elapsed] ibm_code_engine_project.code_engine_project_instance: Creation complete after 30s [id=13468527-84sa-619g-gr99-168fe364w98f] Apply complete! Resources: 1 added, 0 changed, 0 destroyed. Outputs: ibm_code_engine_project = { "account_id" = "<your_account_id>" "created_at" = "2023-03-16T10:44:24.150838188Z" "crn" = "crn:v1:bluemix:public:codeengine:eu-de:a/dc5e6392e5d14021846031b83e95f190:13468527-84sa-619g-gr99-168fe364w98f::" "href" = "https://api.eu-de.codeengine.cloud.ibm.com/v2/projects/13468527-84sa-619g-gr99-168fe364w98f" "id" = "13468527-84sa-619g-gr99-168fe364w98f" "name" = "my-project" "project_id" = "<your_project_id>" "region" = "eu-de" "resource_group_id" = "<your_resource_group_id>" "resource_type" = "project_v2" "status" = "active" "timeouts" = null /* object */ }
-
-
您可以在 Code Engine 控制台中的项目列表中查看项目。 或者,您可以通过展开类别
Containers并查找项目名称,在 IBM Cloud 资源列表中查看项目。
后续步骤?
现在,您已成功在 IBM Cloud上使用 Terraform 创建第一个 Code Engine 项目,您可以创建其他资源。
资源
数据源
ibm_code_engine_allowed_outbound_destinationibm_code_engine_appibm_code_engine_bindingibm_code_engine_buildibm_code_engine_config_mapibm_code_engine_domain_mappingibm_code_engine_functionibm_code_engine_jobibm_code_engine_projectibm_code_engine_secret
有关 IBM Cloud 和 Terraform 的更多信息,请参阅 IBM Cloud 提供者。