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

使用模塊

您可以在其他模塊或模板中使用模塊。本文為您介紹如何使用模塊及其相關(guān)注意事項。

前提條件

使用模塊

您需要將模塊當(dāng)作單個資源進行處理。

  • 將其納入到模板(或模塊)的Resources部分中。

  • 為模塊指定版本。

  • 為模塊指定任何必要的屬性。

為模塊指定版本

通過Version字段為模塊指定版本,Version取值如下:

  • 指定版本:格式為v+數(shù)字,例如v1、v10

    使用公共模塊時,建議使用此方式。

  • default:默認(rèn)版本。

    只要模塊未刪除,模塊始終存在一個可用的默認(rèn)版本。

    您可以通過API或控制臺自行設(shè)置自定義模塊的默認(rèn)版本。更多信息,請參見SetResourceType - 修改資源類型修改模塊默認(rèn)版本

    使用自定義模塊時,建議使用此方式。

  • latest:最新版本。

    只要模塊未刪除,模塊始終存在一個可用的最新版本。

    當(dāng)模塊創(chuàng)建新版本或刪除最新版本時,最新版本會發(fā)生變化。

    開發(fā)調(diào)試模塊時,建議使用此方式。

為模塊指定屬性

模塊參數(shù)可以幫助您將自定義值從模板(或模塊)輸入到模塊中,模塊可以使用自定義值來設(shè)置資源(或子模塊)的屬性。如果模塊參數(shù)未指定,且該參數(shù)有默認(rèn)值(Default),則會使用默認(rèn)值。

使用模板參數(shù)指定模塊屬性

您可以定義模板參數(shù),用模板參數(shù)來設(shè)置模塊屬性,以便可以將輸入的值傳遞給模塊。定義模板參數(shù)的更多信息,請參見參數(shù)。

您可以將模板中的自定義值傳遞給模塊參數(shù)。包含MODULE::My::VPC::SampleVpc的模板定義了模板參數(shù)VpcName,您可以通過模板參數(shù)指定模塊中的VPC名稱。

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  VpcName:
    Description: Name for your sample vpc
    Type: String
Resources:
  MyVpc:
    Type: MODULE::My::VPC::SampleVpc
    Version: default
    Properties:
      VpcName:
        Ref: VpcName

在父模塊中指定子模塊的屬性

如果模塊和嵌套模塊中包含相同的參數(shù),以下示例為您展示如何為嵌套的子模塊指定參數(shù)值。

您可以在父模塊中為嵌套模塊的參數(shù)指定值。MODULE::My::VPC::SampleVpcPrivate模塊為子模塊,該模塊定義了兩個參數(shù):VpcNameCidrBlock。這些參數(shù)用于設(shè)置ALIYUN::ECS::VPC資源的VpcNameCidrBlock屬性。子模塊的代碼示例如下所示。

ROSTemplateFormatVersion: '2015-09-01'
Description: A sample vpc.
Parameters:
  VpcName:
    Description: Name for the vpc
    Type: String
  CidrBlock:
    Description: Cidr block for the vpc
    Type: String
Resources:
  Vpc:
    Type: ALIYUN::ECS::VPC
    Properties:
      VpcName:
        Ref: VpcName
      CidrBlock:
        Ref: CidrBlock

將子模塊MODULE::My::VPC::SampleVpcPrivate嵌套在父模塊MODULE::My::VPC::SampleVpc中,父模塊MODULE::My::VPC::SampleVpc通過以下方式設(shè)置子模塊參數(shù)。父模塊的代碼示例如下所示。

  • 它將MODULE::My::VPC::SampleVpcPrivateCidrBlock參數(shù)設(shè)置為192.168.0.0/16。

  • 對于VpcName參數(shù),則定義了一個模塊參數(shù),該參數(shù)使得包含MODULE::My::VPC::SampleVpc的模板(或模塊)能夠指定VPC名稱。

ROSTemplateFormatVersion: '2015-09-01'
Description: A sample vpc.
Parameters:
  VpcName:
    Description: Name for the vpc
    Type: String
Resources:
  MyVpc:
    Type: MODULE::My::VPC::SampleVpcPrivate
    Version: default
    Properties:
      VpcName:
        Ref: VpcName
      CidrBlock: 192.168.0.0/16

為模塊參數(shù)指定約束

模塊參數(shù)不支持約束強制執(zhí)行。要對模塊參數(shù)執(zhí)行約束檢查,請創(chuàng)建具有所需約束的模板參數(shù),然后在模塊參數(shù)中引用該模板參數(shù)。

為模塊指定條件

與資源指定條件的方式相同。模塊的條件會傳遞給所有資源和子模塊。定義條件的更多信息,請參見條件(Conditions)。

為模塊指定依賴

與資源指定依賴的方式相同。模塊的依賴會傳遞給所有資源和子模塊。定義依賴的更多信息,請參見DependsOn

為模塊指定刪除策略

