すべてのプロダクト
Search
ドキュメントセンター

Resource Orchestration Service:パラメーター制約クエリ

最終更新日:Apr 08, 2025

パラメーター制約クエリ機能を使用して、テンプレートで定義されているパラメーターの値を取得できます。

背景情報

AssociationProperty および AssociationPropertyMetadata を使用してパラメーターをフィルタリングする場合、フィルタリングされたパラメーターは特定のシナリオで要件を満たさない場合があります。

たとえば、ZoneId パラメーターは複数の Alibaba Cloud サービスでサポートされていますが、有効な値はサービスによって異なります。 この場合、パラメーター制約クエリを実行して、テンプレートで定義されている ZoneId パラメーターの値を取得できます。

サポートされているプロパティ

  • リソースタイプのプロパティが Ref 関数を使用してパラメーターによって参照されている場合、GetTemplateParameterConstraints 操作を呼び出して、プロパティ値を取得できます。次の表に、パラメーター制約クエリ機能をサポートするすべてのプロパティと、対応するリソースタイプを示します。

  • GetFeatureDetails 操作を呼び出して、プロパティがパラメーター制約クエリ機能をサポートするリソースタイプを取得できます。

説明

パラメーター制約をクエリするテンプレートには、Parameters セクションが含まれている必要があります。

リソースタイプ

プロパティ

説明

ALIYUN::ADB::DBCluster

  • ZoneId

なし。

ALIYUN::ALB::LoadBalancer

  • ZoneMappings の ZoneId

なし。

ALIYUN::AMQP::Instance

  • PeriodUnit

  • Period

なし。

ALIYUN::ApiGateway::Instance

  • PricingCycle

  • Duration

なし。

ALIYUN::CDDC::DedicatedHost

  • Period

  • UsedTime

なし。

ALIYUN::CEN::CenBandwidthPackage

  • PricingCycle

  • Period

なし。

ALIYUN::ClickHouse::DBCluster

  • Period

  • ZoneId

  • UsedTime

なし。

ALIYUN::CloudPhone::InstanceGroup

  • PeriodUnit

  • Period

なし。

ALIYUN::CS::AnyCluster

  • PeriodUnit

  • Period

  • MasterInstanceTypes

  • WorkerZoneIds

  • PodVswitchIds

  • WorkerSystemDiskCategory

  • MasterZoneIds

  • WorkerVSwitchIds

  • KubernetesVersion

  • WorkerInstanceTypes

  • NodePools の ScalingGroup.SystemDiskCategory

  • NodePools の ScalingGroup.ZoneIds

  • NodePools の ScalingGroup.InstanceTypes

  • MasterSystemDiskCategory

  • WorkerDataDisks の Category

  • MasterDataDisks の Category

  • NodePools の ScalingGroup.DataDisks の Category

なし。

ALIYUN::CS::ClusterNodePool

  • ScalingGroup の PeriodUnit

  • ScalingGroup の Period

  • ScalingGroup の InstanceTypes

  • ScalingGroup の ZoneIds

  • ScalingGroup.DataDisks の Category

  • ScalingGroup の SystemDiskCategory

なし。

ALIYUN::CS::KubernetesCluster

  • MasterInstanceTypes

  • MasterSystemDiskCategory

  • WorkerInstanceTypes

  • WorkerSystemDiskCategory

  • WorkerVSwitchIds

  • PodVswitchIds

  • KubernetesVersion

  • PeriodUnit

  • WorkerZoneIds

  • Period

  • MasterZoneIds

  • NodePools の ScalingGroup.InstanceTypes

  • NodePools の ScalingGroup.DataDisks の Category

  • NodePools の ScalingGroup.ZoneIds

  • NodePools の ScalingGroup.SystemDiskCategory

  • MasterDataDisks の Category

  • WorkerDataDisks の Category

なし。

ALIYUN::CS::ManagedEdgeKubernetesCluster

  • WorkerInstanceTypes

  • PeriodUnit

  • Period

  • ZoneIds

  • VSwitchIds

  • WorkerSystemDiskCategory

  • WorkerDataDiskCategory

なし。

