Tüm Ürünler
Search
Belge Merkezi

Serverless App Engine:Terraform kullanarak SAE ad alanlarını yönetin

Son Güncelleme:Oct 06, 2026

Bir Serverless App Engine (SAE) ad alanı, uygulamalarınızı test, geliştirme, hazırlık ve üretim gibi ortamlara mantıksal olarak ayırmanızı sağlar. Terraform kullanarak SAE ad alanları oluşturabilir, güncelleyebilir ve silebilirsiniz.

Not

Bu eğitimdeki örnek kodu doğrudan Terraform Explorer içinde çalıştırabilirsiniz.

Önkoşullar

  • Alibaba Cloud hesabınız tüm kaynaklarınız üzerinde tam yetkiye sahiptir. Bu hesabın kimlik bilgilerinin ifşa edilmesi önemli bir güvenlik riski oluşturur. Bunun yerine bir RAM kullanıcısı kullanmanızı ve bu kullanıcı için özel bir AccessKey çifti oluşturmanızı öneririz. Daha fazla bilgi için bkz. RAM kullanıcısı oluşturma ve AccessKey oluşturma.

  • Bu ilke, SAE ad alanları oluşturma, silme, güncelleme, görüntüleme ve listeleme izinleri verir.

    Bu eğitimin gerektirdiği izinleri vermek için RAM kullanıcınıza aşağıdaki minimum ilkeyi ekleyin. Daha fazla bilgi için bkz. RAM kullanıcı izinlerini yönetme.

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "sae:CreateNamespace",
                    "sae:DeleteNamespace",
                    "sae:UpdateNamespace",
                    "sae:GetNamespace",
                    "sae:ListNamespaces"
                ],
                "Resource": "*"
            }
        ]
    }
  • Bir Terraform çalışma zamanı ortamı hazırlayın. Aşağıdaki yöntemlerden birini kullanabilirsiniz:

Kaynaklar

Ad alanı oluşturma

Aşağıdaki örnekte, China (Hangzhou) bölgesinde ID'si cn-hangzhou:admin olan admin adında bir ad alanı oluşturulur.

  1. Terraform kaynaklarını depolamak için terraform adlı bir proje klasörü oluşturun.

  2. Proje dizinine gitmek için aşağıdaki komutu çalıştırın:

    cd terraform
  3. main.tf adlı bir yapılandırma dosyası oluşturun.

    provider "alicloud" {
      region = var.region_id
    }
    # Define a variable for the region. The default value is cn-hangzhou.
    variable "region_id" {
      type    = string
      default = "cn-hangzhou"
    }
    # Define a variable for the namespace description. The default value is "a namespace sample".
    variable "namespace_description" {
      description = "Namespace Description"
      default     = "a namespace sample"
    }
    # Define a variable for the namespace name. The default value is "admin".
    variable "namespace_name" {
      description = "Namespace Name"
      type        = string
      default     = "admin"
    }
    # Define a variable for the namespace ID. The default value is "cn-hangzhou:admin".
    variable "namespace_id" {
      description = "Namespace ID"
      type        = string
      default     = "cn-hangzhou:admin"
    }
    resource "alicloud_sae_namespace" "default" {
      namespace_description = var.namespace_description
      namespace_id          = var.namespace_id
      namespace_name        = var.namespace_name
    }
    output "namespace_id" {
      value       = alicloud_sae_namespace.default.namespace_id
      description = "The ID of the created namespace."
    }
  4. Terraform çalışma zamanı ortamını başlatın.

    terraform init
  5. Beklenen çıktı:

    Initializing the backend...
    Initializing provider plugins...
    - Checking for available provider plugins...
    - Downloading plugin for provider "alicloud" (hashicorp/alicloud) 1.233.0...
    The following providers do not have any version constraints in configuration,
    so the latest version was installed.
    To prevent automatic upgrades to new major versions that may contain breaking
    changes, it is recommended to add version = "..." constraints to the
    corresponding provider blocks in configuration, with the constraint strings
    suggested below.
    * provider.alicloud: version = "~> 1.233"
    Warning: registry.terraform.io: For users on Terraform 0.13 or greater, this provider has moved to aliyun/alicloud. Please update your source in required_providers.
    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.
  6. SAE ad alanını oluşturmak için aşağıdaki komutu çalıştırın.

    1. Yapılandırmayı uygulamak için komutu çalıştırın. İstendiğinde yes girin ve Enter tuşuna basın.

      terraform apply

      Beklenen çıktı:

      Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
      Outputs:
      namespace_id = cn-hangzhou:admin

    Ad alanı oluşturuldu.

  7. Ad alanının oluşturulduğunu doğrulayın.

Terraform show komutu

Terraform tarafından yönetilen kaynak durumunu incelemek için aşağıdaki komutu çalıştırın:

terraform show
shell@Alicloud:~/serverlesstest$ terraform show
# alicloud_sae_namespace.default:
resource "alicloud_sae_namespace" "default" {
    enable_micro_registration = true
    id                        = "cn-hangzhou:admin"
    namespace_description     = "a namespace sample"
    namespace_id              = "cn-hangzhou:admin"
    namespace_name            = "admin"
    namespace_short_id        = "admin"
}
Outputs:
namespace_id = "cn-hangzhou:admin"

SAE konsolu

Oluşturulan ad alanını görüntülemek için Serverless App Engine (SAE) konsolu üzerinden oturum açın.

Namespaces sayfasında, ID'si cn-hangzhou:admin olan admin ad alanının listelendiğini doğrulayın.