與資源指定刪除策略的方式相同。模塊的刪除策略會傳遞給所有未指定刪除策略的資源和子模塊。定義刪除策略的更多信息,請參見DeletionPolicy。

引用模塊

引用模塊中的資源

模塊中的資源可以通過完全限定邏輯名稱進行引用,模塊中的資源完全限定邏輯名稱可以通過將以下名稱相結(jié)合來構(gòu)成。

  • 在模板(或模塊)中為模塊指定的邏輯名稱。

  • 模塊中指定的資源的邏輯名稱。

您可以使用半角句號(.)作為分隔符來指定資源的完全限定邏輯名稱。例如:ModuleLogicalName.ResourceLogicalNameParentModuleLogicalName.ChildModuleLogicalName.ResourceLogicalName。

通過這種方式,您可以使用Fn::GetAtt、RefFn::Sub內(nèi)部函數(shù)來訪問模塊資源(Resources)或其屬性值。更多信息,請參見資源(Resources)。

// Fn::GetAtt示例
GetAtt Example1:
  Fn::GetAtt:
    - ModuleLogicalName.ResourceLogicalName
    - AttributeName
GetAtt Example2:
  Fn::GetAtt:
    - ModuleLogicalName.ChildModuleLogicalName.ResourceLogicalName
    - AttributeName

// Ref示例
Ref Example1:
  Ref: ModuleLogicalName.ResourceLogicalName
Ref Example2:
  Ref: ModuleLogicalName.ChildModuleLogicalName.ResourceLogicalName

// Fn::Sub示例
Sub Example1:
  Fn::Sub: "${ModuleLogicalName.ResourceLogicalName}"
Sub Example2:
  Fn::Sub: "${ModuleLogicalName.ResourceLogicalName.AttributeName}"
Sub Example3:
  Fn::Sub: "${ModuleLogicalName.ChildModuleLogicalName.ResourceLogicalName}"
Sub Example4:
  Fn::Sub: "${ModuleLogicalName.ChildModuleLogicalName.ResourceLogicalName.AttributeName}"

在以下示例中:

  • 模板引用模塊中的資源為模板本身的資源設(shè)置相應(yīng)屬性。

  • 模板引用模塊中資源的輸出作為模板本身的輸出。

假設(shè)MODULE::My::VPC::SampleVpc模塊包含邏輯名稱為Vpc的資源ALIYUN::ECS::VPC。要使用Ref內(nèi)部函數(shù)引用此資源的ID或Fn::GetAtt內(nèi)部函數(shù)引用此資源的輸出屬性,需要將模板中模塊的邏輯名稱MyVpc與模塊中資源的邏輯名稱Vpc相結(jié)合,從而獲得資源的完全限定邏輯名稱:MyVpc.Vpc。

說明

您可以在ROS中查看模塊,并獲取到資源的邏輯名稱。更多信息,請參見查看自定義模塊查看公共模塊。

Parameters:
  VpcName:
    Description: Name for your sample vpc
    Type: String
Resources:
  MyVpc:
    Type: MODULE::My::VPC::SampleVpc
    Version: default
    Properties:
      VpcName:
        Ref: VpcName
  MyVsw:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      VpcId:
        Ref: MyVpc.Vpc
      CidrBlock: 192.168.1.0/24
      ZoneId:
        Fn::Select:
          - '0'
          - Fn::GetAZs:
              Ref: ALIYUN::Region
      VSwitchName: sample_vsw
Outputs:
  VpcId:
    Value:
      Fn::GetAtt:
        - MyVpc.Vpc
        - VpcId

引用模塊中的輸出

您可以把模塊當(dāng)作資源,其輸出當(dāng)作資源屬性,使用Fn::GetAttFn::Sub內(nèi)部函數(shù)訪問模塊輸出。更多信息,請參見輸出(Outputs)

// Fn::GetAtt示例
GetAtt Example1:
  Fn::GetAtt:
    - ModuleLogicalName
    - OutputName
GetAtt Example2:
  Fn::GetAtt:
    - ModuleLogicalName.ChildModuleLogicalName
    - OutputName

// Fn::Sub示例
Sub Example1:
  Fn::Sub: "${ModuleLogicalName.OutputName}"
Sub Example2:
  Fn::Sub: "${ModuleLogicalName.ChildModuleLogicalName.OutputName}"

引用模塊中的條件

您可以把模塊當(dāng)作命名空間,從而得到完全限定名稱,使用Fn::If、Fn::OrFn::AndFn::Not內(nèi)部函數(shù)來訪問模塊中的條件。更多信息,請參見條件(Conditions)

// Fn::If示例
If Example1:
  Fn::If:
    - ModuleLogicalName.ConditionName
    - Value for true
    - Value for false
If Example2:
  Fn::If:
    - ModuleLogicalName.ChildModuleLogicalName.ConditionName
    - Value for true
    - Value for false

