En una plantilla de Resource Orchestration Service (ROS), AssociationProperty recupera los recursos disponibles en la región seleccionada, mientras que AssociationPropertyMetadata agrega condiciones de filtro para los parámetros. En conjunto, permiten seleccionar valores de parámetros de forma dinámica en la consola sin necesidad de alternar entre varias consolas.
Descripción de parámetros
El parámetro AssociationPropertyMetadata acepta los siguientes valores:
Es posible especificar un valor concreto para el parámetro. Por ejemplo, si se establece
"RegionId": "cn-hangzhou", ROS utiliza la regióncn-hangzhou.-
También se puede asignar una variable al parámetro con el formato
${ParameterKey}. Por ejemplo, al definir"VpcId": "${VpcId}", ROS obtiene dinámicamente el valor del parámetroVpcIdde la plantilla actual.NotaPara usar
${ParameterKey}como campo estático, agregue un signo de exclamación (!). Por ejemplo,${!Literal}se evalúa como la cadena literal${Literal}.Para utilizar una variable de parámetro en una plantilla de terraform, anteponga un símbolo
$antes del símbolo$. Por ejemplo, si se define"VpcId": "$${VpcId}", ROS recupera dinámicamente el valor deVpcIddesde la plantilla de terraform.
Los metadatos obligatorios de AssociationPropertyMetadata varían según el tipo de recurso indicado en AssociationProperty.
Custom resources: Configura recursos personalizados, como consultas de datos basadas en parámetros para la OpenAPI de productos de Alibaba Cloud.
Basic resources: Configura tipos básicos comunes de parámetros.
ACR resources: Recursos de Container Registry Personal Edition.
APIG resources: Recursos de API Gateway.
ALB resources: Recursos de Application Load Balancer.
Bailian resources: Recursos de Model Studio.
BSS resources: Recursos de User Center.
CAS resources: Recursos de SSL Certificate.
CEN resources: Recursos de Cloud Enterprise Network.
CMS resources: Recursos de Cloud Monitor.
CR resources: Recursos de Container Registry Enterprise Edition.
CS resources: Recursos de Container Service for Kubernetes.
ComputeNest resources: Recursos de Compute Nest.
ComputeNestSupplier resources: Recursos de proveedor de Compute Nest.
DNS resources: Recursos de Alibaba Cloud DNS.
DashVector resources: Recursos de DashVector Vector Retrieval Service.
Domain resources: Recursos de Domain Names.
EAS resources: Recursos de Machine Learning PAI-EAS.
ECD resources: Recursos de Cloud Desktop.
ECI resources: Recursos de Elastic Container Instance.
ECS resources: Recursos de Elastic Computing Service (ECS).
EHPC resources: Recursos de Elastic High Performance Computing.
ESS resources: Recursos de Auto Scaling.
Elasticsearch resources: Recursos de Elasticsearch.
Emr resources: Recursos de E-MapReduce.
FC3 resources: Recursos de Function Compute (FC3).
FC resources: Recursos de Function Compute.
Flow resources: Recursos de Logic Composer.
Hologres resources: Recursos de Hologres.
InfluxDB resources: Recursos de Time Series Database InfluxDB.
Kafka resources: Recursos de Message Queue for Kafka.
Lindorm resource: Un recurso dentro del servicio Lindorm.
MongoDB resources: Recursos de ApsaraDB for MongoDB.
NAS resources: Recursos de File Storage NAS.
NLB resources: Recursos de Network Load Balancer (NLB).
OOS resources: Recursos de Operation Orchestration Service (OOS).
OSS resources: Recursos de Object Storage Service (OSS).
PolarDB resources: Recursos de PolarDB.
RAM resources: Recursos de Resource Access Management (RAM).
RDS resources: Recursos de ApsaraDB RDS.
Redis resources: Recursos de Redis.
ResourceManager resources: Recursos de Resource Management.
SAE resources: Recursos de Serverless App Engine (SAE).
SLB resources: Recursos de Server Load Balancer (SLB).
ServiceCatalog resources: Recursos de Service Catalog.
Tag resources: Recursos de etiquetas.
User resources: Recursos de usuario.
VPC resources: Recursos de Virtual Private Cloud (VPC).
Ejemplos
Ejemplo 1: Uso de AssociationProperty
Establezca AssociationProperty en ALIYUN::ECS::Image::ImageId para recuperar todos los ID de imagen en la región seleccionada.
Ejemplo en JSON:
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"UserName": {
"Label": "Username",
"Description": "Enter a username",
"Default": "anonymous",
"Type": "String",
"MinLength": "6",
"MaxLength": "12",
"AllowedValues": [
"anonymous",
"user-one",
"user-two"
]
},
"PassWord": {
"Label": "Password",
"NoEcho": "True",
"Description": "Enter a user password",
"Type": "String",
"MinLength": "1",
"MaxLength": "41",
"AllowedPattern": "[a-zA-Z0-9]*"
},
"ImageId": {
"Label": "Image",
"Type": "String",
"Description": "Select an image",
"AssociationProperty": "ALIYUN::ECS::Image::ImageId",
"Default": "centos_7_7_x64_20G_alibase_2020****.vhd"
}
}
}
Ejemplo en YAML:
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
UserName:
Label: Username
Description: Enter a username
Default: anonymous
Type: String
MinLength: '6'
MaxLength: '12'
AllowedValues:
- anonymous
- user-one
- user-two
PassWord:
Label: Password
NoEcho: 'True'
Description: Enter a user password
Type: String
MinLength: '1'
MaxLength: '41'
AllowedPattern: '[a-zA-Z0-9]*'
ImageId:
Label: Image
Type: String
Description: Select an image
AssociationProperty: ALIYUN::ECS::Image::ImageId
Default: centos_7_7_x64_20G_alibase_2020****.vhd
Descripción de parámetros:
-
UserName: Nombre de usuario. Este parámetro es una cadena que debe tener entre 6 y 12 caracteres. Valores válidos:
anonymous (predeterminado)
user-one
user-two
-
PassWord: Contraseña. Este parámetro es una cadena de 1 a 41 caracteres que admite letras mayúsculas, minúsculas y dígitos. No tiene valor predeterminado.
Si
NoEchose establece entrue, el valor del parámetro no se devuelve al consultar la pila. -
ImageId: ID de la imagen. Tipo cadena.
Cuando
AssociationPropertyse configura comoALIYUN::ECS::Image::ImageId, la consola de ROS valida el ID de imagen especificado durante la creación de la pila y muestra otros ID de imagen disponibles en la región seleccionada mediante una lista desplegable.
Ejemplo 2: Uso de AssociationPropertyMetadata
Defina AssociationProperty junto con su AssociationPropertyMetadata correspondiente (RegionId, VpcId y ZoneId) para obtener el vSwitch de una virtual private cloud (VPC) y zona específicas. En este caso, RegionId se fija al campo estático cn-hangzhou, mientras que VpcId y ZoneId emplean las variables ${VpcId} y ${EcsZone}. Dichas variables se actualizan de manera dinámica según los valores seleccionados para ALIYUN::ECS::VPC::VPCId y ZoneId, lo que vincula el vSwitch con la VPC y la zona elegidas.
Para parámetros como EcsZone que tienen configurado AllowedValues, agregue AutoChangeType a AssociationPropertyMetadata y establézcalo en false. Esto permite que los valores permitidos aparezcan como una lista desplegable en la consola de ROS.
Ejemplo en JSON:
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"VpcId": {
"Type": "String",
"AssociationProperty": "ALIYUN::ECS::VPC::VPCId"
},
"EcsZone": {
"Type": "String",
"AllowedValues": [
"cn-hangzhou-i",
"cn-hangzhou-j",
"cn-hangzhou-k",
"cn-hangzhou-h"
],
"AssociationPropertyMetadata": {
"AutoChangeType": false
}
},
"VSwitchId": {
"Type": "String",
"AssociationProperty": "ALIYUN::VPC::VSwitch::VSwitchId",
"AssociationPropertyMetadata": {
"RegionId": "cn-hangzhou",
"VpcId": "${VpcId}",
"ZoneId": "${EcsZone}"
}
}
}
}
Ejemplo en YAML:
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
VpcId:
Type: String
AssociationProperty: ALIYUN::ECS::VPC::VPCId
EcsZone:
Type: String
AllowedValues:
- cn-hangzhou-i
- cn-hangzhou-j
- cn-hangzhou-k
- cn-hangzhou-h
AssociationPropertyMetadata:
AutoChangeType: false
VSwitchId:
Type: String
AssociationProperty: ALIYUN::VPC::VSwitch::VSwitchId
AssociationPropertyMetadata:
RegionId: cn-hangzhou
VpcId: ${VpcId}
ZoneId: ${EcsZone}
Ejemplo 3: Transformación automática de terraform
Si AssociationProperty se establece en Auto, ROS genera automáticamente los campos AssociationProperty y AssociationPropertyMetadata a partir de la estructura de datos original de terraform.
Más ejemplos
También puede aprovechar AssociationProperty y AssociationPropertyMetadata para: