エンタンドバンドルによる開発者向け市場のコンポーネント共有


おい、開発者.
日は、Endandoで働くとき、開発者の生活をより簡単にするこの大きな特徴について、より多くを学び、共有するために来ました.
あなたのEntandoコンポーネントを定義し、それらを共有し、異なるバージョンを管理し、それらを展開し、ターゲットにした環境にインストールするには、シンプルで直感的な方法があることを教えてください.
あなたのマイクロサービスを展開しようとして時間を無駄にする方法を停止する方法と不活発な方法でマイクロフロントエンド.解決策は既にここにあります.
ようこそバンドルへ!

すべてはコンポーネントです


バンドルを開始する前に、コンポーネントがentandoアプリケーションにあるものを理解する必要があります.マイクロフロントエンド、単純なHTMLフラグメント、マイクロサービス、それらをすべてホストするためのページなどがあります.
これらはすべてのdifferent components これはentandoバンドルに含めることができます.
  • プラグイン( Micro Service )
  • コンテンツテンプレート
  • ウィジェット(マイクロフロントエンド)
  • 内容
  • 断片
  • カテゴリー
  • ページテンプレート
  • グループ
  • ページ
  • ラベル
  • CMSアセット
  • 言語
  • コンテンツタイプ
  • 静的資源
  • EnTandoはバンドル内のさまざまなコンポーネントの名前に特定の用語を使用します.例えば、マイクロフロントエンドはウィジェットとしてページに追加でき、マイクロサービスはプラグインとして展開されます.
    将来のブログ記事では、すべてのコンポーネントタイプを詳細にレビューします.現時点では、entandoインスタンスで使用されるアプリケーションの各部分がコンポーネントであり、バンドルがそれらをインストールして使用するのに役立ちます.

    すべてを支配する束


    バンドル入門


    コンポーネントを使用すると、バンドルは、あなたの親友になります.それは2つの方法であなたを案内します:あなたの構成要素を定義して、ディスクリプタファイルにそれらをすべて包んでください.あなたはバンドルのコードとしてentandoと考えることができます.
    束には次のような特徴があります.
  • YAMLで書かれた
  • タイプ別に構造化コンポーネントを定義
  • 異なるコンポーネント間の関係を定義する
  • 最後に、記述子ファイル内のすべてのコンポーネントをインベントリ
  • コンベンションによって、各コンポーネントは、専用のフォルダ(例えばフラグメント、ウィジェット、プラグイン)の下でタイプによって分類されます.あなたのユースケースに応じて、必要に応じてフォルダを整理することができます.記述子では静的リソースは参照されないことに注意してください.YAML自体ですが、コンポーネントディスクリプタで使用されます.
    唯一のハード要件は、バンドル記述子がルートフォルダに置かれ、“descriptor . yaml”と命名されることです.
    確認してくださいstandard-demo-bundle リポジトリに完全な例を示します.

    バンドル記述子


    私たちが前に言ったように、バンドルは最初に複数のコンポーネントをラップして、それらの展開とインストールをより簡単にするすべての方法です.
    これを達成するために、バンドルは、その責任の下にあるコンポーネントを宣言する必要があります.これはバンドル記述子が行うものです.
    これらの宣言に加えて、バンドル自体を定義するメタデータを定義します.
    以下はバンドル記述子です.
    code: my-demo
    description: My Demo bundle
    components:
      fragments:
        - fragments/myFragment-descriptor.yaml
        - fragments/myFragment-ftl-descriptor.yaml
    
    注意:フラグメントに加えて他のコンポーネントを含める場合は、バンドル記述子を更新して追加のコンポーネント型を含めることができます.たとえば、ウィジェットとプラグインの下のコードでは、ディスクリプタに追加されている.
    components:
      fragments:
        - fragments/myFragment-descriptor.yaml
        - fragments/myFragment-ftl-descriptor.yaml
      widgets:
        - widgets/myWidget-descriptor.yaml
      plugins:
      [...]
    

    コンポーネントディスクリプタ


    これは特定のコンポーネントについての詳細を含む指定されたコンポーネントのための低レベル記述子です.各コンポーネント型には、異なるディスクリプタ形式があります.
    以下はサンプルフラグメント記述子です.
    MyFragmentディスクリプタ.ヤル
    code: my_fragment # The unique id
    guiCode: >-
      "<div>Sample content</div>"
    
    ご覧のように、このフラグメントは単純なdivを“sample content”生文字列で公開します.
    一部のコンポーネントの種類では、Freemarker template 代わりに、より複雑なUIコンポーネントです.この場合、次のようになります.
    MyFragmentディスクリプタ.ヤル
    code: my_fragment_ftl # The unique id
    guiCodePath: myFragment.ftl
    
    フラグメント.FTL
    <div>the content from the FTL</div>
    

    ボーナス:発見このビデオでバンドル機能


    バンドルライフサイクル


    バンドルを完全に理解するためには、どのようにビルドし、どのように展開するかを理解する必要があります.
    バンドルは、あなたの最終的なアプリケーションのアーティファクト(あなたはまた、コンテナイメージ、JavaScriptのミニファイル、資産など)を考慮する必要がありますし、どのようにあなたのコンポーネントを定義する方法との間の通信形式をentandoを適用します.
    まず、コンポーネントとその記述子を作成します.ディスクリプタを手動で作成したり、ウィジェットやプラグインの場合にはEntando Component Generator Jipipsterに基づきます.将来のポストは、この特定のユースケースに深く行きます.
    次に、Endandoバンドルは、バンドル定義をKubernetesクラスタに展開できるカスタムリソースに変換します.カスタムリソースがインストールされると、コンポーネントはEntando App BuilderのEntandoコンポーネントリポジトリで利用可能になります.

    次は何


    このブログの記事では、entandoバンドルを使用してコンポーネントをパッケージ化し、Entandoアプリケーションで配置する方法を学びました.
    バンドルは、効果的にあなたのソースを展開環境に接続するための重要なリソースです.
    このシリーズから次のブログの記事をチェックアウトして構築し、独自のentando束を展開についての詳細をご覧ください.

    追加リソース


    https://dev.entando.org/
    https://dev.entando.org/v6.3/docs/ecr/ecr-bundle-details.html