文法
Locals由變數名稱以及變數屬性群組成。
參數(Parameters)和局部變數(Locals)的區別:Parameters是外部輸入,用於接收使用者或環境的配置,而Locals是內部計算的,用於在ROS配置內部儲存和複用值。
樣本
宏替換(Macro)
定義一個局部變數Description,並在建立VPC資源時,將這個值作為資源的Description屬性。這種方式可以提高模板的可維護性和一致性,同時減少代碼冗餘。
ROSTemplateFormatVersion: 2015-09-01
Locals:
Description:
Value: test
Resources:
Vpc:
Type: ALIYUN::ECS::VPC
Properties:
Description:
Ref: Description
定義了局部變數VpcCount,它的值是通過Fn::AddFunction Compute得出的,即參數P1和P2的值相加的結果。這些變數在模板內部使用,但不是由使用者直接提供的。
ROSTemplateFormatVersion: 2015-09-01
Parameters:
P1:
Type: Number
Default: 1
P2:
Type: Number
Default: 2
Locals:
VpcCount:
Value:
Fn::Add:
- Ref: P1
- Ref: P2
Resources:
Vpc:
Type: ALIYUN::ECS::VPC
Count:
Ref: VpcCount
值計算(Eval)
在本樣本中,局部變數Vpcs
為資料來源資源,用來查詢VpcName
為test
的資料,並通過計算局部變數CreateVpc
的值來判斷是否建立VPC資源。
ROSTemplateFormatVersion: "2015-09-01"
Locals:
Vpcs:
Type: DATASOURCE::VPC::Vpcs
Properties:
VpcName: test
CreateVpc:
Type: Eval
Value:
Fn::Equals:
- Fn::Length:
Ref: Vpcs
- 0
Conditions:
CreateVpc:
Ref: CreateVpc
Resources:
Vpc:
Condition: CreateVpc
Type: ALIYUN::ECS::VPC