日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用Terraform管理SAE命名空間

Serverless 應用引擎 SAE(Serverless App Engine)的命名空間可以將您的應用從邏輯上進行劃分,例如測試環境、開發環境、預發環境和線上環境等。本文介紹如何通過Terraform創建、更新和刪除SAE命名空間。

前提條件

  • 安裝Terraform。支持Terraform 0.13及以上版本。
  • 配置阿里云賬號信息。

    選擇一種阿里云認證方式,為Terraform的執行提供認證信息。本文以環境變量認證方式為例:

    export ALICLOUD_ACCESS_KEY="************"
    export ALICLOUD_SECRET_KEY="************"
    export ALICLOUD_REGION="cn-hangzhou"
    說明 為保障數據安全性,建議您按需為RAM用戶授予SAE資源的操作權限。具體操作,請參見為RAM用戶授權。

背景信息

Terraform的alicloud_sae_namespace資源提供了以下參數:

  • 必需:namespace_id

    命名空間ID,格式為<RegionId>:<namespace_name>,例如cn-hangzhou:dev。更新該參數時會創建新的命名空間。SAE支持的RegionId,請參見DescribeRegions。

  • 必需:namespace_name

    命名空間名稱。

  • 可選:namespace_description

    命名空間描述信息。

更多信息,請參見alicloud_sae_namespace。

創建命名空間

本示例以在華東1(杭州)地域下創建命名空間為例,命名空間名稱為dev、命名空間ID為cn-hangzhou:dev。

  1. 創建一個用于存放Terraform資源的項目文件夾,命名為terraform。
  2. 執行以下命令,進入項目目錄。
    cd terraform
  3. 執行以下命令,創建名為main.tf的配置文件。

    resource "alicloud_sae_namespace" "default" {
      namespace_description = var.namespace_description
      namespace_id          = var.namespace_id
      namespace_name        = var.namespace_name
    }
    
    variable "namespace_description" {
      description = "Namespace Description"
      default     = "a namespace sample"
    }
    
    variable "namespace_name" {
      description = "Namespace Name"
      type = string
    }
    
    variable "namespace_id" {
      description = "Namespace ID"
      type = string
    }
    
    output "namespace_id" {
      value = var.namespace_id
      description = "Namespace ID"
    }
  4. 執行以下命令,初始化Terraform運行環境。

    terraform init

    預期輸出:

    Initializing the backend...
    
    Initializing provider plugins...
    - Finding latest version of hashicorp/alicloud...
    - Installing hashicorp/alicloud v1.163.0...
    - Installed hashicorp/alicloud v1.163.0 (signed by HashiCorp)
    
    Terraform has created a lock file .terraform.lock.hcl to record the provider
    selections it made above. Include this file in your version control repository
    so that Terraform can guarantee to make the same selections by default when
    you run "terraform init" in the future.
    
    Terraform has been successfully initialized!
    
    You may now begin working with Terraform. Try running "terraform plan" to see
    any changes that are required for your infrastructure. All Terraform commands
    should now work.
    
    If you ever set or change modules or backend configuration for Terraform,
    rerun this command to reinitialize your working directory. If you forget, other
    commands will detect it and remind you to do so if necessary.
  5. 依次執行以下命令,創建SAE命名空間。

    1. 執行以下命令,執行配置文件。

      terraform apply
    2. 根據提示依次輸入命名空間ID、命名空間名稱等信息。

      • namespace_id:輸入cn-hangzhou:dev。

      • namespace_name:輸入dev。

      預期輸出:

      ...
      
      Plan: 1 to add, 0 to change, 0 to destroy.
      
      Changes to Outputs:
        + namespace_id = "cn-hangzhou:dev"
      
      ...
      
      alicloud_sae_namespace.default: Creating...
      alicloud_sae_namespace.default: Creation complete after 5s [id=cn-hangzhou:dev]
      
      Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
      
      Outputs:
      
      namespace_id = "cn-hangzhou:dev"

    命名空間已成功創建。

更新命名空間

本示例以更新命名空間名稱為例,將華東1(杭州)地域下命名空間的名稱從dev更新為prod。

  1. 執行以下命令,執行配置文件。
    terraform apply
  2. 根據提示依次輸入命名空間ID、命名空間名稱等信息,更新SAE命名空間名稱。

    • namespace_id:輸入cn-hangzhou:dev。

    • namespace_name:輸入prod。

    預期輸出:

    ...
    
    alicloud_sae_namespace.default: Refreshing state... [id=cn-hangzhou:dev]
    
    Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
      ~ update in-place
    
    Terraform will perform the following actions:
    
      # alicloud_sae_namespace.default will be updated in-place
      ~ resource "alicloud_sae_namespace" "default" {
            id                    = "cn-hangzhou:dev"
          ~ namespace_name        = "dev" -> "prod"
            # (2 unchanged attributes hidden)
        }
    
    Plan: 0 to add, 1 to change, 0 to destroy.
    
    ...
    
    alicloud_sae_namespace.default: Modifying... [id=cn-hangzhou:dev]
    alicloud_sae_namespace.default: Modifications complete after 1s [id=cn-hangzhou:dev]
    
    Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
    
    Outputs:
    
    namespace_id = "cn-hangzhou:dev"

    命名空間名稱已成功更新為prod。

刪除命名空間

本示例以在華東1(杭州)地域下刪除命名空間為例,命名空間名稱為prod、命名空間ID為cn-hangzhou:dev。

  1. 在目標項目目錄內執行以下命令,運行配置文件。
    terraform destroy
  2. 根據提示依次輸入命名空間ID、命名空間名稱等信息,刪除SAE命名空間。

    • namespace_id:輸入cn-hangzhou:dev

    • namespace_name:輸入prod

    預期輸出:

    ...
    
    alicloud_sae_namespace.default: Refreshing state... [id=cn-hangzhou:dev]
    
    Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
      - destroy
    
    Terraform will perform the following actions:
    
      # alicloud_sae_namespace.default will be destroyed
      - resource "alicloud_sae_namespace" "default" {
          - id                    = "cn-hangzhou:dev" -> null
          - namespace_description = "a namespace sample" -> null
          - namespace_id          = "cn-hangzhou:dev" -> null
          - namespace_name        = "prod" -> null
        }
    
    Plan: 0 to add, 0 to change, 1 to destroy.
    
    Changes to Outputs:
      - namespace_id = "cn-hangzhou:dev" -> null
    
    ...
    
    alicloud_sae_namespace.default: Destroying... [id=cn-hangzhou:dev]
    alicloud_sae_namespace.default: Destruction complete after 4s
    
    Destroy complete! Resources: 1 destroyed.

    命名空間已成功刪除。