ALIYUN::CS::ManagedKubernetesCluster

  • WorkerInstanceTypes

  • WorkerSystemDiskCategory

  • VSwitchIds

  • PodVswitchIds

  • KubernetesVersion

  • PeriodUnit

  • Period

  • ZoneIds

  • NodePools の ScalingGroup.ZoneIds

  • NodePools の ScalingGroup.InstanceTypes

  • NodePools の ScalingGroup.DataDisks の Category

  • WorkerDataDisks の Category

  • NodePools の ScalingGroup.SystemDiskCategory

なし。

ALIYUN::CS::ServerlessKubernetesCluster

  • PeriodUnit

  • Period

  • KubernetesVersion

なし。

ALIYUN::DRDS::DrdsInstance

  • PricingCycle

  • Duration

なし。

ALIYUN::DTS::SubscriptionInstance

  • Period

  • UsedTime

なし。

ALIYUN::DTS::SynchronizationJob

  • Period

  • UsedTime

なし。

ALIYUN::ECD::Desktops

  • PeriodUnit

  • Period

なし。

ALIYUN::ECS::DedicatedHost

  • PeriodUnit

  • Period

なし。

ALIYUN::ECS::Disk

  • DiskCategory

  • ZoneId

なし。

ALIYUN::ECS::Instance

  • ZoneId

  • PeriodUnit

  • InstanceType

  • Period

  • SystemDiskCategory

  • DiskMappings の Category

なし。

ALIYUN::ECS::InstanceGroup

  • ZoneId

  • PeriodUnit

  • InstanceType

  • Period

  • SystemDiskCategory

  • DiskMappings の Category

なし。

ALIYUN::ECS::InstanceGroupClone

  • PeriodUnit

  • Period

  • SystemDiskCategory

  • DiskMappings の Category

  • PeriodUnit

  • Period

  • InstanceType

  • ZoneId

なし。

ALIYUN::ECS::PrepayInstance

  • PeriodUnit

  • Period

  • SystemDiskCategory

  • DiskMappings の Category

  • PeriodUnit

  • Period

  • InstanceType

  • ZoneId

なし。

ALIYUN::ECS::PrepayInstanceGroupClone

  • PeriodUnit

  • Period

  • SystemDiskCategory

  • DiskMappings の Category

  • PeriodUnit

  • Period

  • InstanceType

  • ZoneId

なし。

ALIYUN::ECS::VSwitch

  • ZoneId

  • Period

  • PeriodType

なし。

ALIYUN::EHPC::Cluster

  • PeriodUnit

  • Period

  • EcsOrderManagerInstanceType

  • EcsOrderComputeInstanceType

  • EcsOrderLoginInstanceType

  • SystemDiskType

  • ZoneId

なし。

ALIYUN::ElasticSearch::Instance

  • PeriodUnit

  • ZoneId

  • Period

  • DataNode の Spec

  • MasterNode の Spec

  • KibanaNode の Spec

ゾーン別にのみ仕様をクエリできます。

ALIYUN::EMR::Cluster

  • HostGroup の DiskType

  • NetType

  • HostGroup の SysDiskType

  • HostGroup の InstanceType

  • ZoneId

なし。

ALIYUN::Flink::Instance

  • PricingCycle

  • Duration

  • ZoneId

なし。

ALIYUN::GA::Accelerator

  • PricingCycle

  • Duration

なし。

ALIYUN::GA::BandwidthPackage

  • PricingCycle

  • Duration

なし。

ALIYUN::GPDB::DBInstance

  • ZoneId

  • PeriodUnit

  • Period

なし。

ALIYUN::GPDB::ElasticDBInstance

  • ZoneId

  • EngineVersion

  • InstanceSpec

  • DBInstanceCategory

  • SegStorageType

なし。

ALIYUN::GWS::Instance

  • PeriodUnit

  • Period

なし。

ALIYUN::MONGODB::Instance

  • StorageType

  • DBInstanceClass

  • EngineVersion

  • ZoneId

なし。

ALIYUN::MONGODB::PrepayInstance

  • StorageType

  • DBInstanceClass

  • EngineVersion

  • ZoneId

なし。

