Todos os produtos
Search
Central de documentação

Resource Orchestration Service:Fn::GetJsonValue

Última atualização: Jun 27, 2026

A função Fn::GetJsonValue analisa uma string JSON e retorna o valor de uma chave especificada no primeiro nível.

Declaração

  • JSON

    {
      "Fn::GetJsonValue": [
        "key",
        "json_string"
      ]
    }
  • YAML

    • Sintaxe do nome completo da função:

      Fn::GetJsonValue:
       - key
       - json_string
    • Sintaxe da forma abreviada:

      !GetJsonValue [key, json_string]

Parâmetros

  • key: chave cujo valor se deseja obter.

  • json_string: string JSON a analisar.

Exemplos

No exemplo a seguir, a instância WebServer executa o UserData e retorna uma string JSON. A instância WebServer2 recupera um valor de chave dessa string.

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  WebServer:
    Type: ALIYUN::ECS::Instance
    Properties:
      ImageId: m-2ze45uwova5fedlu****
      InstanceType: ecs.n1.medium
      SecurityGroupId: sg-2ze7pxymaix640qr****
      Password: Wenqiao****
      IoOptimized: optimized
      VSwitchId: vsw-2zei67xd9nhcqxzec****
      VpcId: vpc-2zevx9ios1rszqv0a****
      SystemDiskCategory: cloud_ssd
      UserData:
        Fn::Replace:
          - ros-notify:
              Fn::GetAtt:
                - WaitConHandle
                - CurlCli
          - Fn::Join:
              - ''
              - - |
                  #!/bin/sh
                - |
                  mkdir ~/test_ros
                - |
                  print hello > ~/1.txt
                - |
                  cmd="ros-notify -d '{\"id\" : \"1\", \"data\" : [\"1111\", \"2222\"]}'"
                - |
                  eval $cmd
      PrivateIpAddress: 192.168.XX.XX
      HostName: userdata-1
  WaitConHandle:
    Type: ALIYUN::ROS::WaitConditionHandle
  WaitCondition:
    Type: ALIYUN::ROS::WaitCondition
    Properties:
      Handle:
        Ref: WaitConHandle
      Timeout: 900
  WebServer2:
    Type: ALIYUN::ECS::Instance
    Properties:
      ImageId: m-2ze45uwova5fedlu****
      InstanceType: ecs.n1.medium
      SecurityGroupId: sg-2ze7pxymaix640qr****
      Password: Wenqiao****
      IoOptimized: optimized
      VSwitchId: vsw-2zei67xd9nhcqxzec****
      VpcId: vpc-2zevx9ios1rszqv0a****
      SystemDiskCategory: cloud_ssd
      UserData:
        Fn::Join:
          - ''
          - - |
              #!/bin/sh
            - |
              mkdir ~/test_ros
            - |
              echo hello > ~/1.txt
            - server_1_token=
            - !GetJsonValue
                - '1 '
                - !GetAtt WaitCondition.Data
            - |+
      PrivateIpAddress: 192.168.XX.XX
      HostName: userdata-2
Outputs:
  InstanceId:
    Value: !GetAtt WebServer.InstanceId
  PublicIp:
    Value: !GetAtt WebServer.PublicIp

Funções compatíveis