O recurso ALIYUN::ECS::InstanceGroupClone clona um grupo de instâncias ECS a partir de uma instância source com a mesma configuração.
Sintaxe
{
"Type": "ALIYUN::ECS::InstanceGroupClone",
"Properties": {
"BackendServerWeight": Integer,
"SystemDiskAutoSnapshotPolicyId": String,
"DiskMappings": List,
"Period": Number,
"LaunchTemplateName": String,
"RamRoleName": String,
"ResourceGroupId": String,
"KeyPairName": String,
"SystemDiskDiskName": String,
"PeriodUnit": String,
"Description": String,
"Tags": List,
"AutoRenewPeriod": Number,
"ImageId": String,
"AutoRenew": String,
"SpotStrategy": String,
"SourceInstanceId": String,
"EniMappings": List,
"Password": String,
"PasswordInherit": Boolean,
"MaxAmount": Integer,
"AutoReleaseTime": String,
"SystemDiskCategory": String,
"LoadBalancerIdToAttach": String,
"LaunchTemplateId": String,
"LaunchTemplateVersion": String,
"ZoneId": String,
"InternetMaxBandwidthOut": Integer,
"InstanceName": String,
"DeletionProtection": Boolean,
"DeploymentSetId": String,
"Ipv6AddressCount": Integer,
"SecurityGroupId": String,
"SecurityGroupIds": List,
"SpotPriceLimit": String,
"HpcClusterId": String,
"SystemDiskDescription": String,
"Ipv6Addresses": List,
"SystemDiskProvisionedIops": Integer,
"SystemDiskBurstingEnabled": Boolean,
"SystemDiskKMSKeyId": String,
"SystemDiskStorageClusterId": String,
"InternetMaxBandwidthIn": Integer,
"UpdatePolicy": String,
"SystemDiskEncryptAlgorithm": String,
"SystemDiskEncrypted": String,
"SecurityOptions": Map,
"ImageOptions": Map,
"NetworkOptions": Map,
"HostNames": List,
"NetworkInterfaceQueueNumber": Integer,
"UniqueSuffix": Boolean,
"CpuOptions": Map
}
}
Propriedades
|
Nome da propriedade |
Tipo |
Obrigatório |
Permite atualizações |
Descrição |
Restrições |
|
MaxAmount |
Integer |
Sim |
Sim |
Número de instâncias ECS a criar. |
Valores válidos: 1 a 100. |
|
SourceInstanceId |
String |
Sim |
Não |
ID da instância ECS a clonar. |
Clona o tipo de instância, imagem, método de faturamento de largura de banda, limite de largura de banda, tipo de rede e outras configurações. Se a instância source pertencer a vários grupos de segurança, a instância clonada ingressará apenas no primeiro deles. |
|
AutoReleaseTime |
String |
Não |
Não |
Horário de liberação automática da instância. |
O horário deve estar no formato ISO 8601. Exemplo: |
|
AutoRenew |
String |
Não |
Sim |
Define se a renovação automática deve ser ativada. |
Valores válidos:
Este parâmetro é obrigatório quando InstanceChargeType está definido como PrePaid. |
|
AutoRenewPeriod |
Number |
Não |
Sim |
Período de renovação automática. |
Este parâmetro é obrigatório quando AutoRenew está definido como true. Valores válidos:
|
|
BackendServerWeight |
Integer |
Não |
Não |
Peso do servidor backend na instância SLB. |
Valores válidos: 0 a 100. Valor padrão: 100. |
|
CpuOptions |
Map |
Não |
Não |
Propriedades da CPU. |
Para mais informações, consulte Propriedades de CpuOptions. |
|
DeletionProtection |
Boolean |
Não |
Não |
Define se a instância pode ser liberada pelo console ou pela chamada da operação de API DeleteInstance. |
Valores válidos:
|
|
DeploymentSetId |
String |
Não |
Sim |
ID do conjunto de implantação. |
Nenhuma |
|
Description |
String |
Não |
Sim |
Descrição da instância. |
A descrição pode ter até 256 caracteres. |
|
DiskMappings |
List |
Não |
Sim |
Discos a anexar. |
Suporta no máximo 16 discos. Para mais informações, consulte Propriedades de DiskMappings. |
|
EniMappings |
List |
Não |
Sim |
ENIs a anexar à instância. |
É possível anexar no máximo uma ENI à instância. Para mais informações, consulte Propriedades de EniMappings. |
|
HostNames |
List |
Não |
Não |
Nomes de host das instâncias. Especifique um nome de host diferente para cada instância. |
Nenhuma |
|
HpcClusterId |
String |
Não |
Sim |
ID do cluster E-HPC ao qual a nova instância pertence. |
Nenhuma |
|
ImageId |
String |
Não |
Sim |
ID da imagem. Suporta imagens públicas, personalizadas e do Alibaba Cloud Marketplace. |
Use correspondência aproximada para especificar um ID de imagem pública sem precisar informar o ID completo. Exemplo:
|
|
ImageOptions |
Map |
Não |
Não |
Propriedades da imagem. |
Para mais informações, consulte Propriedades de ImageOptions. |
|
InstanceName |
String |
Não |
Sim |
Nome da nova instância. |
O nome pode ter até 128 caracteres. Pode conter letras, caracteres chineses, dígitos, sublinhados (_), pontos (.) e hífens (-). |
|
InternetMaxBandwidthIn |
Integer |
Não |
Não |
Largura de banda de entrada máxima da Internet. |
Unidade: Mbit/s. Valores válidos: 0 a 200. Valor padrão: 200. |
|
InternetMaxBandwidthOut |
Integer |
Não |
Não |
Largura de banda pública de saída máxima. |
Unidade: Mbit/s. Valores válidos:
|
|
Ipv6AddressCount |
Integer |
Não |
Sim |
Número de endereços IPv6 gerados aleatoriamente para atribuir à ENI. |
Não é possível especificar Ipv6Addresses e Ipv6AddressCount simultaneamente. |
|
Ipv6Addresses |
List |
Não |
Sim |
Um ou mais endereços IPv6 para atribuir à ENI. |
A lista pode conter no máximo um endereço. Alterações nesta propriedade não afetam as instâncias existentes. Não é possível especificar Ipv6Addresses e Ipv6AddressCount simultaneamente. |
|
KeyPairName |
String |
Não |
Sim |
Nome do par de chaves a anexar à nova instância ECS. |
Este parâmetro é ignorado para instâncias ECS Windows. Se você especificar KeyPairName, o valor de Password ainda será definido para a instância, mas o login por senha será desativado em sistemas Linux. |
|
LaunchTemplateId |
String |
Não |
Sim |
ID do modelo de execução. |
Nenhuma |
|
LaunchTemplateName |
String |
Não |
Sim |
Nome do modelo de execução. |
Nenhuma |
|
LaunchTemplateVersion |
String |
Não |
Sim |
Versão do modelo de execução. |
Se nenhuma versão for especificada, a versão padrão será utilizada. |
|
LoadBalancerIdToAttach |
String |
Não |
Não |
ID da instância SLB à qual a nova instância ECS será adicionada. |
Nenhuma |
|
NetworkInterfaceQueueNumber |
Integer |
Não |
Não |
Número de filas para a NIC primária. |
Observação:
|
|
NetworkOptions |
Map |
Não |
Não |
Propriedades e parâmetros relacionados à rede. |
Para mais informações, consulte Propriedades de NetworkOptions. |
|
Password |
String |
Não |
Sim |
Senha de login da instância. |
A senha deve ter de 8 a 30 caracteres e conter letras, dígitos e caracteres especiais. Caracteres especiais suportados: Ao especificar este parâmetro, utilize o protocolo HTTPS na chamada da operação de API para evitar vazamento da senha. |
|
PasswordInherit |
Boolean |
Não |
Não |
Define se a senha predefinida da imagem deve ser usada. |
Valores válidos:
Nota
Ao utilizar este parâmetro, o parâmetro Password deve estar vazio e a imagem deve possuir uma senha configurada. |
|
Period |
Number |
Não |
Sim |
Ciclo de faturamento. |
Valores válidos: 1 a 9, 12, 24, 36, 48 e 60. Unidade: mês. Este parâmetro é obrigatório quando InstanceChargeType está definido como PrePaid. É opcional quando InstanceChargeType está definido como PostPaid. |
|
PeriodUnit |
String |
Não |
Sim |
Unidade de duração da assinatura. |
Valores válidos:
|
|
RamRoleName |
String |
Não |
Sim |
Nome da função RAM da instância. |
Consulte os nomes das funções RAM chamando ListRoles. Criar uma função Obter lista de funções. |
|
ResourceGroupId |
String |
Não |
Não |
ID do grupo de recursos da instância. |
Nenhuma |
|
SecurityGroupId |
String |
Não |
Não |
ID do grupo de segurança da instância. |
Não é possível especificar SecurityGroupId e SecurityGroupIds simultaneamente. |
|
SecurityGroupIds |
List |
Não |
Não |
IDs dos grupos de segurança da instância. |
Para mais informações, consulte Limites. Não é possível especificar SecurityGroupId e SecurityGroupIds simultaneamente. |
|
SecurityOptions |
Map |
Não |
Não |
Propriedades do sistema confiável. |
Para mais informações, consulte Propriedades de SecurityOptions. |
|
SpotPriceLimit |
String |
Não |
Não |
Preço máximo por hora da instância. |
O valor pode ter até três casas decimais. SpotPriceLimit entra em vigor quando SpotStrategy está definido como SpotWithPriceLimit. |
|
SpotStrategy |
String |
Não |
Sim |
Política de lance para instâncias de pagamento conforme o uso. |
Este parâmetro é obrigatório quando InstanceChargeType está definido como PostPaid. Valores válidos:
|
|
SystemDiskAutoSnapshotPolicyId |
String |
Não |
Sim |
ID da política de snapshot automático do disco do sistema. |
Nenhuma |
|
SystemDiskBurstingEnabled |
Boolean |
Não |
Sim |
Define se o bursting deve ser ativado para o disco do sistema. |
Valores válidos:
|
|
SystemDiskCategory |
String |
Não |
Sim |
Tipo do disco do sistema. |
Valores válidos:
|
|
SystemDiskDescription |
String |
Não |
Sim |
Descrição do disco do sistema. |
Nenhuma |
|
SystemDiskDiskName |
String |
Não |
Sim |
Nome do disco do sistema. |
O nome deve ter de 2 a 128 caracteres. Deve começar com uma letra ou caractere chinês e não pode iniciar com |
|
SystemDiskEncryptAlgorithm |
String |
Não |
Sim |
Algoritmo de criptografia do disco do sistema. |
Valores válidos:
|
|
SystemDiskEncrypted |
String |
Não |
Sim |
Define se o disco do sistema deve ser criptografado. |
Valores válidos:
|
|
SystemDiskKMSKeyId |
String |
Não |
Sim |
ID da chave KMS usada para o disco do sistema. |
Nenhuma |
|
SystemDiskProvisionedIops |
Integer |
Não |
Sim |
IOPS provisionado do disco do sistema. |
Nenhuma |
|
SystemDiskStorageClusterId |
String |
Não |
Sim |
ID do cluster de armazenamento em bloco dedicado do disco do sistema. |
Nenhuma |
|
Tags |
List |
Não |
Sim |
Tags personalizadas. |
Suporta no máximo 20 tags. Formato: Para mais informações, consulte Propriedades de Tags. |
|
UniqueSuffix |
Boolean |
Não |
Não |
Define se um sufixo sequencial deve ser adicionado a |
O sufixo sequencial começa em 001 e é incrementado. O valor máximo não pode exceder 999. Valores válidos:
Quando |
|
UpdatePolicy |
String |
Não |
Sim |
Política de atualização. |
Valores válidos:
|
|
ZoneId |
String |
Não |
Não |
ID da zona. |
Nenhuma |
Sintaxe de DiskMappings
"DiskMappings": [
{
"Category": String,
"DiskName": String,
"Description": String,
"Encrypted": String,
"KMSKeyId": String,
"Device": String,
"SnapshotId": String,
"Size": String,
"PerformanceLevel": String,
"AutoSnapshotPolicyId": String,
"ProvisionedIops": Integer,
"BurstingEnabled": Boolean,
"StorageClusterId": String
}
]
Propriedades de DiskMappings
|
Nome da propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Size |
String |
Sim |
Não |
Tamanho do disco de dados. |
Unidade: GB. |
|
AutoSnapshotPolicyId |
String |
Não |
Não |
ID da política de snapshot automático. |
Nenhuma |
|
BurstingEnabled |
Boolean |
Não |
Não |
Define se o bursting deve ser ativado. |
Valores válidos:
|
|
Category |
String |
Não |
Não |
Tipo do disco de dados. |
Valores válidos:
|
|
Description |
String |
Não |
Não |
Descrição do disco de dados. |
A descrição deve ter de 2 a 256 caracteres. Não pode começar com |
|
Device |
String |
Não |
Não |
Nome do dispositivo do disco de dados. |
Exemplo: |
|
DiskName |
String |
Não |
Não |
Nome do disco de dados. |
O nome pode ter até 128 caracteres. Pode conter letras, caracteres chineses, dígitos, sublinhados (_), pontos (.) e hífens (-). |
|
Encrypted |
String |
Não |
Não |
Define se o disco de dados deve ser criptografado. |
Valores válidos:
|
|
KMSKeyId |
String |
Não |
Não |
ID da chave KMS do disco de dados. |
Nenhuma |
|
PerformanceLevel |
String |
Não |
Não |
Nível de desempenho para disco de dados SSD empresarial. |
Valores válidos:
Para informações sobre como selecionar um nível de desempenho ESSD, consulte ESSDs. |
|
ProvisionedIops |
Integer |
Não |
Não |
IOPS provisionado. |
Nenhuma |
|
SnapshotId |
String |
Não |
Não |
ID do snapshot. |
Nenhuma |
|
StorageClusterId |
String |
Não |
Não |
ID do cluster de armazenamento em bloco dedicado. |
Nenhuma |
Sintaxe de EniMappings
"EniMappings": [
{
"SecurityGroupId": String,
"VSwitchId": String,
"Description": String,
"NetworkInterfaceName": String,
"PrimaryIpAddress": String,
"InstanceType": String,
"Ipv6AddressCount": Integer,
"NetworkInterfaceTrafficMode": String,
"Ipv6Addresses": List,
"QueueNumber": Integer,
"SecurityGroupIds": List,
"QueuePairNumber": Integer,
"NetworkInterfaceId": String,
"DeleteOnRelease": Boolean,
"NetworkCardIndex": Integer
}
]
Propriedades de EniMappings
|
Nome da propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
DeleteOnRelease |
Boolean |
Não |
Não |
Define se a NIC deve ser mantida quando a instância for liberada. |
Valores válidos:
|
|
Description |
String |
Não |
Sim |
Descrição da ENI. |
A descrição deve ter de 2 a 256 caracteres e não pode começar com |
|
InstanceType |
String |
Não |
Não |
Tipo da ENI. |
É possível configurar no máximo duas NICs. Ao configurar uma ENI, defina-a como primária ou secundária. Ao configurar duas ENIs, apenas uma pode ser primária e a outra secundária. Valores válidos:
|
|
Ipv6AddressCount |
Integer |
Não |
Não |
Número de endereços IPv6 gerados aleatoriamente para atribuir à NIC primária. |
Valores válidos: 1 a 10. Observações:
|
|
Ipv6Addresses |
List |
Não |
Não |
Um ou mais endereços IPv6 para atribuir à NIC primária. |
É possível definir no máximo 10 endereços IPv6. Observações:
|
|
NetworkCardIndex |
Integer |
Não |
Não |
Índice da NIC física. |
|
|
NetworkInterfaceId |
String |
Não |
Não |
ID da ENI a anexar à instância. |
Este parâmetro é efetivo apenas para ENIs secundárias. Após especificar uma ENI secundária existente, não será possível configurar outros parâmetros de criação de NIC. |
|
NetworkInterfaceName |
String |
Não |
Sim |
Nome da ENI. |
O nome deve ter de 2 a 128 caracteres. Deve começar com uma letra ou caractere chinês e não pode iniciar com |
|
NetworkInterfaceTrafficMode |
String |
Não |
Não |
Modo de comunicação da NIC. |
Valores válidos:
Nota
O número de ENIs no modo RDMA não pode exceder o limite da família de instâncias. Famílias de instâncias. |
|
PrimaryIpAddress |
String |
Não |
Não |
Endereço IP privado primário da ENI. |
O endereço IP especificado deve ser um endereço disponível dentro do bloco CIDR do vSwitch. Se nenhum endereço IP for especificado, um endereço disponível do bloco CIDR do vSwitch será atribuído aleatoriamente. |
|
QueueNumber |
Integer |
Não |
Não |
Número de filas da ENI. |
Observações:
|
|
QueuePairNumber |
Integer |
Não |
Não |
Número de filas da NIC RDMA. |
Este campo é do tipo Long. Pode haver perda de precisão durante a serialização ou desserialização. Garanta que o valor não exceda 9007199254740991. |
|
SecurityGroupId |
String |
Não |
Sim |
ID do grupo de segurança. |
O grupo de segurança deve estar na mesma VPC. |
|
SecurityGroupIds |
List |
Não |
Não |
IDs dos grupos de segurança da ENI. |
Observações:
|
|
VSwitchId |
String |
Não |
Não |
ID do vSwitch. |
Nenhuma |
Sintaxe de SecurityOptions
"SecurityOptions": {
"TrustedSystemMode": String
}
Propriedades de SecurityOptions
|
Nome da propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
TrustedSystemMode |
String |
Não |
Não |
Modo de sistema confiável. |
Valor válido: vTPM. Atualmente, o modo de sistema confiável é suportado pelas famílias de instâncias g7, c7 e r7, e pelas famílias de instâncias com segurança aprimorada (g7t, c7t e r7t). Você deve definir este parâmetro ao criar instâncias ECS dessas famílias. Detalhes: Se você utilizar o Alibaba Cloud Trusted System, defina este parâmetro como vTPM. Isso permite que a instância conclua uma verificação de confiança através do Alibaba Cloud Trusted System na inicialização. Se não utilizar o Alibaba Cloud Trusted System, deixe este parâmetro vazio. No entanto, observe que se a instância ECS criada usar o modo de computação confidencial Enclave (SecurityOptions.ConfidentialComputingMode=Enclave), o sistema confiável também será ativado para a instância ECS. Ao usar a OpenAPI para criar uma instância ECS com sistema confiável, chame apenas RunInstances. CreateInstance atualmente não suporta a definição do parâmetro SecurityOptions.TrustedSystemMode. Nota
Se você especificar uma instância como confiável durante a criação, só poderá usar uma imagem que suporte o sistema confiável ao substituir o disco do sistema. |
Sintaxe de ImageOptions
"ImageOptions": {
"LoginAsNonRoot": Boolean
}
Propriedades de ImageOptions
|
Nome da propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
LoginAsNonRoot |
Boolean |
Não |
Não |
Define se a imagem suporta login como ecs-user. |
Valores válidos:
|
Sintaxe de CpuOptions
"CpuOptions": {
"ThreadsPerCore": Integer,
"Core": Integer
}
Propriedades de CpuOptions
|
Nome da propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Core |
Integer |
Não |
Não |
Número de núcleos de CPU. |
Não é possível personalizar este parâmetro. Use apenas o valor padrão. Valor padrão: Consulte Alterar opções de CPU. |
|
ThreadsPerCore |
Integer |
Não |
Não |
Número de threads por núcleo de CPU. |
O número de vCPUs de uma instância ECS = Valor de |
Sintaxe de NetworkOptions
"NetworkOptions": {
"EnableJumboFrame": Boolean
}
Propriedades de NetworkOptions
|
Nome da propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
EnableJumboFrame |
Boolean |
Não |
Não |
Define se o recurso de jumbo frame deve ser ativado para a instância. |
Valores válidos:
Nota
Apenas alguns tipos de instância da geração VIII ou posterior suportam jumbo frames. Jumbo frames. |
Sintaxe de Tags
"Tags": [
{
"Value": String,
"Key": String
}
]
Propriedades de Tags
|
Nome da propriedade |
Tipo |
Obrigatório |
Atualizável |
Descrição |
Restrições |
|
Key |
String |
Sim |
Não |
Chave da tag. |
A chave deve ter de 1 a 128 caracteres e não pode começar com |
|
Value |
String |
Não |
Não |
Valor da tag. |
O valor deve ter de 0 a 128 caracteres e não pode começar com |
Valores de retorno
Fn::GetAtt
InstanceIds: IDs das novas instâncias. Um ID de instância é um identificador globalmente único gerado pelo sistema para uma instância.
PrivateIps: Lista de endereços IP privados das instâncias do tipo VPC. Este atributo é retornado quando o parâmetro NetworkType está definido como
vpc. Exemplo: ["172.16.XX.XX", "172.16.XX.XX", ..., "172.16.XX.XX"]. A lista pode conter até 100 endereços IP.InnerIps: Lista de endereços IP privados das instâncias do tipo Classic Network. Este atributo é retornado quando o parâmetro NetworkType está definido como
classic. Exemplo: ["10.1.XX.XX", "10.1.XX.XX", ..., "10.1.XX.XX"]. A lista pode conter até 100 endereços IP.PublicIps: Lista de endereços IP públicos das instâncias do tipo Classic Network. Este atributo é retornado quando o parâmetro NetworkType está definido como
classic. Exemplo: ["42.1.XX.XX", "42.1.XX.XX", ..., "42.1.XX.XX"]. A lista pode conter até 100 endereços IP.HostNames: Lista de nomes de host das novas instâncias.
OrderId: Lista de IDs de pedido das novas instâncias.
ZoneIds: Lista de IDs das zonas.
RelatedOrderIds: Lista de IDs de pedidos relacionados às instâncias ECS criadas.
Ipv6AddressIds: Lista de IDs de endereços IPv6 das instâncias ECS criadas. Observação: Este atributo retorna uma lista bidimensional. Se uma instância não tiver endereços IPv6, o elemento correspondente na lista será uma lista vazia. Se nenhuma das instâncias tiver um endereço IPv6, null será retornado.
Ipv6Addresses: Lista de endereços IPv6 das instâncias ECS criadas. Observação: Este atributo retorna uma lista bidimensional. Se uma instância não tiver endereços IPv6, o elemento correspondente na lista será null. Se nenhuma das instâncias tiver um endereço IPv6, null será retornado.
Exemplos
ROSTemplateFormatVersion: '2015-09-01'
Description: According the existing ECS instance, clone a set of ECS instanes with the same configuration(InstanceType, ImageId, InternetChargeType, InternetMaxBandwidthOut, system disk, data disk configurations, VPC properties). The user only needs to specify SourceInstanceId.
Parameters:
SourceInstanceId:
Type: String
Description: The source ECS instance ID to be cloned
Label: Source Instance ID
InstanceName:
Type: String
Description: The instance name. The name must be 2 to 128 characters in length. It can contain letters, Chinese characters, digits, underscores (_), periods (.), and hyphens (-).
ConstraintDescription: '[2, 128] characters, consists of uppercase letter, lowercase letter, number or special characters.'
Label: Instance Name
Default: ClonedECS
MaxLength: 128
MinLength: 2
MaxAmount:
Type: Number
Description: The maximum number of ECS instances to create at a time. This value must be greater than or equal to the minimum number of ECS instances to create at a time.
ConstraintDescription: An integer within [1, 100]
Label: The Maximum of ECS Instances
MaxValue: 100
MinValue: 1
Default: 1
Password:
Type: String
Description: 'The password must be 8 to 30 characters in length. It must contain three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Supported special characters: ( ) ` ~ ! @ # $ % ^ * - + = | { } [ ] : ; ‘ , . ? /.'
ConstraintDescription: 'Length 8-30, must contain three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Supported special characters: ()`~!@#$%^*_-+=|{}[]:;'',.?/'
Label: ECS Instance Password
MaxLength: 30
MinLength: 8
AllowedPattern: '[a-zA-Z0-9-\(\)\`\~\!@\#\$%\^\*-+=\|\{\}\[\]\:\;\‘\,\.\?\/]*'
NoEcho: true
Metadata:
ALIYUN::ROS::Interface:
ParameterGroups:
- Parameters:
- InstanceName
- SourceInstanceId
- MaxAmount
- Password
Label:
default: ECS
TemplateTags:
- acs:example:elastic-computing:Specify SourceInstanceId to clone a group of ECS instances with the same configuration.
Resources:
ECSInstanceGroup:
Type: ALIYUN::ECS::InstanceGroupClone
Properties:
SourceInstanceId:
Ref: SourceInstanceId
MaxAmount:
Ref: MaxAmount
Password:
Ref: Password
Outputs:
InstanceIds:
Description: The instance ID list of created ecs instance
Value:
Fn::GetAtt:
- ECSInstanceGroup
- InstanceIds
PublicIps:
Description: Public IP address list of created ecs instance.
Value:
Fn::GetAtt:
- ECSInstanceGroup
- PublicIps
ZoneIds:
Description: Zone ID of created instance.
Value:
Fn::GetAtt:
- ECSInstanceGroup
- ZoneIds
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "According the existing ECS instance, clone a set of ECS instanes with the same configuration(InstanceType, ImageId, InternetChargeType, InternetMaxBandwidthOut, system disk, data disk configurations, VPC properties). The user only needs to specify SourceInstanceId.",
"Parameters": {
"SourceInstanceId": {
"Type": "String",
"Description": "The source ECS instance ID to be cloned",
"Label": "Source Instance ID"
},
"InstanceName": {
"Type": "String",
"Description": "The instance name. The name must be 2 to 128 characters in length. It can contain letters, Chinese characters, digits, underscores (_), periods (.), and hyphens (-).",
"ConstraintDescription": "[2, 128] characters, consists of uppercase letter, lowercase letter, number or special characters.",
"Label": "Instance Name",
"Default": "ClonedECS",
"MaxLength": 128,
"MinLength": 2
},
"MaxAmount": {
"Type": "Number",
"Description": "The maximum number of ECS instances to create at a time. This value must be greater than or equal to the minimum number of ECS instances to create at a time.",
"ConstraintDescription": "An integer within [1, 100]",
"Label": "The Maximum of ECS Instances",
"MaxValue": 100,
"MinValue": 1,
"Default": 1
},
"Password": {
"Type": "String",
"Description": "The password must be 8 to 30 characters in length. It must contain three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Supported special characters: ( ) ` ~ ! @ # $ % ^ * - + = | { } [ ] : ; ‘ , . ? /.",
"ConstraintDescription": "Length 8-30, must contain three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Supported special characters: ()`~!@#$%^*_-+=|{}[]:;',.?/",
"Label": "ECS Instance Password",
"MaxLength": 30,
"MinLength": 8,
"AllowedPattern": "[a-zA-Z0-9-\\(\\)\\`\\~\\!@\\#\\$%\\^\\*-+=\\|\\{\\}\\[\\]\\:\\;\\‘\\,\\.\\?\\/]*",
"NoEcho": true
}
},
"Metadata": {
"ALIYUN::ROS::Interface": {
"ParameterGroups": [
{
"Parameters": [
"InstanceName",
"SourceInstanceId",
"MaxAmount",
"Password"
],
"Label": {
"default": "ECS"
}
}
],
"TemplateTags": [
"acs:example:elastic-computing:Specify SourceInstanceId to clone a group of ECS instances with the same configuration."
]
}
},
"Resources": {
"ECSInstanceGroup": {
"Type": "ALIYUN::ECS::InstanceGroupClone",
"Properties": {
"SourceInstanceId": {
"Ref": "SourceInstanceId"
},
"MaxAmount": {
"Ref": "MaxAmount"
},
"Password": {
"Ref": "Password"
}
}
}
},
"Outputs": {
"InstanceIds": {
"Description": "The instance ID list of created ecs instance",
"Value": {
"Fn::GetAtt": [
"ECSInstanceGroup",
"InstanceIds"
]
}
},
"PublicIps": {
"Description": "Public IP address list of created ecs instance.",
"Value": {
"Fn::GetAtt": [
"ECSInstanceGroup",
"PublicIps"
]
}
},
"ZoneIds": {
"Description": "Zone ID of created instance.",
"Value": {
"Fn::GetAtt": [
"ECSInstanceGroup",
"ZoneIds"
]
}
}
}
}