All Products
Search
Document Center

Resource Orchestration Service:Cara menanyakan nilai dari peta dalam template?

Last Updated:Jun 26, 2025

Struktur data peta menyimpan data sebagai kumpulan pasangan kunci-nilai. Topik ini menjelaskan cara memperoleh nilai dari peta yang didefinisikan dalam template.

Tanyakan nilai dari peta satu tingkat

Bagian ini menjelaskan fungsi yang dapat digunakan untuk memperoleh nilai dari peta satu tingkat.

Catatan

Disarankan agar Anda tidak mendefinisikan peta satu tingkat di bagian Mappings sebuah template. Resource Orchestration Service (ROS) tidak dapat memperoleh nilai dari peta satu tingkat di bagian Mappings. Untuk informasi lebih lanjut, lihat Mappings.

Fn::Select

Catatan

Disarankan menggunakan fungsi ini untuk memperoleh nilai dari peta satu tingkat.

  • Saat menentukan objek JSON, Anda dapat memanggil fungsi Fn::Select untuk memperoleh value_a yang sesuai dengan key_a. Untuk informasi lebih lanjut, lihat Fn::Select.

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
    	InputMap:
      	Type: Json  
    Outputs:
    	value_a:
      	Value:
        	Fn::Select:
        	- key_a
        	- InputMap
  • Anda juga dapat memanggil fungsi ini untuk memperoleh nilai dari kamus.

    ROSTemplateFormatVersion: '2015-09-01'
    Resources:
      Mock:
        Type: MockResource
        Properties:
          Prop1:
            Fn::Select:
            - key
            - key1: value1
              key2: value2

Fn::GetJsonValue

Saat menentukan string JSON, Anda dapat memanggil fungsi Fn::GetJsonValue untuk memperoleh nilai yang sesuai dengan kunci lapis pertama. Untuk informasi lebih lanjut, lihat Fn::GetJsonValue.

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
	InputMapJsonString:
  	Type: Json
Outputs:
	value_a:
  	Value:
    	Fn::GetJsonValue:
    	- key_a
    	- InputMapJsonString

Tanyakan nilai dari peta dua tingkat

Bagian ini menjelaskan fungsi yang dapat digunakan untuk memperoleh nilai dari peta dua tingkat.

Fn::FindInMap

Catatan

Fungsi ini hanya cocok untuk memperoleh nilai dari peta dua tingkat yang didefinisikan di bagian Mappings.

Anda dapat memanggil fungsi Fn::FindInMap untuk memperoleh nilai dari peta dua tingkat yang didefinisikan di bagian Mappings sebuah template. Untuk informasi lebih lanjut, lihat Mappings dan Fn::FindInMap.

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  regionParam:
    Description: wilayah tempat Anda ingin membuat instance Elastic Compute Service (ECS)
    Type: String
    AllowedValues:
      - hangzhou
      - beijing
Mappings:
  RegionMap:
    hangzhou:
      '32': m-25l0rcfjo
      '64': m-25l0rcfj1
    beijing:
      '32': m-25l0rcfj2
      '64': m-25l0rcfj3
Resources:
  WebServer:
    Type: ALIYUN::ECS::Instance
    Properties:
      ImageId:
        Fn::FindInMap:
          - RegionMap
          - Ref: regionParam
          - '32'

Fn::Select

Catatan

Fungsi ini cocok untuk memperoleh nilai dari peta dua tingkat yang tidak didefinisikan di bagian Mappings.

Anda dapat menumpuk fungsi Fn::Select untuk memperoleh nilai dari peta dua tingkat. Untuk informasi lebih lanjut, lihat Fn::Select.

Fn::Select:
- key_1_1:
- Fn::Select:
	- key_1
	- key_1:
    	key_1_1: value_1_1
    	key_1_2: value_1_2
    key_2:
      key_2_1: value_2_1
      key_2_2: value_2_2

Dalam contoh ini: value_1_1 dikembalikan.

Tanyakan nilai dari peta multi-level

Bagian ini menjelaskan fungsi yang dapat digunakan untuk memperoleh nilai dari peta multi-level.

Fn::Select

  • Anda dapat menumpuk fungsi Fn::Select dan Fn::FindInMap untuk memperoleh nilai dari peta multi-level yang didefinisikan di bagian Mappings. ROS mengizinkan Anda menggunakan hanya fungsi Fn::FindInMap untuk memperoleh nilai di bagian Mappings. Jika ingin memperoleh nilai dari peta yang memiliki lebih dari dua tingkat di bagian Mappings, gunakan fungsi Fn::FindInMap untuk memperoleh koleksi peta dari peta dua tingkat. Kemudian, gunakan fungsi Fn::Select untuk memperoleh nilai yang diinginkan.

     Fn::Select:
       - key 
       - Fn::FindInMap:
            - MapName
            - TopLevelKey
            - SecondLevelKey
  • Anda juga dapat menumpuk fungsi Fn::Select beberapa kali untuk memperoleh nilai dari peta multi-level yang tidak didefinisikan di bagian Mappings. Untuk informasi lebih lanjut, lihat Fn::Select.

Fn::Jq

Anda dapat menggunakan fungsi ini untuk menentukan beberapa filter guna memenuhi kebutuhan bisnis Anda pada kueri peta multi-level. Untuk informasi lebih lanjut, lihat Fn::Jq.

Fn::Jq:
  - All
  - '.parameters[] | {"param_name": .name, "param_type":.type}'
  - changeSet:
      items: []
      kind: git
    id: 2013-12-27_00-09-37
    parameters:
      - name: PKG_TAG_NAME
        value: trunk
      - name: GIT_COMMIT
        value: master
      - name: TRIGGERED_JOB
        value: trunk-buildall

Dalam contoh ini, hasil berikut dikembalikan:

- param_name: PKG_TAG_NAME
- param_name: GIT_COMMIT
- param_name: TRIGGERED_JOB