リソースプールへのパラメーターのバインド

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:6分
  • カタログオーダーでエラーが発生しづらくなるように、パラメーターを リソースプール (ベースシステムで提供されるプール) にバインドできます。リソースプールに基づくパラメーターは、クラウドユーザーポータルのカタログ注文フォームの既存のテーブルからの指定値のみが一覧表示されます。

    始める前に

    必要なロール:sn.cmp.cloud_service_designer

    このタスクについて

    カタログ注文フォームには、データソースが指定されているパラメーター値のみが一覧表示されます。たとえば、テンプレートで Resource Group Name パラメーターを使用する場合は、メタデータセクションで既存の SN プール (ResourceGroupPool) に [リソースグループ名] フィールドをバインドできます。

    クラウドテンプレートを使用してリソースブロックを作成する場合、Azure Resource Manager (ARM) または CloudFormation (CF) テンプレートのメタデータセクションで SN プールにパラメーターをバインドできます。すべての SN プールが手順に一覧表示されます。

    手順

    1. クラウドアドミンポータルで、 設計 > クラウドカタログアイテム.
    2. 既存のテンプレートを選択するか、[新規] をクリックして新しいクラウドテンプレートを作成します。

      既存のテンプレートを選択した場合は、テンプレートの名前を変更します。

      次のステップでは、適切なテンプレートタイプのテンプレート定義を変更 (ARM または CloudFormation を選択) します。datasource 値として SN プールフィルターを指定します。

      表 : 1. データソース値として使用する SN プール
      SN プール フィルター
      AvailabilityZonePool

      getAllObjects:すべてのアベイラビリティゾーンを取得します。

      getObjectsByLDC:LDC に応じてアベイラビリティゾーンを取得します。

      HardwareTypePool
      ImagePool
      LoadBalancerPool すべて: すべてのロードバランサーを取得します。
      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 属性には、datasource をキーとして追加し、次の例に示すように、値の 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 値には、SN プールフィルター (この例では NetworkPool.getObjectsByLDC など) を入力します。
      2. datasourceFilter マッピング属性を定義して、カスタム名 (VpcId) を実際の属性名 (Network) にバインドします。
        "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. リソースブロック、詳細計画、およびカタログアイテムを作成すると、クラウドサービスユーザーには、カタログ注文フォームのパラメーターのプールデータ値のリストのみが表示されます。