ALIYUN::ECS::InstanceGroup類型用於建立一組相同配置的ECS執行個體。
文法
{
"Type": "ALIYUN::ECS::InstanceGroup",
"Properties": {
"DedicatedHostId": String,
"ResourceGroupId": String,
"SystemDiskDescription": String,
"InstanceChargeType": String,
"RamRoleName": String,
"SystemDiskPerformanceLevel": String,
"ImageId": String,
"SystemDiskDiskName": String,
"Tags": List,
"HostName": String,
"LaunchTemplateName": String,
"VSwitchId": String,
"Period": Number,
"ZoneIds": List,
"LaunchTemplateId": String,
"DeletionProtection": Boolean,
"SecurityGroupIds": List,
"SecurityEnhancementStrategy": String,
"InternetChargeType": String,
"InstanceName": String,
"DeploymentSetId": String,
"InternetMaxBandwidthOut": Integer,
"VpcId": String,
"LaunchTemplateVersion": String,
"PeriodUnit": String,
"AutoReleaseTime": String,
"PrivateIpAddress": String,
"Description": String,
"DiskMappings": List,
"SystemDiskSize": Number,
"UserData": String,
"AutoRenew": String,
"Ipv6Addresses": List,
"MaxAmount": Integer,
"SystemDiskAutoSnapshotPolicyId": String,
"Ipv6AddressCount": Integer,
"NetworkType": String,
"SpotPriceLimit": String,
"InstanceType": String,
"AllocatePublicIP": Boolean,
"SpotStrategy": String,
"Password": String,
"PasswordInherit": Boolean,
"AutoRenewPeriod": Number,
"KeyPairName": String,
"IoOptimized": String,
"ZoneId": String,
"HpcClusterId": String,
"SecurityGroupId": String,
"SystemDiskCategory": String,
"EniMappings": List,
"SystemDiskProvisionedIops": Integer,
"SystemDiskBurstingEnabled": Boolean,
"SpotInterruptionBehavior": String,
"SpotDuration": Integer,
"UpdatePolicy": String,
"SystemDiskEncrypted": String,
"SystemDiskEncryptAlgorithm": String,
"SystemDiskStorageClusterId": String,
"SystemDiskKMSKeyId": String,
"CreditSpecification": String,
"PrivatePoolOptions": Map,
"StorageSetId": String,
"HttpTokens": String,
"HttpEndpoint": String,
"Tenancy": String,
"StorageSetPartitionNumber": Integer,
"DeploymentSetGroupNo": Integer,
"Affinity": String,
"UseAdditionalService": Boolean,
"ImageFamily": String,
"DeletionForce": Boolean,
"UniqueSuffix": Boolean,
"NetworkOptions": Map,
"CpuOptions": Map,
"NetworkInterfaceQueueNumber": Integer,
"HostNames": List,
"ImageOptions": Map,
"SecurityOptions": Map,
"SchedulerOptions": Map
}
}
屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
ResourceGroupId | String | 否 | 是 | 執行個體所在的資源群組ID。 | 無 |
SpotInterruptionBehavior | String | 否 | 否 | 搶佔執行個體中斷模式。 | 目前僅支援Terminate(預設)直接釋放執行個體。 |
SpotDuration | Integer | 否 | 否 | 搶佔式執行個體的保留時間長度。 | 取值範圍:0~6。 單位:小時。 取值:
|
HpcClusterId | String | 否 | 是 | 執行個體所屬的HPC叢集ID。 | 更新該參數僅對新增ECS執行個體生效。 |
MaxAmount | Integer | 是 | 是 | 一次性建立ECS執行個體的個數。 | 取值範圍:1~1000。 說明 當更新資源棧時,如果MaxAmount取值增加(或減少),將新增(或減少)對應數量的ECS執行個體。例如:MaxAmount取值從2增加到5,將新增3個ECS執行個體。 |
Description | String | 否 | 是 | 描述資訊。 | 最長256個字元。 說明 更新該參數僅對新增ECS執行個體生效。 |
InstanceType | String | 是 | 是 | ECS執行個體規格。 | 更多資訊,請參見執行個體規格類型系列。 說明 當UpdatePolicy取值為ForAllInstances時,才會對已有執行個體進行更新,否則更新該參數只針對新增執行個體生效。 |
ImageId | String | 否 | 是 | 用於啟動ECS執行個體的鏡像ID。包括公用鏡像、自訂鏡像和雲市場鏡像。 | 支援通過模糊的方式指定公用鏡像ID,而不需要指定一個完整的公用鏡像ID。例如:
更多資訊,請參見請求參數。 說明 當UpdatePolicy取值為ForAllInstances時,才會對已有執行個體進行更新,否則更新該參數只針對新增執行個體生效。 |
SecurityGroupId | String | 否 | 否 | 新建立執行個體所屬的安全性群組ID,同一個安全性群組內的執行個體之間可以互相訪問。 | 不支援同時指定SecurityGroupId和SecurityGroupIds。 |
SecurityGroupIds | List | 否 | 否 | 新建立執行個體所屬的安全性群組ID列表。 | 不支援同時指定SecurityGroupId和SecurityGroupIds。 更多資訊,請參見安全性群組。 |
SecurityEnhancementStrategy | String | 否 | 否 | 是否啟用安全強化。 | 取值:
|
InstanceName | String | 否 | 否 | 執行個體名稱。 | 最長為128個字元。可包含英文字母、漢字、數字、底線(_)、半形句號(.)和短劃線(-)。 通過 |
Password | String | 否 | 是 | ECS執行個體登入密碼。 | 長度為8~30個字元。必須同時包含大寫英文字母、小寫英文字母、數字和特殊字元其中三項,支援的特殊字元為: 如果指定Password參數,請使用HTTPS協議調用API,以免發生密碼泄露。 說明 當UpdatePolicy取值為ForAllInstances時,才會對已有執行個體進行更新,否則更新該參數只針對新增執行個體生效。 |
PasswordInherit | Boolean | 否 | 否 | 是否使用鏡像預設的密碼。 | 取值:
說明 使用該參數時,Password參數必須為空白,同時您需要確保使用的鏡像已經設定了密碼。 |
ZoneIds | List | 否 | 否 | 可用性區域列表。 | 無 |
HostName | String | 否 | 否 | 主機名稱。 | 長度最少2個字元。半形句號(.)和短劃線(-)不能作為hostname的首尾字元,且不能連續使用。 更多資訊,請參見請求參數。 |
AllocatePublicIP | Boolean | 否 | 否 | 是否建立公網IP。 | 如果InternetMaxBandwidthOut為0,則不會建立公網IP。 取值:
|
AutoReleaseTime | String | 否 | 否 | ECS執行個體自動釋放的時間。 | 時間格式必須遵守ISO8601規範,例如 |
PrivateIpAddress | String | 否 | 否 | 執行個體私網IP地址。 | 專用網路類型ECS執行個體設定私網IP地址時,必須從交換器的空閑網段中選擇。 說明 如果設定PrivateIpAddress,MaxAmount取值只能為1。 |
DiskMappings | List | 否 | 是 | 為ECS執行個體建立的資料盤。 | 最多建立16塊資料盤。 修改該參數,不會影響已建立的執行個體,新建立的執行個體會使用修改後的值。 更多資訊,請參見DiskMappings屬性。 說明 更新該參數僅對新增ECS執行個體生效。 |
InternetChargeType | String | 否 | 是 | 公網訪問頻寬計費方式。 | 取值:
說明 當UpdatePolicy取值為ForAllInstances時,才會對已有執行個體進行更新,否則更新該參數只針對新增執行個體生效。 |
InternetMaxBandwidthOut | Integer | 否 | 是 | 公網出頻寬最大值。 | 取值範圍:0~100。 單位:Mbps。 預設值:0。 說明 當UpdatePolicy取值為ForAllInstances時,才會對已有執行個體進行更新,否則更新該參數只針對新增執行個體生效。 |
SystemDiskProvisionedIops | Integer | 否 | 是 | 系統硬碟預配的IOPS。 | 無 |
SystemDiskBurstingEnabled | Boolean | 否 | 是 | 系統硬碟是否啟用突發。 | 取值:
|
IoOptimized | String | 否 | 否 | 是否建立I/O最佳化執行個體。 | 取值:
|
SystemDiskCategory | String | 否 | 是 | 系統硬碟類型。 | 取值:
說明 當UpdatePolicy取值為ForAllInstances時,才會對已有執行個體進行更新,否則更新該參數只針對新增執行個體生效。 |
SystemDiskDescription | String | 否 | 是 | 系統硬碟描述資訊。 | 更新該參數僅對新增ECS執行個體生效。 |
SystemDiskDiskName | String | 否 | 是 | 系統硬碟名稱。 | 更新該參數僅對新增ECS執行個體生效。 |
SystemDiskSize | Number | 否 | 是 | 系統硬碟大小。 | 取值範圍:40~500。 單位:GB。 如果使用自訂鏡像建立系統硬碟,需要保證系統硬碟大於自訂鏡像大小。 說明 當UpdatePolicy取值為ForAllInstances時,才會對已有執行個體進行更新,否則更新該參數只針對新增執行個體生效。 |
Tags | List | 否 | 是 | 使用者自訂標籤。 | 最多支援20個標籤,格式: 更多資訊,請參見Tags屬性。 |
UserData | String | 否 | 是 | 建立ECS執行個體時傳遞的使用者資料。 | 內容需要限制在16KB以內。無需用Base64轉碼,特殊字元需要使用轉義符。 說明 當UpdatePolicy取值為ForAllInstances時,才會對已有執行個體進行更新,否則更新該參數只針對新增執行個體生效。 |
ZoneId | String | 否 | 否 | 可用性區域ID。 | 無 |
VpcId | String | 否 | 否 | 專用網路ID。 | 無 |
VSwitchId | String | 否 | 否 | 交換器ID。 | 無 |
KeyPairName | String | 否 | 是 | ECS執行個體綁定的金鑰組名稱。 | 如果是Windows ECS執行個體,則忽略該參數。預設為空白。 如果已填寫KeyPairName,Password的內容仍會被設定到執行個體中,但是Linux系統中的密碼登入方式會被禁止。 說明 更新該參數僅對新增ECS執行個體生效。 |
RamRoleName | String | 否 | 是 | 執行個體RAM角色名稱。 | 您可以調用ListRoles查詢執行個體RAM角色名稱。 |
SpotPriceLimit | String | 否 | 否 | 執行個體的每小時最高價格。 | 最大支援3位小數。當SpotStrategy為SpotWithPriceLimit時,該參數生效。 |
SpotStrategy | String | 否 | 是 | 後付費執行個體的競價策略。 | 當InstanceChargeType為PostPaid時,該參數生效。 取值:
|
DedicatedHostId | String | 否 | 否 | Dedicated HostID。 | 無 |
LaunchTemplateName | String | 否 | 是 | 啟動模板名稱。 | 無 |
PeriodUnit | String | 否 | 是 | 購買資源的時間長度周期。 | 取值:
說明 更新該參數僅對新增ECS執行個體生效。 |
AutoRenewPeriod | Number | 否 | 是 | 每次自動續約的時間長度。 | 當AutoRenew為True時,該參數為必填參數。 取值:
說明 更新該參數僅對新增ECS執行個體生效。 |
AutoRenew | String | 否 | 是 | 是否自動續約。 | 當InstanceChargeType為PrePaid時,該參數生效。 取值:
說明 更新該參數僅對新增ECS執行個體生效。 |
InstanceChargeType | String | 否 | 是 | 執行個體的付費方式。 | 取值:
說明 更新該參數僅對新增ECS執行個體生效。 |
EniMappings | List | 否 | 是 | 附加到執行個體的彈性網卡。 | 附加到執行個體的彈性網卡個數最多為1個。 更多資訊,請參見EniMappings屬性。 |
LaunchTemplateId | String | 否 | 是 | 啟動模板ID。 | 無 |
LaunchTemplateVersion | String | 否 | 是 | 啟動模板的版本。 | 如果沒有指定版本,則使用預設版本。 |
Period | Number | 否 | 是 | 購買資源的時間長度。 | 當InstanceChargeType為PrePaid時,該參數生效且為必選參數。 一旦指定了DedicatedHostId,則取值不能超過Dedicated Host的訂閱時間長度。
說明 更新該參數僅對新增ECS執行個體生效。 |
NetworkType | String | 否 | 否 | ECS執行個體網路類型。 | 取值:
|
DeletionProtection | Boolean | 否 | 是 | 執行個體釋放保護屬性,指定是否支援通過控制台或DeleteInstance介面釋放執行個體。 | 取值:
|
DeploymentSetId | String | 否 | 是 | 部署集ID。 | 更新該參數僅對新增ECS執行個體生效。 |
Ipv6AddressCount | Integer | 否 | 是 | 為彈性網卡指定隨機產生的IPv6地址數量。 | 不能同時指定Ipv6Addresses和Ipv6AddressCount。 說明 更新該參數僅對新增ECS執行個體生效。 |
Ipv6Addresses | List | 否 | 是 | 為彈性網卡指定IPv6地址。 | 最多指定一個IPv6地址。更改不影響現有執行個體。不能同時指定Ipv6Addresses和Ipv6AddressCount。 說明 更新該參數僅對新增ECS執行個體生效。 |
SystemDiskAutoSnapshotPolicyId | String | 否 | 是 | 系統硬碟自動快照策略ID。 | 無 |
SystemDiskPerformanceLevel | String | 否 | 是 | 建立ESSD雲端硬碟作為系統硬碟使用時,設定雲端硬碟的效能等級。 | 取值:
關於如何選擇ESSD效能等級,請參見ESSD雲端硬碟。 |
UpdatePolicy | String | 否 | 是 | 指定更新時的策略。 | 取值:
|
SystemDiskEncrypted | String | 否 | 是 | 系統硬碟是否加密。 | 取值:
|
SystemDiskEncryptAlgorithm | String | 否 | 是 | 系統硬碟採用的密碼編譯演算法。 | 取值:
|
SystemDiskStorageClusterId | String | 否 | 是 | 系統硬碟專屬Block Storage叢集ID。 | 無 |
SystemDiskKMSKeyId | String | 否 | 是 | 系統硬碟使用的KMS密鑰ID。 | 無 |
CreditSpecification
| String | 否 | 是 | 設定突發效能執行個體的運行模式。 | 取值:
|
PrivatePoolOptions | Map | 否 | 否 | 執行個體啟動的私人池容量選項。 | 更多資訊,請參考PrivatePoolOptions屬性。 |
StorageSetId | String | 否 | 否 | 儲存集ID。 | 無 |
HttpTokens | String | 否 | 是 | 訪問執行個體中繼資料時是否強制使用加固模式(IMDSv2)。 | 取值:
說明 有關訪問執行個體中繼資料的模式,請參見執行個體中繼資料。 |
HttpEndpoint | String | 否 | 是 | 是否啟用執行個體中繼資料的訪問通道。 | 取值:
說明 有關訪問執行個體中繼資料的模式,請參見執行個體中繼資料。 |
Tenancy | String | 否 | 否 | 是否在Dedicated Host上建立執行個體。 | 取值:
|
StorageSetPartitionNumber | Integer | 否 | 否 | 儲存集中的最大分區數量。 | 取值範圍:大於等於 2。 |
DeploymentSetGroupNo | Integer | 否 | 否 | 如果您設定的部署集對應的策略為部署集組高可用策略(AvailabilityGroup),可以通過該參數指定執行個體在部署集中的分組號。 | 取值範圍:1~7。 |
Affinity | String | 否 | 否 | Dedicated Host執行個體是否與Dedicated Host關聯。 | 取值:
|
UseAdditionalService | Boolean | 否 | 否 | 是否使用阿里雲提供的虛擬機器系統配置(Windows:NTP、KMS;Linux:NTP、YUM)。 | 取值:
|
ImageFamily | String | 否 | 否 | 鏡像族系名稱。 | 通過設定該參數來擷取當前鏡像族系內最新可用鏡像來建立執行個體。
說明 阿里雲官方鏡像關聯的鏡像族系資訊請參見公用鏡像概述。 |
DeletionForce | Boolean | 否 | 否 | 是否強制移除執行個體。 | 預設值為false。 |
UniqueSuffix | Boolean | 否 | 否 | 當建立多台執行個體時,是否為 | 有序尾碼從001開始遞增,最大不能超過999。取值範圍:
當 更多資訊,請參見大量設定有序的執行個體名稱或主機名稱。 |
NetworkOptions | Map | 否 | 否 | 網路相關屬性參數。 | 更多資訊,請參見NetworkOptions屬性。 |
CpuOptions | Map | 否 | 否 | CPU相關屬性參數。 | 更多資訊,請參見CpuOptions屬性。 |
NetworkInterfaceQueueNumber | Integer | 否 | 否 | 主網卡隊列數。 | 注意:
|
HostNames | List | 否 | 否 | 建立多台執行個體時,為每台執行個體指定不同的主機名稱。 | 無 |
ImageOptions | Map | 否 | 否 | 鏡像相關屬性資訊。 | 更多資訊,請參見ImageOptions屬性。 |
SecurityOptions | Map | 否 | 否 | 可信系統相關屬性資訊。 | 更多資訊,請參見SecurityOptions屬性。 |
SchedulerOptions | Map | 否 | 否 | 調度相關屬性資訊。 | 更多資訊,請參見SchedulerOptions屬性。 |
DiskMappings文法
"DiskMappings": [
{
"Category": String,
"DiskName": String,
"Description": String,
"Device": String,
"SnapshotId": String,
"Size": String,
"Encrypted": String,
"KMSKeyId": String,
"PerformanceLevel": String,
"AutoSnapshotPolicyId": String,
"ProvisionedIops": Integer,
"BurstingEnabled": Boolean,
"StorageClusterId": String
}
]
DiskMappings屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Size | String | 是 | 否 | 資料盤大小。 | 單位:GB。 |
Category | String | 否 | 否 | 資料盤的類型。 | 取值:
對於I/O最佳化執行個體,預設值為cloud_efficiency。 對於非I/O最佳化執行個體,預設值為cloud。 |
DiskName | String | 否 | 否 | 資料盤的名稱。 | 長度為2~128個字元。必須以英文字母或漢字開頭,不能以 |
Description | String | 否 | 否 | 資料盤的描述。 | 長度為2~256個字元。不能以 |
Device | String | 否 | 否 | 掛載點。 | 說明 該參數即將停止使用,為提高相容性,請盡量使用其他參數。 |
SnapshotId | String | 否 | 否 | 快照ID。 | 無 |
Encrypted | String | 否 | 否 | 資料盤是否加密。 | 取值:
|
KMSKeyId | String | 否 | 否 | 資料盤對應的KMS密鑰ID。 | 無 |
AutoSnapshotPolicyId | String | 否 | 否 | 自動快照策略ID。 | 無 |
PerformanceLevel | String | 否 | 否 | 建立ESSD雲端硬碟作為資料盤使用時,設定雲端硬碟的效能等級。 | 取值:
關於如何選擇ESSD效能等級,請參見ESSD雲端硬碟。 |
ProvisionedIops | Integer | 否 | 否 | 預配的IOPS。 | 無 |
BurstingEnabled | Boolean | 否 | 否 | 是否啟用突發。 | 取值:
|
StorageClusterId | String | 否 | 否 | 專屬Block Storage叢集ID。 | 無 |
Tags文法
"Tags": [
{
"Value": String,
"Key": String
}
]
Tags屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Key | String | 是 | 否 | 標籤鍵。 | 長度為1~128個字元,不能以 |
Value | String | 否 | 否 | 標籤值。 | 長度為0~128個字元,不能以 |
EniMappings文法
"EniMappings": [
{
"SecurityGroupId": String,
"VSwitchId": String,
"Description": String,
"NetworkInterfaceName": String,
"PrimaryIpAddress": String,
"InstanceType": String,
"Ipv6AddressCount": Integer,
"NetworkInterfaceTrafficMode": String,
"Ipv6Addresses": List,
"QueueNumber": Integer,
"SecurityGroupIds": List,
"NetworkInterfaceId": String,
"DeleteOnRelease": Boolean,
"NetworkCardIndex": Integer,
"QueuePairNumber": Integer
}
]
EniMappings屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
SecurityGroupId | String | 否 | 是 | 安全性群組ID。 | 所屬的安全性群組ID必須是同一個專用網路下的安全性群組。 |
VSwitchId | String | 否 | 否 | 交換器ID。 | 無 |
Description | String | 否 | 是 | 彈性網卡的描述資訊。 | 長度為2~256個字元,不能以 |
NetworkInterfaceName | String | 否 | 是 | 彈性網卡名稱。 | 長度為2~128個字元。必須以英文字母或漢字開頭,不能以 |
PrimaryIpAddress | String | 否 | 否 | 彈性網卡的主私人IP地址。 | 指定的IP必須是在所屬交換器的位址區段內的空閑地址。 如果不指定IP,則預設隨機分配該交換器中的空閑地址。 |
InstanceType | String | 否 | 否 | 彈性網卡類型。 | 最多設定2個網卡,設定1個彈性網卡時,支援設定1個主網卡或1個輔助網卡;設定2個彈性網卡時,僅支援同時設定1個主網卡和1個輔助網卡。 取值:
|
Ipv6AddressCount | Integer | 否 | 否 | 為主網卡指定隨機產生的IPv6地址數量。 | 取值範圍:1~10。 注意事項:
|
NetworkInterfaceTrafficMode | String | 否 | 否 | 網卡的通訊模式。 | 取值:
說明 RDMA模式的彈性網卡數量不能超過該執行個體規格類型系列的限制。更多資訊,請參見執行個體規格類型系列。 |
Ipv6Addresses | List | 否 | 否 | 為主網卡指定一個或多個IPv6地址。 | 支援設定最多10個IPv6地址。 注意事項:
|
QueueNumber | Integer | 否 | 否 | 彈性網卡隊列數。 | 注意事項:
|
SecurityGroupIds | List | 否 | 否 | 彈性網卡所屬的一個或多個安全性群組ID。 | 注意事項:
|
NetworkInterfaceId | String | 否 | 否 | 隨執行個體附加的彈性網卡ID。 | 該參數只對輔助彈性網卡生效。指定一個現有輔助彈性網卡後,您將無法配置其它網卡建立參數。 |
DeleteOnRelease | Boolean | 否 | 否 | 釋放執行個體時是否保留網卡 | 取值:
|
NetworkCardIndex | Integer | 否 | 否 | 網卡指定的物理網卡索引。 |
|
QueuePairNumber | Integer | 否 | 否 | RDMA網卡隊列數。 | 該欄位類型為Long,在序列化/還原序列化的過程中可能導致精度丟失,請注意數值不得大於9007199254740991。 |
PrivatePoolOptions文法
"PrivatePoolOptions": [
{
"Id": String,
"MatchCriteria": String
}
]
PrivatePoolOptions屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Id | String | 否 | 否 | 私人池ID。即彈性保障服務ID或容量預定服務ID。 | 無 |
MatchCriteria | String | 否 | 否 | 彈性保障服務或容量預定服務在生效後會產生私人池容量,供執行個體啟動時選擇。 | 取值:
以下任一情境,執行個體啟動的私人池容量選項只能取值
|
NetworkOptions文法
"NetworkOptions": {
"EnableJumboFrame": Boolean
}
NetworkOptions屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
EnableJumboFrame | Boolean | 否 | 否 | 執行個體是否開啟Jumbo frame特性。 | 取值:
預設值:true。 說明 只有八代以上部分執行個體規格支援開啟Jumbo frame特性。更多資訊請參見巨型幀(Jumbo Frames)。 |
CpuOptions文法
"CpuOptions": {
"ThreadsPerCore": Integer,
"Core": Integer
}
CpuOptions屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
ThreadsPerCore | Integer | 否 | 否 | CPU線程數。 | ECS 執行個體的vCPU 數= |
Core | Integer | 否 | 否 | CPU核心數。 | 該參數不支援自訂設定,只能採用預設值。 預設值:請參見自訂和查看CPU選項。 |
ImageOptions文法
"ImageOptions": {
"LoginAsNonRoot": Boolean
}
ImageOptions屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
LoginAsNonRoot | Boolean | 否 | 否 | 使用該鏡像的執行個體是否支援使用ecs-user使用者登入。 | 取值:
|
SecurityOptions文法
"SecurityOptions": {
"TrustedSystemMode": String
}
SecurityOptions屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
TrustedSystemMode | String | 否 | 否 | 可信系統模式。 | 取值:vTPM。目前,可信系統模式支援的執行個體規格類型系列:g7、c7、r7。安全增強型(g7t、c7t、r7t)。當您建立以上執行個體規格類型系列的ECS執行個體時,需要設定該參數。具體說明如下:如果您使用阿里雲可信系統,請將該參數值設定為vTPM,在執行個體啟動時即可通過阿里雲可信系統完成可信校正。如果您不使用阿里雲可信系統,可以不設定該參數值,但您需要注意,如果您所建立的ECS 執行個體使用了Enclave機密計算模式(SecurityOptions.ConfidentialComputingMode=Enclave),則該ECS執行個體也會啟用可信系統。通過OpenAPI建立可信系統的ECS執行個體時,只能調用RunInstances實現,CreateInstance目前不支援設定SecurityOptions.TrustedSystemMode參數。 說明 如果您在建立執行個體的時候指定其為可信執行個體,那麼當您更換系統硬碟時只能使用支援可信系統的鏡像。 關於可信系統的更多資訊,請參見可信計算能力概述。 |
SchedulerOptions文法
"SchedulerOptions": {
"ManagedPrivateSpaceId": String,
"DedicatedHostClusterId": String
}
SchedulerOptions屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
DedicatedHostClusterId | String | 否 | 否 | 指定ECS執行個體所屬的Dedicated Host叢集,系統會自動選擇該Dedicated Host叢集中的一台Dedicated Host部署ECS執行個體。 | 說明 僅在 在您同時指定了Dedicated Host(
您可以通過DescribeDedicatedHostClusters查詢Dedicated Host叢集 ID 列表。 |
ManagedPrivateSpaceId | String | 否 | 否 | 受管私人資源集區ID。 | 無 |
傳回值
Fn::GetAtt
InstanceIds:執行個體ID,訪問執行個體的唯一標識。由系統產生,全域唯一。
PrivateIps:VPC類型執行個體的私網IP列表。當NetworkType為
vpc
時,該參數生效。例如:一個帶有格式的JSON Array:["172.16.XX.XX", "172.16.XX.XX", … "172.16.XX.XX"]
,最多100個IP,用半形逗號(,)隔開。InnerIps:Classic類型執行個體的私網IP列表。當NetworkType為
classic
時,該參數生效。例如:一個帶有格式的JSON Array:["10.1.XX.XX", "10.1.XX.XX", …, "10.1.XX.XX"]
,最多100個IP,用半形逗號(,)隔開。PublicIps:Classic類型執行個體的公網IP列表。當NetworkType為
classic
時,該參數生效。例如:一個帶有格式的JSON Array:["42.1.XX.XX", "42.1.XX.XX", … "42.1.XX.XX"]
,最多100個IP,用半形逗號(,)隔開。HostNames:所有執行個體的主機名稱列表。
OrderId:執行個體的訂單ID列表。
ZoneIds:可用性區域ID。
Ipv6AddressIds:已建立ECS執行個體的IPv6地址ID列表。
說明傳回型別是兩層列表。如果執行個體沒有任何IPv6地址,則列表中相應位置的元素為空白。如果所有執行個體都沒有任何IP地址,則將返回null。
Ipv6Addresses:已建立ECS執行個體的IPv6地址清單。
說明傳回型別是兩層列表。如果執行個體沒有任何IPv6地址,則列表中相應位置的元素為空白。如果所有執行個體都沒有任何IP地址,則將返回null。
樣本
建立兩台ECS執行個體(OpsEcsInstance、ProdEcsInstance),並為ProdEcsInstance執行個體完成OpsEcsInstance免密登入操作。
如果您需要對ECS執行個體的Userdata指令碼執行結果進行訊息通知,請參見更多資訊和ALIYUN::ROS::WaitCondition。
YAML
格式
ROSTemplateFormatVersion: '2015-09-01'
Description: Creates VPC ECS instance
Parameters:
VpcId:
AssociationProperty: ALIYUN::ECS::VPC::VPCId
Type: String
Description:
en: Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud
zh-cn: 現有專用網路的執行個體ID
Label:
en: VPC ID
zh-cn: Virtual Private Cloud執行個體ID
VSwitchZoneId:
AssociationProperty: ALIYUN::ECS::Instance:ZoneId
Type: String
Description:
zh-cn: 交換器可用性區域
en: VSwitch Availability Zone
Label:
zh-cn: 交換器可用性區域
en: VSwitch Availability Zone
VSwitchId:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
AssociationPropertyMetadata:
VpcId: ${VpcId}
ZoneId: ${VSwitchZoneId}
Type: String
Description:
en: Instance ID of existing business network switches, console-Virtual Private Cloud-VSwitches under query
zh-cn: 現有業務網路交換器的執行個體ID
Label:
en: VSwitch ID
zh-cn: 交換器執行個體ID
SecurityGroupId:
Type: String
AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
AssociationPropertyMetadata:
VpcId: ${VpcId}
Description:
en: Please search the business security group ID starting with(sg-xxx)from console-ECS-Network & Security
zh-cn: 現有業務安全性群組的執行個體ID
Label:
en: Business Security Group ID
zh-cn: 業務安全性群組ID
InstanceType:
Type: String
Description:
zh-cn: 填寫vSwitch可用性區域下可使用的規格。
en: Fill in the specifications that can be used under the VSwitch availability zone.
Label:
zh-cn: 執行個體規格
en: Instance Type
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ${VSwitchZoneId}
SystemDiskCategory:
Type: String
Label:
en: System Disk Type
zh-cn: 系統硬碟類型
Description:
en: System Disk Type
zh-cn: 系統硬碟類型
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
ZoneId: ${VSwitchZoneId}
InstanceType: ${InstanceType}
Resources:
OpsEcsInstance:
Type: ALIYUN::ECS::InstanceGroup
Properties:
MaxAmount: 1
HostName: OpsEcsInstance
UserData:
Fn::Sub:
- |
#!/bin/bash
RootPassword=${RootPassword}
ProdIP=${ProdIP}
SSHConfig() {
echo '[ ! -f /root/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa &>/dev/null' >> /tmp/auto_ssh.sh
echo 'while read line;do' >> /tmp/auto_ssh.sh
echo ' ip=`echo $line | cut -d " " -f1`' >> /tmp/auto_ssh.sh
echo ' user_name=`echo $line | cut -d " " -f2`' >> /tmp/auto_ssh.sh
echo ' pass_word=`echo $line | cut -d " " -f3`' >> /tmp/auto_ssh.sh
echo 'expect <<EOF' >> /tmp/auto_ssh.sh
echo ' spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $user_name@$ip' >> /tmp/auto_ssh.sh
echo ' expect {' >> /tmp/auto_ssh.sh
echo ' "yes/no" { send "yes\n";exp_continue}' >> /tmp/auto_ssh.sh
echo ' "password" { send "$pass_word\n"}' >> /tmp/auto_ssh.sh
echo ' }' >> /tmp/auto_ssh.sh
echo ' expect eof' >> /tmp/auto_ssh.sh
echo 'EOF' >> /tmp/auto_ssh.sh
echo 'done < /tmp/host_ip.txt' >> /tmp/auto_ssh.sh
}
SetHostsConfig() {
echo "`ifconfig eth0 | awk '/inet /{print $2}'` root ${RootPassword}" >> /tmp/host_ip.txt
echo "${ProdIP} root ${RootPassword}" >> /tmp/host_ip.txt
sh /tmp/auto_ssh.sh
}
main() {
yum install -y expect
SSHConfig
SetHostsConfig
rm -rf /tmp/host_ip.txt
}
main
- ProdIP:
Fn::Select:
- '0'
- Fn::GetAtt:
- ProdEcsInstance
- PrivateIps
RootPassword: Admin@123!
VpcId:
Ref: VpcId
SecurityGroupId:
Ref: SecurityGroupId
VSwitchId:
Ref: VSwitchId
ImageId: centos_7
AllocatePublicIP: false
InstanceType:
Ref: InstanceType
SystemDiskSize: 40
SystemDiskCategory:
Ref: SystemDiskCategory
Password: Admin@123!
ProdEcsInstance:
Type: ALIYUN::ECS::InstanceGroup
Properties:
MaxAmount: 1
HostName: ProdEcsInstance
SystemDiskCategory:
Ref: SystemDiskCategory
VpcId:
Ref: VpcId
SecurityGroupId:
Ref: SecurityGroupId
SystemDiskSize: 40
ImageId: centos_7
VSwitchId:
Ref: VSwitchId
Password: Admin@123!
InstanceType:
Ref: InstanceType
AllocatePublicIP: false
Outputs: {}
JSON
格式
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "Creates VPC ECS instance",
"Parameters": {
"VpcId": {
"AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
"Type": "String",
"Description": {
"en": "Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud",
"zh-cn": "現有專用網路的執行個體ID"
},
"Label": {
"en": "VPC ID",
"zh-cn": "Virtual Private Cloud執行個體ID"
}
},
"VSwitchZoneId": {
"AssociationProperty": "ALIYUN::ECS::Instance:ZoneId",
"Type": "String",
"Description": {
"zh-cn": "交換器可用性區域",
"en": "VSwitch Availability Zone"
},
"Label": {
"zh-cn": "交換器可用性區域",
"en": "VSwitch Availability Zone"
}
},
"VSwitchId": {
"AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
"AssociationPropertyMetadata": {
"VpcId": "${VpcId}",
"ZoneId": "${VSwitchZoneId}"
},
"Type": "String",
"Description": {
"en": "Instance ID of existing business network switches, console-Virtual Private Cloud-VSwitches under query",
"zh-cn": "現有業務網路交換器的執行個體ID"
},
"Label": {
"en": "VSwitch ID",
"zh-cn": "交換器執行個體ID"
}
},
"SecurityGroupId": {
"Type": "String",
"AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId",
"AssociationPropertyMetadata": {
"VpcId": "${VpcId}"
},
"Description": {
"en": "Please search the business security group ID starting with(sg-xxx)from console-ECS-Network & Security",
"zh-cn": "現有業務安全性群組的執行個體ID"
},
"Label": {
"en": "Business Security Group ID",
"zh-cn": "業務安全性群組ID"
}
},
"InstanceType": {
"Type": "String",
"Description": {
"zh-cn": "填寫vSwitch可用性區域下可使用的規格。",
"en": "Fill in the specifications that can be used under the VSwitch availability zone."
},
"Label": {
"zh-cn": "執行個體規格",
"en": "Instance Type"
},
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
"AssociationPropertyMetadata": {
"ZoneId": "${VSwitchZoneId}"
}
},
"SystemDiskCategory": {
"Type": "String",
"Label": {
"en": "System Disk Type",
"zh-cn": "系統硬碟類型"
},
"Description": {
"en": "System Disk Type",
"zh-cn": "系統硬碟類型"
},
"AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",
"AssociationPropertyMetadata": {
"ZoneId": "${VSwitchZoneId}",
"InstanceType": "${InstanceType}"
}
}
},
"Resources": {
"OpsEcsInstance": {
"Type": "ALIYUN::ECS::InstanceGroup",
"Properties": {
"MaxAmount": 1,
"HostName": "OpsEcsInstance",
"UserData": {
"Fn::Sub": [
"#!/bin/bash\nRootPassword=${RootPassword}\nProdIP=${ProdIP}\nSSHConfig() {\necho '[ ! -f /root/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -P \"\" -f ~/.ssh/id_rsa &>/dev/null' >> /tmp/auto_ssh.sh\necho 'while read line;do' >> /tmp/auto_ssh.sh\necho ' ip=`echo $line | cut -d \" \" -f1`' >> /tmp/auto_ssh.sh\necho ' user_name=`echo $line | cut -d \" \" -f2`' >> /tmp/auto_ssh.sh\necho ' pass_word=`echo $line | cut -d \" \" -f3`' >> /tmp/auto_ssh.sh\necho 'expect <<EOF' >> /tmp/auto_ssh.sh\necho ' spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $user_name@$ip' >> /tmp/auto_ssh.sh\necho ' expect {' >> /tmp/auto_ssh.sh\necho ' \"yes/no\" { send \"yes\\n\";exp_continue}' >> /tmp/auto_ssh.sh\necho ' \"password\" { send \"$pass_word\\n\"}' >> /tmp/auto_ssh.sh\necho ' }' >> /tmp/auto_ssh.sh\necho ' expect eof' >> /tmp/auto_ssh.sh\necho 'EOF' >> /tmp/auto_ssh.sh\necho 'done < /tmp/host_ip.txt' >> /tmp/auto_ssh.sh\n}\nSetHostsConfig() {\necho \"`ifconfig eth0 | awk '/inet /{print $2}'` root ${RootPassword}\" >> /tmp/host_ip.txt\necho \"${ProdIP} root ${RootPassword}\" >> /tmp/host_ip.txt\nsh /tmp/auto_ssh.sh\n}\nmain() {\nyum install -y expect\nSSHConfig\nSetHostsConfig\nrm -rf /tmp/host_ip.txt\n}\nmain\n",
{
"ProdIP": {
"Fn::Select": [
"0",
{
"Fn::GetAtt": [
"ProdEcsInstance",
"PrivateIps"
]
}
]
},
"RootPassword": "Admin@123!"
}
]
},
"VpcId": {
"Ref": "VpcId"
},
"SecurityGroupId": {
"Ref": "SecurityGroupId"
},
"VSwitchId": {
"Ref": "VSwitchId"
},
"ImageId": "centos_7",
"AllocatePublicIP": false,
"InstanceType": {
"Ref": "InstanceType"
},
"SystemDiskSize": 40,
"SystemDiskCategory": {
"Ref": "SystemDiskCategory"
},
"Password": "Admin@123!"
}
},
"ProdEcsInstance": {
"Type": "ALIYUN::ECS::InstanceGroup",
"Properties": {
"MaxAmount": 1,
"HostName": "ProdEcsInstance",
"SystemDiskCategory": {
"Ref": "SystemDiskCategory"
},
"VpcId": {
"Ref": "VpcId"
},
"SecurityGroupId": {
"Ref": "SecurityGroupId"
},
"SystemDiskSize": 40,
"ImageId": "centos_7",
"VSwitchId": {
"Ref": "VSwitchId"
},
"Password": "Admin@123!",
"InstanceType": {
"Ref": "InstanceType"
},
"AllocatePublicIP": false
}
}
},
"Outputs": {
}
}
UpdatePolicy簡介
當我們使用ALIYUN::ECS::InstanceGroup建立一組ECS執行個體後,需要對已建立的這組ECS進行配置批次更新時,可以使用UpdatePolicy屬性去完成對ECS執行個體配置更新策略的控制。UpdatePolicy屬性文法參考:
UpdatePolicy文法
"UpdatePolicy": {
"RollingUpdateForOrigInstances": Map
}
UpdatePolicy屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
RollingUpdateForOrigInstances | Map | 否 | 是 | 控制更新已有的ECS執行個體的策略。 該策略內容對新增的ECS不會生效。 |
RollingUpdateForOrigInstances文法
"RollingUpdateForOrigInstances": {
"MaxBatchSize": Integer,
"PauseTime": Integer
}
RollingUpdateForOrigInstances屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
MaxBatchSize | Integer | 是 | 是 | 每個批次更新的ECS執行個體數量。 | 取值範圍:1~1000。 |
PauseTime | Integer | 否 | 是 | 各個批次更新之間暫停時間(單位:秒)預設為0。 | 取值範圍:0~3600。 |
樣本
使用以下模板建立一組相同配置的ECS執行個體(包含5台ECS)。
{
"ROSTemplateFormatVersion": "2015-09-01",
"Resources": {
"Instance": {
"Type": "ALIYUN::ECS::InstanceGroup",
"Properties": {
"MaxAmount": 5,
"InstanceType": "xxxx",
"ImageId": "centos",
"VpcId": "vpc-2xxxx",
"VSwitchId": "vsw-xxxx",
"SecurityGroupId": "sg-xxxxx",
"Password": "Ros1gregrge2345",
"InstanceChargeType": "PostPaid",
"NetworkType": "vpc",
"SystemDiskCategory": "xxx",
"SystemDiskSize": 100,
"InternetMaxBandwidthOut": 5,
"AllocatePublicIP": true
}
}
}
}
建立資源棧成功後對已建立的ECS執行個體進行配置更新,更新時可以配置UpdatePolicy屬性。
{
"ROSTemplateFormatVersion": "2015-09-01",
"Resources": {
"Instance": {
"Type": "ALIYUN::ECS::InstanceGroup",
"UpdatePolicy": {
"RollingUpdateForOrigInstances": {
"MaxBatchSize": 2,
"PauseTime": 0
}
},
"Properties": {
"MaxAmount": 10,
"InstanceType": "xxxx",
"ImageId": "centos",
"VpcId": "vpc-2xxxx",
"VSwitchId": "vsw-xxxx",
"SecurityGroupId": "sg-xxxxx",
"Password": "Ros1gregrge2345",
"InstanceChargeType": "PostPaid",
"NetworkType": "vpc",
"SystemDiskCategory": "xxx",
"SystemDiskSize": 100,
"InternetMaxBandwidthOut": 5,
"AllocatePublicIP": true
}
}
}
}
指定MaxBatchSize=2。 更新前MaxAmount=5,更新後MaxAmount=10,在更新資源棧的過程中,原有的5台機器,會分3個批次(2/2/1)進行變更配置更新。新增的5台機器會被一次性統一建立。