すべてのプロダクト
Search
ドキュメントセンター

CloudOps Orchestration Service:タスクテンプレートでの共通パラメーターの使用

最終更新日:Dec 05, 2025

複数のタスクテンプレートが同じ構成を共有する場合、その値をパラメーター ストアに保存してグローバル変数として使用できます。この値はテンプレート間で再利用できるため、運用効率と一貫性が向上します。このトピックでは、タスクテンプレートで共通パラメーターを使用する方法について説明します。

前提条件

パラメーター ストアで共通パラメーターを作成しておく必要があります。詳細については、「共通パラメーターの作成」をご参照ください。

手順

OOS コンソールでの使用

この例では、共通タスクテンプレートの Send Remote Command を使用します。テンプレートのタイムアウトは、値が 600 の共通パラメーター `time_out` を使用して 600 に設定されます。

  1. CloudOps Orchestration Service コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[自動化タスク] > > [共通タスクテンプレート] を選択します。ターゲットの共通テンプレートを見つけて、[実行の作成] をクリックします。image

  3. 基本情報を入力し、[次へ:パラメーターの設定] をクリックします。

  4. [タイムアウト] の左側にある image アイコンをクリックします。 time_out などの共通パラメーターを選択して、タイムアウトを 500 に設定します。 次に、ターゲットインスタンスを選択し、[次へ] をクリックします。image

  5. タスク情報が正しいことを確認し、[作成] をクリックします。

  6. [作成] をクリックすると、実行詳細ページが表示されます。ターゲットフィールドが期待どおりの値に設定されていることを確認します。image

テンプレートでの使用

テンプレートで共通パラメーターを使用するには、`{{ oos:parameter_name }}` のフォーマットでパラメーターを参照します。

