자원 풀에 매개변수 바인딩

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 5분
  • 카탈로그 순서를 오류가 적게 만들기 위해 매개변수를 자원 풀(기본 시스템에 제공된 풀)에 바인딩할 수 있습니다. 자원 풀 목록을 기반으로 하는 매개변수는 클라우드 사용자 포털의 카탈로그 주문 양식에 있는 기존 테이블에서 지정된 값만 나열합니다.

    시작하기 전에

    필요한 역할: sn.cmp.cloud_service_designer

    이 태스크 정보

    카탈로그 주문 양식은 데이터 소스가 지정된 매개변수 값만 나열합니다. 예를 들어 템플릿에서 Resource Group Name 매개변수를 사용하는 경우 메타데이터 섹션의 기존 SN 풀(ResourceGroupPool)에 자원 그룹 이름 필드를 바인딩할 수 있습니다.

    클라우드 템플릿을 사용하여 자원 블록을 만들 때 ARM(Azure Resource Manager) 또는 CF(CloudFormation) 템플릿의 메타데이터 섹션에서 SN 풀에 매개변수를 바인딩할 수 있습니다. 모든 SN 풀이 절차에 나열되어 있습니다.

    프로시저

    1. 클라우드 관리자 포털에서 다음으로 이동합니다. 디자인 > 클라우드 카탈로그 항목.
    2. 새 클라우드 템플릿을 만들려면 기존 템플릿을 선택하거나 새로 만들기를 클릭하십시오.

      기존 템플릿을 선택하는 경우 템플릿의 이름을 바꿉니다.

      다음 단계에서는 해당 템플릿 유형의 템플릿 정의를 수정합니다(ARM 또는 CloudFormation 선택). SN 풀 필터를 datasource 값으로 지정합니다.

      표 1. 데이터 소스 값으로 사용할 SN 풀
      SN 풀 필터
      AvailabilityZonePool

      getAllObjects: 모든 가용 영역을 가져옵니다.

      getObjectsByLDC: LDC에 따라 가용 영역을 가져옵니다.

      HardwareTypePool
      ImagePool
      LoadBalancerPool All: 모든 부하 분산 장치를 가져옵니다.
      NetworkPool

      getAllObjects: 모든 네트워크를 가져옵니다.

      getObjectsByLDC: LDC에 따라 네트워크를 가져옵니다.

      ResourceGroupPool getObjectsByLDC: LDC에 따라 자원 그룹을 가져옵니다.
      SecurityGroupPool getObjectsByNetwork: 모든 보안 그룹을 가져옵니다.
      SecurityGroupProfilePool All: 모든 보안 그룹 프로파일을 가져옵니다.
      SSHKeyPool UserKeys: 모든 SSH 키를 가져옵니다.
      StorageAccountPool getObjectsByLDC: LDC에 따라 저장소 계정을 가져옵니다.
      StorageVolumePool All: 모든 저장소 볼륨을 가져옵니다.
      SubnetPool getObjectsByNetwork: 모든 서브넷을 가져옵니다.
      VirtualMachinePool getByAvailabilityZone: 모든 가상 컴퓨터를 가져옵니다.
    3. ARM 템플릿 정의 수정:
      1. parameters 메타데이터 섹션에 SNC::Parameter::Metadata 속성을 추가합니다.
      2. SNC::Parameter::Metadata 속성에 대해 이 예제와 같이 데이터 소스를 키로 추가하고 값으로 SN 풀 필터(예: StorageAccountPool.getObjectsByLDC)를 입력합니다.
        "parameters": {
            "newStorageAccountName": {
              "type": "string",
              "metadata": {
                "description": "Unique DNS Name for the Storage Account where the Virtual Machine's disks will be placed.",
                 "SNC::Parameter::Metadata": {
                 "allowedPattern": "[0-9a-z]{1,11}",
                 "ConstraintDescription": "must be a alphanumeric ",
                 "datasource":"ServiceNow::Pools::StorageAccountPool.getObjectsByLDC",
         
                } 
              }
            }
        
    4. CloudFormation 템플릿 정의를 수정합니다.
      1. SNC::Parameter::Metadata 속성을 추가하고 사용자 지정 속성 이름(VpcId)과 datasource를 정의합니다.
        datasource 값으로 이 예제의 NetworkPool.getObjectsByLDC와 같은 SN 풀 필터를 입력합니다.
      2. datasourceFilter 매핑 속성을 정의하여 실제 속성 이름(Network)에 사용자 지정 이름(VpcId)을 바인딩합니다.
        "Parameters" : { 
         
              "VpcId" : {
              "Type" : "AWS::EC2::VPC::Id",
              "Description" : "VpcId of your existing Virtual Private Cloud (VPC)",
              "ConstraintDescription" : "must be the VPC Id of an existing Virtual Private Cloud."
            },
         
            "SubnetId" : {
              "Type" : "AWS::EC2::Subnet::Id",
              "Description" : "SubnetId of an existing subnet (for the primary network) in your Virtual Private Cloud (VPC)",
              "ConstraintDescription" : "must be an existing subnet in the selected Virtual Private Cloud."
            }
          },
          "Metadata": {
                  "SNC::Parameter::Metadata": {
                        "VpcId":{
                             "datasource":"ServiceNow::Pools::NetworkPool.getObjectsByLDC",
                             "datasourceFilter":{"Network":"VpcId"}
                         },
                         "SubnetId":{
                             "datasource":"ServiceNow::Pools::SubnetPool.getObjectsByNetwork",
                             "datasourceFilter":{"Network":"VpcId"}
                         }
         
                    }
            }
        
    5. 제출을 클릭합니다.
    6. 자원 블록, Blueprint 및 카탈로그 항목이 생성되면 클라우드 서비스 사용자가 카탈로그 주문 양식에서 매개변수의 풀 데이터 값 목록만 볼 수 있습니다.