Consulte os valores válidos dos parâmetros definidos em um modelo com base nas restrições de propriedades de recursos.
Informações básicas
AssociationProperty e AssociationPropertyMetadata permitem filtrar parâmetros, mas os resultados podem não atender aos seus requisitos em cenários específicos.
Por exemplo, serviços diferentes aceitam valores distintos de ZoneId. Utilize uma consulta de restrição de parâmetros para obter os valores de ZoneId definidos no seu modelo.
Propriedades compatíveis
Se uma propriedade de recurso for referenciada por um parâmetro por meio da função Ref, chame a operação GetTemplateParameterConstraints para obter o valor da propriedade. A tabela a seguir lista as propriedades e os tipos de recursos compatíveis.
Chame a operação GetFeatureDetails para obter os tipos de recursos cujas propriedades aceitam consultas de restrição de parâmetros.
O modelo de destino deve conter a seção Parameters.
|
Tipo de recurso |
Propriedade |
Descrição |
|
ALIYUN::ADB::DBCluster |
|
Nenhuma. |
|
ALIYUN::ALB::LoadBalancer |
|
Nenhuma. |
|
ALIYUN::AMQP::Instance |
|
Nenhuma. |
|
ALIYUN::ApiGateway::Instance |
|
Nenhuma. |
|
ALIYUN::CDDC::DedicatedHost |
|
Nenhuma. |
|
ALIYUN::CEN::CenBandwidthPackage |
|
Nenhuma. |
|
ALIYUN::ClickHouse::DBCluster |
|
Nenhuma. |
|
ALIYUN::CloudPhone::InstanceGroup |
|
Nenhuma. |
|
ALIYUN::CS::AnyCluster |
|
Nenhuma. |
|
ALIYUN::CS::ClusterNodePool |
|
Nenhuma. |
|
ALIYUN::CS::KubernetesCluster |
|
Nenhuma. |
|
ALIYUN::CS::ManagedEdgeKubernetesCluster |
|
Nenhuma. |
|
ALIYUN::CS::ManagedKubernetesCluster |
|
Nenhuma. |
|
ALIYUN::CS::ServerlessKubernetesCluster |
|
Nenhuma. |
|
ALIYUN::DRDS::DrdsInstance |
|
Nenhuma. |
|
ALIYUN::DTS::SubscriptionInstance |
|
Nenhuma. |
|
ALIYUN::DTS::SynchronizationJob |
|
Nenhuma. |
|
ALIYUN::ECD::Desktops |
|
Nenhuma. |
|
ALIYUN::ECS::DedicatedHost |
|
Nenhuma. |
|
ALIYUN::ECS::Disk |
|
Nenhuma. |
|
ALIYUN::ECS::Instance |
|
Nenhuma. |
|
ALIYUN::ECS::InstanceGroup |
|
Nenhuma. |
|
ALIYUN::ECS::InstanceGroupClone |
|
Nenhuma. |
|
ALIYUN::ECS::PrepayInstance |
|
Nenhuma. |
|
ALIYUN::ECS::PrepayInstanceGroupClone |
|
Nenhuma. |
|
ALIYUN::ECS::VSwitch |
|
Nenhuma. |
|
ALIYUN::EHPC::Cluster |
|
Nenhuma. |
|
ALIYUN::ElasticSearch::Instance |
|
A consulta de especificações é possível apenas por zona. |
|
ALIYUN::EMR::Cluster |
|
Nenhuma. |
|
ALIYUN::Flink::Instance |
|
Nenhuma. |
|
ALIYUN::GA::Accelerator |
|
Nenhuma. |
|
ALIYUN::GA::BandwidthPackage |
|
Nenhuma. |
|
ALIYUN::GPDB::DBInstance |
|
Nenhuma. |
|
ALIYUN::GPDB::ElasticDBInstance |
|
Nenhuma. |
|
ALIYUN::GWS::Instance |
|
Nenhuma. |
|
ALIYUN::MONGODB::Instance |
|
Nenhuma. |
|
ALIYUN::MONGODB::PrepayInstance |
|
Nenhuma. |
|
ALIYUN::MONGODB::ServerlessInstance |
|
Nenhuma. |
|
ALIYUN::MONGODB::ShardingInstance |
|
Nenhuma. |
|
ALIYUN::NAS::FileSystem |
|
Nenhuma. |
|
ALIYUN::POLARDB::DBCluster |
|
Nenhuma. |
|
ALIYUN::PrivateLink::VpcEndpointService |
|
Nenhuma. |
|
ALIYUN::RDS::DBInstance |
|
Nota
|
|
ALIYUN::RDS::DBInstanceClone |
|
Nota
|
|
ALIYUN::RDS::PrepayDBInstance |
|
Nota
|
|
ALIYUN::RDS::ReadOnlyDBInstance |
|
Nota
|
|
ALIYUN::REDIS::Instance |
|
Nenhuma. |
|
ALIYUN::REDIS::PrepayInstance |
|
Nenhuma. |
|
ALIYUN::SLB::AnyTunnel |
|
Nenhuma. |
|
ALIYUN::SLB::LoadBalancer |
|
Nenhuma. |
|
ALIYUN::TSDB::HiTSDBInstance |
|
Nenhuma. |
|
ALIYUN::VPC::EIP |
|
Nenhuma. |
|
ALIYUN::VPC::EIPPro |
|
Nenhuma. |
|
ALIYUN::VPC::NatGateway |
|
Nenhuma. |
|
ALIYUN::VPC::RouterInterface |
|
Nenhuma. |
Dependências de parâmetros
Ao criar recursos ECS no ROS usando um modelo, especifique parâmetros como ZoneInfo e InstanceType.
Os tipos de instância ECS compatíveis variam conforme a zona. Um valor específico do parâmetro InstanceType pode ficar indisponível após a definição do parâmetro ZoneInfo.
Para restringir o uso a um valor específico do parâmetro InstanceType, utilize a seção Metadata para configurar a dependência entre InstanceType e ZoneInfo.
Para mais informações, consulte 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
Configure manualmente restrições de parâmetros para modelos Terraform
Adicione ResourcesForParameterConstraints a ALIYUN::ROS::Interface na seção Metadata ou no arquivo .metadata para configurar as restrições de parâmetros.
Defina os recursos e propriedades relevantes para as restrições de parâmetros. Para mais detalhes sobre a sintaxe de ResourcesForParameterConstraints, consulte Resources.
As seções Mappings, Conditions e Rules em um modelo entram em vigor automaticamente durante as consultas de restrição de parâmetros. Para mais informações, consulte (Opcional) Mappings, (Opcional) Conditions e (Opcional) 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
}
Este modelo Terraform define quatro recursos. Os parâmetros zone_id e instance_type possuem restrições e estão associados a alicloud_instance.
ResourcesForParameterConstraints define apenas o tipo de recurso ALIYUN::ECS::Instance (correspondente a alicloud_instance), associando-o a image_id, instance_type e zone_id para aplicar restrições a esses parâmetros. O parâmetro image_id permanece oculto.