日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

局部變量(Locals)

更新時(shí)間:

您在創(chuàng)建模板時(shí),使用局部變量(Locals)可以有效地對(duì)常用的功能邏輯或值計(jì)算規(guī)則進(jìn)行抽象與封裝,提升模板的可維護(hù)性和一致性,同時(shí)減少了代碼冗余。

語法

Locals由變量名稱以及變量屬性組成。

  • 變量名稱必須為英文字母、數(shù)字,并且在同一個(gè)模板中不能與其他局部變量、參數(shù)名以及資源名稱重復(fù)。

  • 局部變量屬性如下表所示。

    局部變量屬性

    必須

    描述

    Type

    局部變量的數(shù)據(jù)類型。取值:

    • Macro(默認(rèn)值):宏替換,不會(huì)計(jì)算局部變量的實(shí)際值,直接進(jìn)行宏替換。

    • Eval:值計(jì)算,計(jì)算局部變量的實(shí)際值,然后進(jìn)行值替換。

    • 數(shù)據(jù)源資源類型:數(shù)據(jù)源資源(DataSource)用于查詢?cè)品?wù)的資源數(shù)據(jù),查詢后的數(shù)據(jù)只能被局部變量使用,如Type: DATASOURCE::VPC::Vpcs

    Value

    局部變量的值,在Macro和Eval類型下,Value是必填的。

    Properties

    數(shù)據(jù)源資源的屬性。

說明

在使用局部變量Locals時(shí),存在以下限制:

  • 嵌套資源棧不支持使用Locals。

  • Locals支持嵌套使用,最多支持5層嵌套。

  • 只支持 Ref 引用局部變量,不支持 ${LocalName} 引用的方式。

  • Locals進(jìn)行值計(jì)算時(shí),設(shè)定的值只能引用參數(shù)(Parameters)和局部變量(Locals),支持使用函數(shù)。

參數(shù)(Parameters)和局部變量(Locals)的區(qū)別:Parameters是外部輸入,用于接收用戶或環(huán)境的配置,而Locals是內(nèi)部計(jì)算的,用于在ROS配置內(nèi)部存儲(chǔ)和復(fù)用值。

示例

宏替換(Macro)

  1. 定義一個(gè)局部變量Description,并在創(chuàng)建VPC資源時(shí),將這個(gè)值作為資源的Description屬性。這種方式可以提高模板的可維護(hù)性和一致性,同時(shí)減少代碼冗余。

    ROSTemplateFormatVersion: 2015-09-01
    Locals:
      Description:
        Value: test
    Resources:
      Vpc:
        Type: ALIYUN::ECS::VPC
        Properties:
          Description:
             Ref: Description
  2. 定義了局部變量VpcCount,它的值是通過Fn::Add函數(shù)計(jì)算得出的,即參數(shù)P1和P2的值相加的結(jié)果。這些變量在模板內(nèi)部使用,但不是由用戶直接提供的。

    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

值計(jì)算(Eval)

在本示例中,局部變量Vpcs為數(shù)據(jù)源資源,用來查詢VpcNametest的數(shù)據(jù),并通過計(jì)算局部變量CreateVpc的值來判斷是否創(chuàng)建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