この例では、ECS インスタンスでクラウドアシスタントコマンドを実行するテンプレートを作成する方法を示します。この例では、共通パラメーター `time_out` を使用して、タイムアウトを 600 に設定します。

  1. CloudOps Orchestration Service コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[自動化タスク] > > [カスタムタスクテンプレート] を選択し、[テンプレートの作成] をクリックします。テンプレートの 98 行目にある `timeout` パラメーターは、`{{ oos:time_out }}` フォーマットを使用して共通パラメーター `time_out` を参照します。

    FormatVersion: OOS-2019-06-01
    Description: 複数の ECS インスタンスでクラウドアシスタントコマンドをバッチ実行します。これは、アプリケーション管理やリソースのタグ付けなどのタスクで、複数の ECS インスタンスを一度に管理する場合に便利です。構成中に、次の必須パラメーターを指定します。ターゲット ECS インスタンスのリージョンを指定するリージョン ID (regionId)。ターゲットインスタンスタイプ (ECS インスタンスやマネージドインスタンスなど) を決定するリソースタイプ (resourceType)。特定のインスタンスを選択するターゲット (targets)。その他のパラメーターには、コマンドタイプ (シェルや Python など) を指定するコマンドタイプ (commandType) と、スクリプトの内容を指定するコマンド内容 (commandContent) があります。実行後、テンプレートはバッチ操作の出力を返し、実行ステータスを確認できます。
    Parameters:
      regionId:
        Type: String
        Label: リージョン ID
        AssociationProperty: RegionId
        Default: '{{ ACS::RegionId }}'
      resourceType:
        Type: String
        Label: リソースタイプ
        AssociationPropertyMetadata:
          LocaleKey: TargetResourceType
        AllowedValues:
          - ALIYUN::ECS::Instance
          - ALIYUN::ECS::ManagedInstance
        Default: ALIYUN::ECS::Instance
      targets:
        Type: Json
        Label: ターゲットインスタンス
        AssociationProperty: Targets
        AssociationPropertyMetadata:
          ResourceType: resourceType
          RegionId: regionId
          Status: Running
      commandType:
        Label: コマンドタイプ
        AssociationPropertyMetadata:
          LocaleKey: ECSCommandType
        Type: String
        AllowedValues:
          - RunShellScript
          - RunPythonScript
          - RunPerlScript
          - RunBatScript
          - RunPowerShellScript
        Default: RunShellScript
      commandContent:
        Label: コマンド内容
        Type: String
        MaxLength: 16384
        AssociationProperty: ALIYUN::OOS::Command::CommandContent
        AssociationPropertyMetadata:
          CommandType: ${commandType}
      workingDir:
        Description: 'Linux インスタンスの場合、デフォルトのディレクトリは管理者 (root ユーザー) のホームディレクトリである /root です。Windows インスタンスの場合、デフォルトのディレクトリはクラウドアシスタントクライアントプロセスが配置されている場所 (C:\Windows\System32 など) です。入力したディレクトリが正しいことを確認してください。'
        Label: 作業ディレクトリ
        Type: String
        Default: ''
      enableParameter:
        Label: コマンドに暗号化されたパラメーターまたはカスタムパラメーターが含まれていますか
        Type: Boolean
        Default: false
      username:
        Description: ECS インスタンスでコマンドを実行する際に使用するユーザー名です。ユーザー名は 255 文字を超えることはできません。Linux インスタンスでは、コマンドはデフォルトで root ユーザーとして実行されます。Windows インスタンスでは、コマンドはデフォルトで System ユーザーとして実行されます。入力したユーザー名が正しいことを確認してください。<a href="https://www.alibabacloud.com/help/doc-detail/203771.html" target="_blank">詳細はこちら</a>
        Label: コマンド実行のユーザー名
        Type: String
        Default: ''
      windowsPasswordName:
        Label: Windows インスタンスのユーザーのパスワード名
        Type: String
        Default: ''
      rateControl:
        Label: タスク実行の同時実行率
        Type: Json
        AssociationProperty: RateControl
        Default:
          Mode: Concurrency
          MaxErrors: 0
          Concurrency: 10
      OOSAssumeRole:
        Label: OOS が引き受ける RAM ロール
        Type: String
        Default: ''
    RamRole: '{{ OOSAssumeRole }}'
    Tasks:
      - Name: getInstance
        Description: ECS インスタンスの取得
        Action: ACS::SelectTargets
        Properties:
          ResourceType: '{{ resourceType }}'
          RegionId: '{{ regionId }}'
          Filters:
            - '{{ targets }}'
        Outputs:
          instanceIds:
            Type: List
            ValueSelector: Instances.Instance[].InstanceId
      - Name: runCommand
        Action: ACS::ECS::RunCommand
        Description: クラウドアシスタントコマンドの実行
        Properties:
          regionId: '{{ regionId }}'
          commandContent: '{{ commandContent }}'
          instanceId: '{{ ACS::TaskLoopItem }}'
          commandType: '{{ commandType }}'
          workingDir: '{{ workingDir }}'
          timeout: '{{ oos:time_out }}'
          enableParameter: '{{ enableParameter }}'
          username: '{{ username }}'
          windowsPasswordName: '{{ windowsPasswordName }}'
        Loop:
          RateControl: '{{ rateControl }}'
          Items: '{{ getInstance.instanceIds }}'
          Outputs:
            commandOutputs:
              AggregateType: Fn::ListJoin
              AggregateField: commandOutput
        Outputs:
          commandOutput:
            Type: String
            ValueSelector: invocationOutput
    Outputs:
      commandOutputs:
        Type: List
        Value: '{{ runCommand.commandOutputs }}'
  3. テンプレートを作成した後、[実行] をクリックします。必須パラメーターを入力し、実行を開始します。

  4. [クラウドアシスタントコマンドの実行] タスクをクリックし、次に [サブ実行] をクリックします。実行 ID をクリックして、サブ実行の詳細を表示します。

  5. [実行ステップと結果] セクションで、[入力] をクリックします。`timeout` パラメーターは、共通パラメーター `time_out` の値である 600 に置き換えられています。