Ad alanını güncelleme

Aşağıdaki örnekte, China (Hangzhou) bölgesindeki ad alanı adı admin değerinden prod değerine güncellenir.

  1. main.tf dosyasını açın ve namespace_name değişkeninin varsayılan değerini "admin" yerine "prod" olarak değiştirin.

provider "alicloud" {
  region = var.region_id
}
# Define a variable for the region. The default value is cn-hangzhou.
variable "region_id" {
  type    = string
  default = "cn-hangzhou"
}
# Define a variable for the namespace description. The default value is "a namespace sample".
variable "namespace_description" {
  description = "Namespace Description"
  default     = "a namespace sample"
}
# Change the default namespace name to "prod".
variable "namespace_name" {
  description = "Namespace Name"
  type        = string
  default     = "prod"
}
# Define a variable for the namespace ID. The default value is "cn-hangzhou:admin".
variable "namespace_id" {
  description = "Namespace ID"
  type        = string
  default     = "cn-hangzhou:admin"
}
resource "alicloud_sae_namespace" "default" {
  namespace_description = var.namespace_description
  namespace_id          = var.namespace_id
  namespace_name        = var.namespace_name
}
output "namespace_id" {
  value       = alicloud_sae_namespace.default.namespace_id
  description = "The ID of the created namespace."
}
  1. Terraform çalışma zamanı ortamını başlatın.

    terraform init

    Çıktı, Terraform'un başarıyla başlatıldığını onaylar.

    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.
  2. Değişiklikleri uygulamak için aşağıdaki komutu çalıştırın. İstendiğinde yes girin ve Enter tuşuna basın.

terraform apply

Beklenen çıktı:

alicloud_sae_namespace.default: Modifying... [id=cn-hangzhou:admin]
alicloud_sae_namespace.default: Modifications complete after 1s [id=cn-hangzhou:admin]
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
Outputs:
namespace_id = "cn-hangzhou:admin"

Ad alanı adı prod olarak güncellendi.

Terraform show komutu

Terraform tarafından yönetilen kaynak durumunu incelemek için aşağıdaki komutu çalıştırın:

terraform show
shell@Alicloud:~/serverlesstest$ terraform show
# alicloud_sae_namespace.default:
resource "alicloud_sae_namespace" "default" {
    enable_micro_registration = true
    id                       = "cn-hangzhou:admin"
    namespace_description    = "a namespace sample"
    namespace_id             = "cn-hangzhou:admin"
    namespace_name           = "prod"
    namespace_short_id       = "admin"
}
Outputs:
namespace_id = "cn-hangzhou:admin"

SAE konsolu

Güncellenen ad alanını görüntülemek için Serverless App Engine (SAE) konsolu üzerinden oturum açın.

Ad alanı listesi artık ID'si cn-hangzhou:admin olan prod ad alanını gösterir; bu da güncellemeyi doğrular.

Ad alanını silme

Aşağıdaki örnekte, China (Hangzhou) bölgesinden ID'si cn-hangzhou:admin olan prod adlı ad alanı silinir.

  1. Proje dizininde, ad alanını yok etmek için aşağıdaki komutu çalıştırın. terraform destroy komutu hakkında daha fazla bilgi için bkz. Ortak komutlar.

    terraform destroy

    Beklenen çıktı:

    alicloud_sae_namespace.default: Refreshing state... [id=cn-hangzhou:admin]
    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" {
          - enable_micro_registration = true -> null
          - id                        = "cn-hangzhou:admin" -> null
          - namespace_description     = "a namespace sample" -> null
          - namespace_id              = "cn-hangzhou:admin" -> null
          - namespace_name            = "prod" -> null
          - namespace_short_id        = "admin" -> null
        }
    Plan: 0 to add, 0 to change, 1 to destroy.
    Changes to Outputs:
      - namespace_id = "cn-hangzhou:admin" -> null
    Do you really want to destroy all resources?
      Terraform will destroy all your managed infrastructure, as shown above.
      There is no undo. Only 'yes' will be accepted to confirm.
      Enter a value: yes
    alicloud_sae_namespace.default: Destroying... [id=cn-hangzhou:admin]
    alicloud_sae_namespace.default: Destruction complete after 1s
    Destroy complete! Resources: 1 destroyed.

    Ad alanı silindi.

Tam örnek

Not

Bu eğitimdeki örnek kodu doğrudan Terraform Explorer içinde çalıştırabilirsiniz.

provider "alicloud" {
  region = var.region_id
}
# Define a variable for the region. The default value is cn-hangzhou.
variable "region_id" {
  type    = string
  default = "cn-hangzhou"
}
# Define a variable for the namespace description. The default value is "a namespace sample".
variable "namespace_description" {
  description = "Namespace Description"
  default     = "a namespace sample"
}
# Define a variable for the namespace name. The default value is "admin".
variable "namespace_name" {
  description = "Namespace Name"
  type        = string
  default     = "admin"
}
# Define a variable for the namespace ID. The default value is "cn-hangzhou:admin".
variable "namespace_id" {
  description = "Namespace ID"
  type        = string
  default     = "cn-hangzhou:admin"
}
resource "alicloud_sae_namespace" "default" {
  namespace_description = var.namespace_description
  namespace_id          = var.namespace_id
  namespace_name        = var.namespace_name
}
output "namespace_id" {
  value       = alicloud_sae_namespace.default.namespace_id
  description = "The ID of the created namespace."
}

Referanslar