ALIYUN::MONGODB::ServerlessInstance

  • StorageType

  • DBInstanceClass

  • EngineVersion

  • ZoneId

なし。

ALIYUN::MONGODB::ShardingInstance

  • StorageType

  • DBInstanceClass

  • EngineVersion

  • ZoneId

なし。

ALIYUN::NAS::FileSystem

  • ProtocolType

  • StorageType

  • ZoneId

なし。

ALIYUN::POLARDB::DBCluster

  • ZoneId

  • Duration

  • PricingCycle

  • DBNodeClass

なし。

ALIYUN::PrivateLink::VpcEndpointService

  • Resource の ZoneId

なし。

ALIYUN::RDS::DBInstance

  • ZoneId

  • Period

  • PeriodType

  • EngineVersion

  • Category

  • DBInstanceStorageType

  • DBInstanceClass

説明
  • 完全な検証を行うには、ZoneId、DBInstanceStorageType、および Category を指定する必要があります。

  • 完全な検証を行うには、MultiAZ を false に設定する必要があります。

  • 完全な検証を行うには、Metadata を使用してパラメーターの順序を指定する際に、ApsaraDB RDS の Engine プロパティに関連するパラメーターを、他の ApsaraDB RDS プロパティに関連するパラメーターの前に配置する必要があります。

ALIYUN::RDS::DBInstanceClone

  • PeriodType

  • Period

  • Category

  • EngineVersion

  • PeriodType

  • DBInstanceClass

  • DBInstanceStorageType

  • Period

  • ZoneId

説明
  • 完全な検証を行うには、ZoneId、DBInstanceStorageType、および Category を指定する必要があります。

  • 完全な検証を行うには、MultiAZ を false に設定する必要があります。

  • 完全な検証を行うには、Metadata を使用してパラメーターの順序を指定する際に、ApsaraDB RDS の Engine プロパティに関連するパラメーターを、他の ApsaraDB RDS プロパティに関連するパラメーターの前に配置する必要があります。

ALIYUN::RDS::PrepayDBInstance

  • ZoneId

  • EngineVersion

  • Category

  • DBInstanceStorageType

  • DBInstanceClass

  • Period

  • PeriodType

説明
  • 完全な検証を行うには、ZoneId、DBInstanceStorageType、および Category を指定する必要があります。

  • 完全な検証を行うには、MultiAZ を false に設定する必要があります。

  • 完全な検証を行うには、Metadata を使用してパラメーターの順序を指定する際に、ApsaraDB RDS の Engine プロパティに関連するパラメーターを、他の ApsaraDB RDS プロパティに関連するパラメーターの前に配置する必要があります。

ALIYUN::RDS::ReadOnlyDBInstance

  • PeriodType

  • Period

  • Category

  • DBInstanceClass

  • EngineVersion

  • DBInstanceStorageType

  • ZoneId

説明
  • 完全な検証を行うには、ZoneId、DBInstanceStorageType、および Category を指定する必要があります。

  • 完全な検証を行うには、MultiAZ を false に設定する必要があります。

  • 完全な検証を行うには、Metadata を使用してパラメーターの順序を指定する際に、ApsaraDB RDS の Engine プロパティに関連するパラメーターを、他の ApsaraDB RDS プロパティに関連するパラメーターの前に配置する必要があります。

ALIYUN::REDIS::Instance

  • ZoneId

  • EngineVersion

  • InstanceClass

  • PeriodUnit

  • Period

なし。

ALIYUN::REDIS::PrepayInstance

  • ZoneId

  • Period

  • PeriodUnit

  • EngineVersion

  • InstanceClass

なし。

ALIYUN::SLB::AnyTunnel

  • PricingCycle

  • Duration

  • MasterZoneId

  • SlaveZoneId

なし。

ALIYUN::SLB::LoadBalancer

  • MasterZoneId

  • SlaveZoneId

  • Duration

  • PricingCycle

なし。

ALIYUN::TSDB::HiTSDBInstance

  • InstanceClass

  • ZoneId

  • Duration

  • PricingCycle

なし。

ALIYUN::VPC::EIP

  • PricingCycle

  • Period

なし。

ALIYUN::VPC::EIPPro

  • PricingCycle

  • Period

