AWS CloudFormation 템플릿 문법에 대한 메모

7092 단어 CloudFormationAWS

무엇


  • CloudFormation 템플릿에 대해 문법을 공부했으므로 작은 구성으로 메모합니다.
  • EC2 인스턴스를 하나 세우고, 각 문법으로 Outputs 하는 것으로 동작을 확인하고 있다.
  • 전체적으로, 추억용의 확실히 정도의 내용입니다.

  • 템플릿


  • 리전은 '버지니아 북부'에서 실시한다고 가정한다.

  • template.yaml
    ---
    # 任意の Mappings セクションでは、キーと名前付きの一連の値とが対応付けられます。
    Mappings: 
      RegionMap: 
        us-east-1: 
          Name1: Value01
          Name2: Value02
        other: 
          Name1: Value03
          Name2: Value04
    
    # オプションの Parameters セクションを使用して、テンプレートをカスタマイズします。
    # パラメーターを使用すると、スタックを作成または更新するたびにテンプレートにカスタム値を入力できます。
    Parameters:
      EnvType: 
        Description: Environment type.
        Default: test
        Type: String
        AllowedValues: 
          - prod
          - test
        ConstraintDescription: must specify prod or test.      
    
    # オプションの Conditions セクションには、エンティティが作成または設定される状況を定義する文が含まれています。
    Conditions: 
      CreateProdResources: !Equals [ !Ref EnvType, prod ]      
    
    # 必須の Resources セクションでは、スタックに含める AWS リソース (Amazon EC2 インスタンスや Amazon S3 バケットなど) を宣言します。
    Resources:
      MyInstance:
        Type: AWS::EC2::Instance
        Properties:
          AvailabilityZone: us-east-1a
          ImageId: ami-a4c7edb2
          InstanceType: t2.micro
    
    # オプションの Outputs セクションは、他のスタックにインポートする (クロススタック参照を作成)、応答として返す (スタック呼び出しについて記述)、
    # または、AWS CloudFormation コンソールで表示する出力値を宣言します。
    Outputs:
    
      # 組み込み関数 Ref は、指定したパラメータまたはリソースの値を返します。
      ByRef:
        Description: Ref
        Value: !Ref MyInstance
        # Export: クロススタック参照にエクスポートされるリソース出力の名前。
        Export:
          Name: MyInstanceId
    
      # Fn::GetAtt 組み込み関数は、テンプレートのリソースから属性の値を返します
      ByGetAtt: 
        Description: GetAtt
        Value: !GetAtt MyInstance.AvailabilityZone
    
      # 組み込み関数 Fn::Sub は特定した値の入力文字列にある変数の代わりになります。
      BySub: 
        Description: Sub
        Condition: CreateProdResources
        Value: !Sub
          - ${A}-${B}
          - { A: !FindInMap [RegionMap, !Ref "AWS::Region", Name1], B: !Ref MyInstance }
    
      # 組み込み関数 Fn::Join は、一連の値を特定の区切り文字で区切って 1 つの値に追加します。
      ByJoin:
        Description: Join
        Value: !Join [ ":", [ a, b, z ] ]
    
    

    출력


  • Outputs를 출력 탭에서 확인


  • 메모


  • 파라미터는 Ref로 참조한다.
  • export는이 예제에서는 필요하지 않지만 문법을 확인하기 위해 수행되었습니다 (* 이름은 지역 내에서 고유해야합니다)
  • Ref와 GetAtt의 차이가 알기 어려웠지만, 리소스 참조 에서 해당하는 항목의 반환값을 보면 차이나 속성의 종류를 알았다.
  • 완전명 함수와 단축형에서는, 문법이 상당히 다르다.
    Fn::GetAtt: [ logicalNameOfResource, attributeName ]
    !GetAtt logicalNameOfResource.attributeName
  • 내장 함수 참조
  • 의사 파라미터
  • 좋은 웹페이지 즐겨찾기