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

Container Service for Kubernetes:アーティファクトの設定

最終更新日:Mar 26, 2026

あるワークフローステップが、次のステップで処理する必要があるファイルを生成する場合、アーティファクトを使用して、あるステップの出力を別のステップの入力として直接渡すことができます。このトピックでは、Object Storage Service (OSS) をアーティファクトリポジトリとして設定し、ワークフロー内の2つのステップ間でアーティファクトを渡す方法について説明します。

前提条件

開始する前に、以下を確認してください。

  • OSS がアクティブ化されていること。詳細については、「OSS をアクティブ化する」をご参照ください。

  • ご利用のワークフロークラスターのアーティファクトリポジトリとして OSS が設定されていること。詳細については、「Alibaba Cloud OSS の設定」をご参照ください。

ステップ間でアーティファクトを渡す

次の例では、2つのステップからなるワークフローを定義します。最初のステップはテキストファイルを生成し、それをアーティファクトとして保存し、2番目のステップはそのアーティファクトを取得して内容を出力します。

  1. artifact-passing.yaml という名前のファイルを以下の内容で作成します。

    apiVersion: argoproj.io/v1alpha1
    kind: Workflow
    metadata:
      generateName: artifact-passing-
    spec:
      entrypoint: artifact-example
      templates:
      - name: artifact-example
        steps:
        - - name: generate-artifact
            template: whalesay
        - - name: consume-artifact
            template: print-message
            arguments:
              artifacts:
              # メッセージアーティファクトを hello-art 出力にバインドします
              # generate-artifact ステップから。
              - name: message
                from: "{{steps.generate-artifact.outputs.artifacts.hello-art}}"
    
      - name: whalesay
        container:
          image: docker/whalesay:latest
          command: [sh, -c]
          args: ["cowsay hello world | tee /tmp/hello_world.txt"]
        outputs:
          artifacts:
          # /tmp/hello_world.txt を hello-art アーティファクトとして保存します。
          # パスはファイルだけでなくディレクトリも指定できます。
          - name: hello-art
            path: /tmp/hello_world.txt
    
      - name: print-message
        inputs:
          artifacts:
          # メッセージアーティファクトを /tmp/message にアンパックします。
          - name: message
            path: /tmp/message
        container:
          image: alpine:latest
          command: [sh, -c]
          args: ["cat /tmp/message"]

    このワークフローは3つのテンプレートを使用します。

    テンプレート役割
    artifact-exampleエントリポイントテンプレートです。generate-artifact を最初に実行し、その hello-art 出力アーティファクトを consume-artifact への message 入力として渡します。
    whalesay/tmp/hello_world.txt にテキストを書き込み、そのファイルを hello-art という名前の出力アーティファクトとして宣言します。path フィールドは、単一のファイルだけでなくディレクトリも指定できます。
    print-messagemessage 入力アーティファクトを宣言し、それを /tmp/message にアンパックし、cat で内容を出力します。
    ステップテンプレートの from フィールドは、{{steps.<step-name>.outputs.artifacts.<artifact-name>}} 構文を使用します。DAG テンプレートを使用する場合は、stepstasks に置き換えます。
  2. ワークフローを送信します。

    argo submit artifact-passing.yaml
  3. ワークフローのステータスを確認します。

    argo list

    Succeeded のステータスは、ワークフローが完了し、アーティファクトが正常に渡されたことを確認できます。