なし。

ALIYUN::VPC::NatGateway

  • ZoneId

  • Duration

  • PricingCycle

なし。

ALIYUN::VPC::RouterInterface

  • PricingCycle

  • Period

なし。

パラメーター間の依存関係

Resource Orchestration Service (ROS) でテンプレートを使用して Elastic Compute Service (ECS) リソースを作成する場合は、ZoneInfoInstanceType などのパラメーターを指定する必要があります。

サポートされている ECS インスタンスタイプは、ゾーンによって異なります。そのため、InstanceType パラメーターの特定の値は、ZoneInfo パラメーターを指定した後に使用できなくなる場合があります。

InstanceType パラメーターの特定の値のみを使用する場合は、Metadata セクションを使用して、InstanceType パラメーターと ZoneInfo パラメーター間の依存関係を構成できます。

説明

詳細については、「Metadata」をご参照ください。

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ZoneInfo:
    Type: String
  InstanceType:
    Type: String
Resources:
  ECS:
    Type: ALIYUN::ECS::Instance
    Properties:
      ZoneId:
        Ref: ZoneInfo
      InstanceType:
        Ref: InstanceType
      ImageId: ubuntu
Metadata:
  ALIYUN::ROS::Interface:
    ParameterGroups:
      - Parameters:
          - InstanceType
          - ZoneInfo

Terraform テンプレートのパラメーター制約クエリを手動で構成する

Metadata セクションまたは .metadata ファイルの ALIYUN::ROS::Interface に ResourcesForParameterConstraints を追加して、パラメーターの制約を構成できます。

パラメーター制約に関連するリソースを定義し、リソースプロパティを指定する必要があります。 ResourcesForParameterConstraints の構文の詳細については、「Resources」をご参照ください。

テンプレートで定義されている Mappings、Conditions、および Rules セクションの構成は、パラメーター制約クエリ中に自動的に有効になります。 詳細については、「(オプション) Mappings」、「(オプション) Conditions」、および「(オプション) Rules」をご参照ください。

ROSTemplateFormatVersion: '2015-09-01'
Transform: Aliyun::Terraform-v1.1
Workspace:
  .metadata: |-
    {
        "ALIYUN::ROS::Interface": {
            "ResourcesForParameterConstraints": {
                "instance": {
                    "Type": "ALIYUN::ECS::Instance",
                    "Properties": {
                        "ImageId": {
                            "Ref": "image_id"
                        },
                        "InstanceType": {
                            "Ref": "instance_type"
                        },
                        "ZoneId": {
                            "Ref": "zone_id"
                        }
                    }
                }
            },
            "Hidden": [
                "image_id"
            ]
        }
    }
  main.tf: |-
    variable "image_id" {
      type    = string
      default = "ubuntu_18_04_64_20G_alibase_2019****.vhd"
    }

    variable "instance_type" {
      type = string
    }

    variable "zone_id" {
      type = string
    }

    resource "alicloud_vpc" "vpc" {
      cidr_block = "172.16.X.X/16"
    }

    resource "alicloud_security_group" "group" {
      vpc_id = alicloud_vpc.vpc.id
    }

    resource "alicloud_vswitch" "vswitch" {
      vpc_id     = alicloud_vpc.vpc.id
      cidr_block = "172.16.X.X/24"
      zone_id    = var.zone_id
    }

    resource "alicloud_instance" "instance" {
      availability_zone = var.zone_id
      security_groups   = [alicloud_security_group.group.id]
      instance_type     = var.instance_type
      image_id          = var.image_id
      vswitch_id        = alicloud_vswitch.vswitch.id
    }

上記の Terraform テンプレートでは、4 つのリソースが定義されています。 zone_id パラメーターと instance_type パラメーターに制約が構成され、パラメーターは alicloud_instance に関連付けられています。

ResourcesForParameterConstraints では、alicloud_instance に対応する ROS の ALIYUN::ECS::Instance リソースタイプのみが定義されています。 リソースタイプは、image_id、instance_type、および zone_id パラメーターに関連付けられており、これらのパラメーターの制約を構成します。 この例では、image_id パラメーターは非表示になっています。