// Fn::Or示例
Or Example:
  Fn::Or:
    - ModuleLogicalName.ConditionName
    - ModuleLogicalName.ChildModuleLogicalName.ConditionName

// Fn::And示例
And Example:
  Fn::And:
    - ModuleLogicalName.ConditionName
    - ModuleLogicalName.ChildModuleLogicalName.ConditionName

// Fn::Not示例
Not Example1:
  Fn::Not: ModuleLogicalName.ConditionName
Not Example2:
  Fn::Not: ModuleLogicalName.ChildModuleLogicalName.ConditionName

引用模塊中的映射

您可以把模塊當(dāng)作命名空間,從而得到完全限定名稱,使用Fn::FindInMap內(nèi)部函數(shù)來訪問模塊中的映射。更多信息,請參見映射(Mappings)。

// Fn::FindInMap示例
FindInMap Example1:
  Fn::FindInMap:
    - ModuleLogicalName.MappingName
    - Key
    - SubKey
FindInMap Example2:
  Fn::FindInMap:
    - ModuleLogicalName.ChildModuleLogicalName.MappingName
    - Key
    - SubKey

依賴模塊中的資源

您需要使用資源的完全限定邏輯名稱實現(xiàn)依賴模塊中的資源。

Resource1:
  DependsOn: ModuleLogicalName.ResourceLogicalName
Resource2:
  DependsOn: ModuleLogicalName.ChildModuleLogicalName.ResourceLogicalName

依賴模塊

資源(或模塊)如果依賴于模塊,則依賴于模塊及其子模塊中的所有資源。您需要使用模塊的完全限定邏輯名稱實現(xiàn)依賴模塊。

Resource1:
  DependsOn: ModuleLogicalName
Resource2:
  DependsOn: ModuleLogicalName.ChildModuleLogicalName

注意事項

下列是使用模塊的相關(guān)注意事項。

  • 使用模塊不收取任何額外費用,您只需為模塊解析到資源棧中的資源付費。

  • 如果模板使用了模塊,模板會增加如下限制:

    • 參數(shù)名稱中不能包含字符:.:

    • 資源邏輯名稱中不能包含字符:.。

    • 輸出名稱中不能包含字符:.。

    • 條件名稱中不能包含字符:&

    • 不能為模板指定TransformWorkspace。

    • 不能為模塊指定MetadataCount。

    • 資源或模塊的完全限定邏輯名稱、條件完全限定名稱和映射完全限定名稱都不能重復(fù)。

  • ROS配額(例如資源棧中允許的最大資源數(shù)或模板正文的最多內(nèi)容)適用于處理過的模板,無論該模板中包含的資源是否來自模塊。更多信息,請參見使用限制

  • 您在資源棧級別指定的標(biāo)簽、資源組將分配給來自模塊的各個資源。

  • 處理模板時,模塊中的Metadata、Rules會被忽略。

  • 處理模塊時,不會解析動態(tài)引用,而是在資源棧操作期間創(chuàng)建或更新單個資源時解析動態(tài)引用。關(guān)于動態(tài)引用的更多信息,請參見動態(tài)引用。

  • 模塊的輸出不會傳播變成模板的輸出。您可以創(chuàng)建模板輸出并引用模塊輸出。更多信息,請參見引用模塊中的輸出。

  • 模塊的參數(shù)不會傳播變成模板的參數(shù)。您可以創(chuàng)建模板參數(shù),然后在模塊參數(shù)中引用該模板參數(shù)。更多信息,請參見使用模板參數(shù)指定模塊屬性。

  • 如果使用模塊時指定版本為默認(rèn)版本(default),更改模塊的默認(rèn)版本不會啟動任何資源棧更新操作。

    但是,在您下次使用包含該模塊的任何模板執(zhí)行資源棧操作(例如資源棧更新)時, ROS將在操作中使用新的默認(rèn)版本。

  • 如果使用模塊時指定版本為最新版本(latest),創(chuàng)建新的模塊版本或刪除最新模塊版本不會啟動任何資源棧更新操作。

    但是,在您下次使用包含該模塊的任何模板執(zhí)行資源棧操作(例如資源棧更新)時, ROS將在操作中使用新的最新版本。

  • 在資源棧操作期間,ROS會使用當(dāng)前賬戶中注冊的模塊,包括嵌套在其他模塊中的模塊。

    如果您在不同賬號的同一個模塊的版本不一致,則使用同一個模板可能會導(dǎo)致不同的結(jié)果。

  • 為了保證結(jié)果統(tǒng)一,如果要在資源棧模板中納入模塊以用于資源棧組,則應(yīng)確保在計劃部署資源棧實例的所有賬戶中模塊的一致性,其中包括嵌套在其他模塊中的模塊。更多信息,請參見資源棧組。

    說明

    如果您想要在資源棧組所在賬號中展開模塊,需要在創(chuàng)建或更新資源棧組時勾選是否在當(dāng)前賬號展開模塊