リソースプールへのパラメーターのバインド
カタログオーダーでエラーが発生しづらくなるように、パラメーターを リソースプール (ベースシステムで提供されるプール) にバインドできます。リソースプールに基づくパラメーターは、クラウドユーザーポータルのカタログ注文フォームの既存のテーブルからの指定値のみが一覧表示されます。
始める前に
このタスクについて
クラウドテンプレートを使用してリソースブロックを作成する場合、Azure Resource Manager (ARM) または CloudFormation (CF) テンプレートのメタデータセクションで SN プールにパラメーターをバインドできます。すべての SN プールが手順に一覧表示されます。
手順
- クラウドアドミンポータルで、 Design (デザイン) > クラウドカタログアイテム.
-
既存のテンプレートを選択するか、[新規] をクリックして新しいクラウドテンプレートを作成します。
既存のテンプレートを選択した場合は、テンプレートの名前を変更します。
次のステップでは、適切なテンプレートタイプのテンプレート定義を変更 (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:すべての仮想マシンを取得します。 -
ARM テンプレート定義を変更します。
- parameters メタデータセクションに属性 SNC::Parameter::Metadata を追加します。
-
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", } } }
-
CloudFormation テンプレート定義を変更します。
-
属性 SNC::Parameter::Metadata を追加し、カスタム属性名 (VpcId) と datasource を定義します。
datasource 値には、SN プールフィルター (この例では
NetworkPool.getObjectsByLDCなど) を入力します。 -
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"} } } }
-
属性 SNC::Parameter::Metadata を追加し、カスタム属性名 (VpcId) と datasource を定義します。
- [送信] をクリックします。
- リソースブロック、詳細計画、およびカタログアイテムを作成すると、クラウドサービスユーザーには、カタログ注文フォームのパラメーターのプールデータ値のリストのみが表示されます。