[リソース操作開始時] ポリシーのアクションの作成

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:3分
  • [リソース操作開始時] トリガーは、リソース操作のカタログがクラウドユーザーポータルから読み込まれる前に開始されます。[リソース操作開始時] トリガーによってトリガーされるポリシーは、スクリプトの実行や、ユーザーが要求した値 (テキスト値のみ) のオーバーライドができます 。

    始める前に

    手順

    1. クラウドアドミンポータルで、 統制 > ポリシー.
    2. クラウドポリシーを開き、必要に応じてポリシーを [ドラフト] ステータスに設定します。
    3. アクションを実行する必要があるルールを開き、[ポリシールールアクション (Policy Rule Actions)] 関連リストで [新規] をクリックします。
    4. ポップアップで、実行するアクションのタイプとして [作成] をクリックし、一意で分かりやすい [アクション名 (Action Name)] を入力してから、アクションのフォームに入力します。
      アクションの作成ポップアップ
      表 : 1. 「スクリプトを実行」アクションの設定
      フィールド 説明
      アクションスクリプトカテゴリ [カテゴリー] を選択します。
      アクションスクリプト名 スクリプトに対して一意で分かりやすい名前を指定します。
      アクションスクリプト テキストボックスにスクリプトを作成します。

      詳細については、「ポリシーアクションスクリプトの作成」を参照してください。

      表 : 2. 「プロパティの上書き」アクションの設定
      フィールド 説明
      プロパティ 上書きするユーザー要求フォームのプロパティ (属性) の名前を指定します。
      [プロパティ] フィールドの値を上書きする値を入力します。テキスト値のみを上書きすることができます。静的な値、式、またはその両方を指定できます。[SetTheCostCenter] という名前のアクション例は、[CostCenter] プロパティに対して値 [Marketing] を指定します。
      図 : 1. プロパティの上書きアクションを設定する
      プロパティの上書きアクションを設定する
      注:

      ポリシールールとフォームルールの両方で値が上書きされる場合、フォームルールの値が使用されます。

      式は次のアクションを実行できます (詳細については、「クラウドプロビジョニングとガバナンス での式の使用」を参照)。
      • 定義式を使用してフォームデータ値を設定します。例:${parameter.formData.CatalogAttributeType}
      • 定義式を使用してユーザーデータ値をアサインします。例:${parameter.userData.userId}

        たとえば、次の値はスタック名を Stack_Bob.Smith@company.com: Stack_${parameter.userData.userId} に設定できます。

      • ランタイム式を使用してスタックまたはテーブルの値を設定します。

        例:$(ci.sn_cmp _ip_pool[subnet=${parameter.formData.Subnet Id}]) は IP プールテーブルからサブネットを取得します。

      • 静的な式を使用してランダムな数をフィールドに関連付けます。${randomNumber} を使用します。
      スクリプトに基づく このチェックボックスをオンにして [スクリプト] テキストボックスを表示し、スクリプトを指定します。

      スタック名を上書きするには、次の例のスクリプトスニペットを使用できます。スクリプトの function( formData) セクションは、フォーム上のフィールドの値を変更します。Mystack は、この例のスタック名です。

      customScript : function( formData){
                     // Manipulation of form parameter is only supported here. 
                     // Change in any other attributes will be ignored
                     // data available for manipulation are
                     // Form Data - Ex. StackName can be accessed 
                     // through formData.StackName
                     // formData.StackName = "MyStack";
                     // User Data - Ex. User Id can be accessed 
                     // through this.parameters.userData
                     // if(this.parameter.userData.userId == 'servicenowuserId')
                        formData.StackName = "MyStack";
                        return formData;
                      },