tag:blogger.com,1999:blog-16340169254939703602024-02-12T08:44:18.394+09:00Oracle Blogs 日本語のまとめOracle Blogsの主としてテクノロジー製品のエントリを日本語でご紹介します(オリジナルのエントリを投稿することもあります)。厳密性をご所望の方は原文をどうぞ。よい内容でしたら原文に対し、"Good Entry, thanks!"でもいいので、是非コメントお願いします(Typoや誤訳はコメント欄からどうぞ)。なお、このエントリは個人の見解であり、所属する会社の公式見解ではありません。また、エントリ内でご紹介している製品・サービスは国内導入時期が未定の場合もありますのでご了承下さい。<br><br>Good entries on Oracle Blogs are put into <b>Japanese</b>. Mainly this blog covers technology products. Opinions expressed in this blog is my personal one and does not represent the official opinion of Oracle Corporation and my employer.Logicohttp://www.blogger.com/profile/09613732625403021898noreply@blogger.comBlogger2676125tag:blogger.com,1999:blog-1634016925493970360.post-89387230998071353392021-08-16T11:42:00.001+09:002021-08-16T11:42:30.722+09:00Oracle Verrazzano Enterprise Container Platformのご紹介/Introducing Oracle Verrazzano Enterprise Container Platform<p> 原文はこちら:<a href="https://blogs.oracle.com/developers/intro-verrazzano-ecp">https://blogs.oracle.com/developers/intro-verrazzano-ecp</a></p><p>Oracle Verrazzano Enterprise Container Platformのリリースのお知らせです。このテクノロジーについてわれわれがこれまで取り組んできていたことは秘密というわけではありませんでした。というのも、このプロダクトはオープンソースで開発されていますからね:<a href="https://github.com/verrazzano">https://github.com/verrazzano</a></p><p>多くのエンタープライズ企業がカスタムアプリケーションに投資してきました。そうしたアプリケーションは、それら企業のミッションやビジネスにとって非常に重要なものです。アプリケーションの一部はトラディショナルなWebLogicサーバー・アプリケーションだったり、そうでなかったりするでしょう。業界がクラウドシフトにフォーカスするにつれ、エンタープライズ企業は、クラウドネイティブな技術を柔軟に適用して生産性を向上しイノベーションをもたらし、既存アプリケーションをモダナイズでき、アプリケーションを好きな場所で稼働させられるようなソリューションを求めるようになりました。</p><h2 style="text-align: left;">TL;DR</h2><p></p><ul style="text-align: left;"><li>Oracleはアプリケーションモダナイゼーション、自動化されたアプリケーション管理の統一化、そしてマルチクラウドアプリケーションのクロスクラウドでの一貫性のためのオープンソースのDevOpsプラットフォームを開発しました。サブスクリプションでご利用可能です。</li><li>ソースコードには<a href="https://github.com/verrazzano">https://github.com/verrazzano</a>からアクセスできます。</li><li>お好きなKuberenesクラスターで、以下のステップで使ってみましょう:</li><ul><li></li><li>Verrazzanoプラットフォームオペレーターをインストールします:</li></ul></ul><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: courier;">kubectl apply -f https://github.com/verrazzano/verrazzano/releases/download/v1.0.0/operator.yaml</span></blockquote></blockquote><ul style="text-align: left;"><ul><li>デプロイが完了するのを待ちます。</li><li>Verrazzanoのコンポーネントをインストールします:</li></ul></ul><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: courier;">kubectl apply -f - <<EOF</span></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: courier;">apiVersion: install.verrazzano.io/v1alpha1</span></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: courier;">kind: Verrazzano</span></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: courier;">metadata:</span></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: courier;"> name: my-verrazzano</span></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: courier;">spec:</span></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: courier;"> profile: ${VZ_PROFILE:-dev}</span></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: courier;">EOF</span></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: courier; white-space: pre;"> </span></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: courier;">kubectl wait \</span></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: courier;"> --timeout=20m \</span></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><span style="font-family: courier;"> --for=condition=InstallComplete verrazzano/my-verrazzano</span></blockquote></blockquote><p><br></p><p></p><span></span><a href="https://orablogs-jp.blogspot.com/2021/08/intro-verrazzano-ecp.html#more">続きを読む »</a>Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-26021981983052697542021-06-01T13:26:00.002+09:002021-06-01T17:31:39.083+09:00Oracle Linux Cloud Developerイメージを使ってArmベースのアプリケーション開発を迅速に始める/Start developing Arm-based applications quickly using the Oracle Linux Cloud Developer image<p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><span style="font-family: inherit;">原文はこちら:<a href="https://blogs.oracle.com/linux/develop-arm-applications-quickly-using-oracle-linux-cloud-developer-image">https://blogs.oracle.com/linux/develop-arm-applications-quickly-using-oracle-linux-cloud-developer-image</a></span></p><p>Oracle Cloud InfrastructureでAmpere Altra Processorでクラウド上で高性能な処理を実現するための<a href="https://www.oracle.com/cloud/compute/arm/" target="_blank">Arm Compute Service</a>がリリースされました!OCIでのAmpere A1 Computeプラットフォームのリリースとともに、OCIの<a href="https://blogs.oracle.com/cloud-infrastructure/oracle-makes-building-applications-on-ampere-a1-compute-instances-easy" target="_blank">Arm開発者エコシステム</a>の一部を成す<a href="https://docs.oracle.com/en/operating-systems/oracle-linux/oci/developer-image/#About-the-Oracle-Linux-Cloud-D" target="_blank">Oracle Linux Cloud Developerイメージ</a>も使えるようになっています!</p><p>OCI上のArm用のOracle Linux Cloud Developerイメージにより、最高のコストパフォーマンスでArmベースのアプリケーションを迅速かつ容易に移行し、構築し、実行することができます。このイメージには最も重要かつ便利な開発ツールの多くが含まれており、また、それらツールの多くについての無料ライセンスおよびサポートも含まれています。このイメージを使えば、クラウド環境で完全なArm開発環境をすぐに立ち上げられます。</p><span></span><span></span><a href="https://orablogs-jp.blogspot.com/2021/06/develop-arm-applications-quickly-using-oracle-linux-cloud-developer-image.html#more">続きを読む »</a>Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-78231706540559823912021-05-28T23:38:00.002+09:002021-05-28T23:38:39.140+09:00クラウドネイティブにとってAPIデザインは不可欠である/API design is essential to cloud native development<p> 原文はこちら:<a href="https://blogs.oracle.com/cloud-infrastructure/api-design-is-essential-to-cloud-native-development">https://blogs.oracle.com/cloud-infrastructure/api-design-is-essential-to-cloud-native-development</a></p><p>より多くの開発者たちが高いスケーラビリティと保守性を兼ね備えたソリューションを求めるようになる中で、クラウドネイティブが人気を得ています。しかし実際のところクラウドネイティブとは何を意味していて、APIはどのように関係があるのでしょうか?</p><p>Cloud Native Computing Foundationはクラウドネイティブの定義を以下としています:</p><p></p><ul style="text-align: left;"><li>クラウドネイティブ技術はパブリック、プライベート、またハイブリッドクラウドのようなモダンでダイナミックな環境でスケーラブルなアプリケーションを構築し、実行する方法を組織に与えます。コンテナ、サービスメッシュ、マイクロサービス、イミュータブルインフラストラクチャ、そして宣言的なAPIがこのアプローチの例証です。</li><li>これらのテクニックにより、耐障害性、管理性、そして可視性を持った疎結合のシステムが可能になります。堅牢な自動化との組み合わせることで、これらによりエンジニアは大きな影響のある変更を頻繁に、しかし予見可能性が高く最小の副作用で行うことができます。</li><li>Cloud Native Computing Foundationはこのパラダイムの適用をオープンソースでベンダーニュートラルなエコシステムの涵養、そして維持により追求しています。CNCFは最先端パターンを民主化することでこれらのイノベーションを誰でもがアクセス可能なものにしています。</li></ul><p></p><p>Oracleがクラウドネイティブをどのように定義しているかについては、<a href="https://www.oracle.com/cloud/cloud-native/what-is-cloud-native/" name=" cta=External Link Click" style="-webkit-font-smoothing: antialiased; background-color: white; box-sizing: border-box; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; font-size: 16.8889px; list-style: none; margin: 0px; padding: 0px;" target="_blank"><span style="color: #2b00fe;">What is Cloud Native?</span></a>をご覧ください。</p><p>ここで<a href="https://www.oracle.com/cloud-native/" target="_blank">クラウドネイティブ</a>の適用についてのいくつものコンセプトや可能性を見ていくこともできるのですが、このポストではAPIとAPIデザインの価値について考えていくことにしましょう。</p><span></span><a href="https://orablogs-jp.blogspot.com/2021/05/api-design-is-essential-to-cloud-native-development.html#more">続きを読む »</a>Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-57839604999367512842021-05-26T17:48:00.002+09:002021-05-26T17:48:48.177+09:00クラウドでのIaC:TerraformとResource ManagerをCI/CDパイプラインに組み込む―ネイティブに構成/IaC in the Cloud: Integrating Terraform and Resource Manager into your CI/CD Pipeline - Building Natively<p> 原文はこちら:<a href="https://blogs.oracle.com/developers/iac-in-the-cloud%3a-integrating-terraform-and-resource-manager-into-your-cicd-pipeline-building-natively">https://blogs.oracle.com/developers/iac-in-the-cloud%3a-integrating-terraform-and-resource-manager-into-your-cicd-pipeline-building-natively</a></p><p>Oracle CloudでのTerraformを使ったインフラ管理についてのブログシリーズの最終回へようこそ。<a href="https://orablogs-jp.blogspot.com/2021/04/iac-in-the-cloud-integrating-terraform-and-resource-manager-into-your-cicd-pipeline-building-with-the-oci-cli.html" target="_blank">前回のポスト</a>ではOCI CLIをGitHub Actionsパイプラインの中で用いて、Resource Managerでのスタックとジョブ作成を経由してTerraformスクリプトを実行しました。このポストでは、ネイティブTerraformをGitHub Actionsで使うことで、コンセプトをもう少しシンプルに、移植可能なかたちで実現していきます。Resource Managerの多機能さや柔軟性といった利点は失うことにはなりますが、あなたがもしインフラのビルドと維持をシンプルにやりたいだけなら、このソリューションはまさにぴったりなものです!</p><span></span><a href="https://orablogs-jp.blogspot.com/2021/05/iac-in-the-cloud-integrating-terraform-and-resource-manager-into-your-cicd-pipeline-building-natively.html#more">続きを読む »</a>Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-19581618939277935182021-04-19T16:07:00.000+09:002021-04-19T16:07:16.124+09:00クラウドでのIaC:TerraformとResource ManagerをCI/CDパイプラインに組み込む―OCI CLIを使った構成/IaC in the Cloud: Integrating Terraform and Resource Manager into your CI/CD Pipeline - Building with the OCI CLI<p> 原文はこちら:<a href="https://blogs.oracle.com/developers/iac-in-the-cloud%3a-integrating-terraform-and-resource-manager-into-your-cicd-pipeline-building-with-the-oci-cli">https://blogs.oracle.com/developers/iac-in-the-cloud%3a-integrating-terraform-and-resource-manager-into-your-cicd-pipeline-building-with-the-oci-cli</a></p><p>Oracle Cloudでのインフラ管理をTerraformとResource Managerを使って実施する方法を学んでいくシリーズへおかえりなさい。<a href="https://orablogs-jp.blogspot.com/2021/04/iac-in-the-cloud-integrating-terraform-and-resource-manager-into-your-cicd-pipeline-release-assets.html" target="_blank">前回のポスト</a>では、GitHub Actionsを使って他の開発者に配布可能なリリースを作成し、'Deploy to Oracle Cloud'ボタンをリポジトリに追加する方法について学びました。今回のポストでは、ワークフローの中でTerraformスクリプトをGitHub ActionsからOCI CLIを使って実行する方法について紹介していきます。</p><span></span><a href="https://orablogs-jp.blogspot.com/2021/04/iac-in-the-cloud-integrating-terraform-and-resource-manager-into-your-cicd-pipeline-building-with-the-oci-cli.html#more">続きを読む »</a>Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-81380938356582912412021-04-12T17:55:00.000+09:002021-04-12T17:55:18.878+09:00クラウドでのIaC:TerraformとResource ManagerをCI/CDパイプラインに組み込む―アセットのリリース/IaC in the Cloud: Integrating Terraform and Resource Manager into your CI/CD Pipeline - Release Assets<p>原文はこちら:<a href="https://blogs.oracle.com/developers/iac-in-the-cloud%3a-integrating-terraform-and-resource-manager-into-your-cicd-pipeline-release-assets">https://blogs.oracle.com/developers/iac-in-the-cloud%3a-integrating-terraform-and-resource-manager-into-your-cicd-pipeline-release-assets</a></p><p>このシリーズではTerraformおよびOracle Cloudであなたのインスタンスを管理するためのResource Managerの使い方を学んできました。パート1で<span style="font-family: inherit;">は<a href="https://orablogs-jp.blogspot.com/2021/03/iac-in-the-cloud-introduction-to-terraform-for-developers.html" style="background-color: white;" target="_blank"><span style="color: #2b00fe;">開発者向けのTerraformの基礎</span></a><span style="background-color: white; color: #404040;">を学びました。パート2では</span><a href="https://orablogs-jp.blogspot.com/2021/03/iac-in-the-cloud-installing-terraform-and-running-your-first-script.html" style="background-color: white;" target="_blank"><span style="color: #2b00fe;">Terraformをインストールし、スクリプトを記述し適用</span></a><span style="background-color: white; color: #404040;">しました。パート3では<a href="https://orablogs-jp.blogspot.com/2021/03/getting-started-with-resource-manager.html" target="_blank">TerraformスクリプトをResource Managerと組み合わせて実行</a>し、パート4では<a href="https://orablogs-jp.blogspot.com/2021/04/iac-in-the-cloud-advanced-terraform-on-the-oracle-cloud-with-resource-manager.html" target="_blank">Resource Managerを使っての変数値の入力とバリデーションプロセスをスキーマドキュメントに組み込み</a>ました。このポストでは、どうやってTerraformのInfrastructure as Codeを分散させるか、また、どうやってTerraformとResource ManagerをCI/CDパイプラインによるビルドプロセスに組み込むかについて説明することで、シリーズのまとめとしていきます。CI/CDツールについてここではGitHubおよびGitHubアクションズを用いていきますが、他のCI/CDツールでもプロセスはほぼ同様のはずです。</span></span></p><p><span style="font-family: inherit;"><span style="background-color: white; color: #404040;"><span></span></span></span></p><a href="https://orablogs-jp.blogspot.com/2021/04/iac-in-the-cloud-integrating-terraform-and-resource-manager-into-your-cicd-pipeline-release-assets.html#more">続きを読む »</a>Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-45022571541481361902021-04-04T21:11:00.001+09:002021-04-04T21:11:27.923+09:00クラウドでのIaC:Oracle CloudでのResource Managerを用いたTerraform利用の応用編/IaC in the Cloud: Advanced Terraform on the Oracle Cloud with Resource Manager<p> 原文はこちら:<a href="https://blogs.oracle.com/developers/iac-in-the-cloud%3a-advanced-terraform-on-the-oracle-cloud-with-resource-manager">https://blogs.oracle.com/developers/iac-in-the-cloud%3a-advanced-terraform-on-the-oracle-cloud-with-resource-manager</a></p><p>このシリーズのひとつ前のポストでは、<a href="https://orablogs-jp.blogspot.com/2021/03/getting-started-with-resource-manager.html" target="_blank">Oracle CloudでResource Managerを使ってTerraformを実行する方法の初歩</a>を紹介しました。そこではとても基本的な、不自然な例を使って説明しましたが、今回のポストではより実践的な例を使い、TerraformとResource Managerのもう少し複雑な用法を紹介していきます。</p><span></span><a href="https://orablogs-jp.blogspot.com/2021/04/iac-in-the-cloud-advanced-terraform-on-the-oracle-cloud-with-resource-manager.html#more">続きを読む »</a>Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-202816765363738372021-03-28T16:17:00.000+09:002021-03-28T16:17:17.020+09:00クラウドでのIaC:Resource Manager入門/IaC in the Cloud: Getting Started with Resource Manager<p><span style="font-family: inherit;">原文はこちら:<a href="https://blogs.oracle.com/developers/iac-in-the-cloud%3a-getting-started-with-resource-manager">https://blogs.oracle.com/developers/iac-in-the-cloud%3a-getting-started-with-resource-manager</a></span></p><p><span style="font-family: inherit;"><span style="background-color: white; color: #404040;">Terraformの使い方とOracle Cloud Infrastructureの管理についてのブログシリーズにおかえりなさい。シリーズの最初のポストでは</span><a href="https://orablogs-jp.blogspot.com/2021/03/iac-in-the-cloud-introduction-to-terraform-for-developers.html" target="_blank">開発者向けのTerraformの基礎</a><span style="background-color: white; color: #404040;">を、第二弾では</span><a href="https://orablogs-jp.blogspot.com/2021/03/iac-in-the-cloud-installing-terraform-and-running-your-first-script.html" target="_blank">Terraformをインストールし、スクリプトを記述し適用</a><span style="background-color: white; color: #404040;">してOracle Cloud Infrastructureのテナンシーでリソースを作成しました。このポストでは、OCIのエンジニアたちがResource Managerというツールを使い、どのようにわれわれのクラウドにTerraformを統合しているかについてご紹介していきます。</span></span></p><span></span><a href="https://orablogs-jp.blogspot.com/2021/03/getting-started-with-resource-manager.html#more">続きを読む »</a>Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-88019265084296474662021-03-21T16:04:00.001+09:002021-03-21T16:04:18.809+09:00クラウドでのIaC:Terraformのインストールと最初のスクリプトの実行/IaC in the Cloud: Installing Terraform and Running Your First Script<p><span style="font-family: inherit;">原文はこちら:<a href="https://blogs.oracle.com/developers/iac-in-the-cloud:-installing-terraform-and-running-your-first-script">https://blogs.oracle.com/developers/iac-in-the-cloud:-installing-terraform-and-running-your-first-script</a></span></p><p><span style="font-family: inherit;"><span face="Oracle Sans, -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica Neue, sans-serif" style="color: #404040;"><span style="background-color: white;"><a href="https://orablogs-jp.blogspot.com/2021/03/iac-in-the-cloud-introduction-to-terraform-for-developers.html" target="_blank">前回のポスト</a>では、開発者向けのTerraform概要をお伝えしました。できればそちらを読んでおいていただければ</span></span><span style="background-color: white; color: #404040;">(あるいは既にTerraformに詳しいか)</span><span style="background-color: white; color: #404040;">と思います、というのも今回のポストでは、TerraformをインストールしてOracle Cloud Infrastructureテナンシーとやり取りするためのモジュールを作成するところを説明していくからです。</span></span></p><p><span style="font-family: inherit;"><span></span></span></p><a href="https://orablogs-jp.blogspot.com/2021/03/iac-in-the-cloud-installing-terraform-and-running-your-first-script.html#more">続きを読む »</a>Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-11356922282817931202021-03-13T17:07:00.004+09:002021-03-21T13:12:56.415+09:00クラウドでのIaC:開発者向けTerraform入門/IaC in the Cloud: Introduction to Terraform for Developers<p><span style="color: #404040; font-family: inherit;"><span style="background-color: white;">原文はこちら:</span><a href="https://blogs.oracle.com/developers/iac-in-the-cloud:-introduction-to-terraform-for-developers">https://blogs.oracle.com/developers/iac-in-the-cloud:-introduction-to-terraform-for-developers</a></span></p><p></p><p><span style="font-family: inherit;"><span face=""Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif" style="background-color: white; color: #404040;">このあといくつかのブログポストで、開発者の皆さんにTerraformの超概観を紹介し、どういったツールなのか、どのように動くのかの基本的な理解を得られるよう説明していきます。</span></span></p><p><span style="font-family: inherit;"><span face=""Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif" style="background-color: white; color: #404040;">いくつかの理由により、深い内容にまで立ち入っていくのはここでの目標とはしません。第一に、最も重要な理由として、</span><a href="https://www.terraform.io/docs/language/index.html" target="_blank">Hashicorp社が既にTerraformの素晴らしいドキュメントを公開</a><span face=""Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif" style="background-color: white; color: #404040;">しており、それと同じことを説明しても意味がないと思っているからです。第二に、多くの開発者は、必ずしもTerraformについて隅から隅までを深く知っておく必要はないと考えているからです。もちろんDevOpsエンジニアはTerraformとすごく仲良くなりたいと思っているでしょう。しかし、開発者にとっては、多くの場合Terraformのようなツールを使う機会はそれほど頻繁なわけではなく、使うときに快適に使えるだけの知識があればそれで十分だと考えると思います。</span></span></p><p><span style="font-family: inherit;"><span face=""Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif" style="background-color: white; color: #404040;">というわけで、ここでは敢えてTerraformの詳細からは距離を置いて超概観を説明しつつ、より詳しく知りたい方向けには適宜ドキュメントへのリファレンスを紹介していきます。</span></span></p><p><span style="font-family: inherit;"><span></span></span></p><a href="https://orablogs-jp.blogspot.com/2021/03/iac-in-the-cloud-introduction-to-terraform-for-developers.html#more">続きを読む »</a>Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-90832244559941173432020-04-06T21:18:00.000+09:002020-04-06T21:18:59.304+09:00[Cloud] OCI Vaultのリリース/Announcing Oracle Cloud Infrastructure Vault and Secrets Management<p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><font size="2"><span style="color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;">原文はこちら</span><br style="color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;" /></font></p><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><a href="https://blogs.oracle.com/cloud-infrastructure/announcing-oracle-cloud-infrastructure-vault-and-secrets-management-v2"><font size="2">https://blogs.oracle.com/cloud-infrastructure/announcing-oracle-cloud-infrastructure-vault-and-secrets-management-v2</font></a></p><div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;"></div><hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;" /><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;"><font size="2">クラウドファーストの世界</font><span style="font-size: small;">では、モダンなインフラを実現するために様々なサービスを組み合わせることが、いくつかの独特な課題を生じています。パスワードやAPIキーといった秘密情報(Secret)トークンは、お客様がサービスをセキュアに運用するうえで非常に重要です。こうした秘密情報は常時利用可能で、スケーラブルでなければなりませんが、一方で目的外の利用からは保護されていなければなりません。結果として、暗号化や秘密情報の管理は信じられないほど複雑になり、ちょっとした手順のミスによって機微情報が漏洩してしまう、ということが起こりがちです。</span></div></div></div></div><div class="adwcsengine" data-adgroupid="NONE PROVIDED" data-id="NONE PROVIDED" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></div><p></p><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><span style="font-size: small;">Oracle Cloud Infrastructure Vault(OCI Vault)はこうした問題への答えです。すべての商用リージョンで本日(4/2)から利用可能になっているVaultにより、OCI上で任意のタイプの秘密情報を保持し、管理し、監査することができます。この新たな秘密情報管理サービスは、OCIでの既存の鍵管理サービスを補完するものです。お客様、またそのクラウドテナントはこれらのサービスを使い、ストレージの暗号共通鍵の管理をスケールさせられます。</span></p><h2 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px; text-align: left;"><font size="4">OCI Vaultに秘密情報を格納する</font></h2><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><span style="font-size: small;">OracleはOCI Vaultサービスを、HSM(Hardware Security Module)をバックエンドにした暗号共通鍵だけでなく任意の秘密情報を扱えるように拡張しています。秘密情報にはパスワードやAPIトークンなどを含みます。こうした秘密情報はFIPS 140-2 Level 3 HSMをバックエンドに持つソフトウェアコンテナであるvaultに格納されます。OCI VaultサービスはOCI全体の高可用性、高耐障害性の基準に準じており、あなたの最もクリティカルなデータが必要な時に利用できるようにします。</span></p><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><font size="2">以下の画像は秘密情報を格納したvaultの例です。</font></p><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><font size="2"><img alt="Screenshot of a vault details page in the Console, showing three secrets defined." height="685" src="data:image/png;base64,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hY0Is/+O7xzaWWEjwrR3z95rCjf069dPDodDN910k2bMmKHPPvtMTqdTDodDoZ1C7ef6Gm6ofW7PzA2ezxu1+1VfuMGqtuw2Pfvss/YxP/vsMzkcDl1//fVyl7ob9Rnsap9fHnvsMTkcDv385z/Xc8895/W5ct26dbIsy2uGvTGjxzR4PWqHG9ylbnW8taNu63qb1ywTPw03HI49LIfDoXvvvVeHDh7SyeyTWrx4sa677jr7PQEAAAC0BYQbWoFPY4YZLzID/vZpzDDj9x789x8Rd6nb/pLoySefbPTzBg8eLIejZvYEz8wDlRWVevTRR+VwOPSHP/zB3tdz/G7dutlfKk2bOs3ePmvWLPv5noDDvffeK8vy/mLR82sjy7KUmpJqb3930ruyLEtfLflK/fv315NPPmlP/19VWVUnMFF7doDevXsrLi5OJcUlqiiv0IkTJy5/EVfrNagdbvCEJAoKC3T99dfbvyzyXIfVq1fb++7etVuWZdmzOrz26muX+5CaWudLu9rhBs/UtBkZGfa2f4/8t/38htasfeCBB9S7d28999xzDb5+MTExcjgc+vDDD+u8H2655Rbd+ec/ybJqZu1wOBx11h9OiE9Qx1s7avV/VsuyvMMNlmXpD3/4g55//nn733fddZf9JacnELFr5y45HJdnC5kcPlmDBw/2mvb2XO45ORwOzZ8/3942ZfIUORyOK74/PdMNr1y50t42ZMgQORwOzZ0795qvQ2P3syxL48eN14033linTR1v7Xh5lgoAAAC0OM/ffw5HzaxiZ8+ctf9du2B/pXDDL37xC23auEkFhQX2UgXt2rWTw+HQyNdH2sdobLihtKRUjz76qPr37+81I0Ltzxue5euuNdzQt29fhY0I08svv6zHH3/cK7zg+Zu79ueNF1980V5qo77zeZaDu/766+3PV55w77BhNd8bNPYzmGXV//llY8RGe9/MzEx7u2fmuG7dusmqrgnX9+7dW717964T4qitdrjBsixF742Ww+HQtKnT7H1+Gm546KGHdNNNN9WZpWHRokV20Nr0exkAAADwB8INrUB63hHjhWbA39Lzjhi/9+C//4h4flHucDj00EMPNfp5//M//yOHo+ZX9rW3157+9fSp07Ksy1+STRg/wd5v/fr19va4uDh7+z//+U85HA516dxFllV3Stja5/J8YXf//fd7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4QNtXo6d/IqiYMaMGVi1apX8txacvVvCDY73Qn/74m+6zzy9BxNi6PuX3p5eGPwMunn8+te/xrp16+R3xyPcIITAvrQ0l3CDEALnz53HM888I5cxefJk+Pn6wdxn9vr5S0REREQ0URhuuAdtOat6vROaaLxtOat6/doiV94IN2gGBwZRdrUMxcXF6O3pHbF9b08vSq+UoqO9Y9zXxd2DRZOpRlfC1ZFt0IaqqioYy4xyvNexsA3a0NnRKSsqjKeO9g4YjUY5xMbtMveZRz0WrY7Nvk+1yghDGegfQGVlpUu51vHUb+1HZWUl2tvadcei1lQ76v2lVcu4du3auO4Hj9s58PP1wwsvvHDH9hsRERERTbzurm50tHfogryDA4OorKxEfV39sN/t7OzE5ZLLQ97XfJeM9h5sqPuXwYFBlJeX35H7ytEc05qaGt0xJSIiIiK6XzDccA9q6Cr3ekc00Xhr6Cr3+rVFrrwZbribjPTWFNFwfv3rX8NX9fXqOrS3tWPSpEms2kBEREREREREREREdy2GG+5RmaVrvN4ZTTReMkvXeP2aIvcYbrBjuIFuR0F+ASZNmqSrBDHRVq5ciT/84Q9e3xdERERERERERERERENhuOEeZenvRUTWr7zeKU10uyKyfgVL/8hDDpB3MNxg193VDaPRCKPRCIvZ4vX1oe+e1N2p9mFAvLj8yspKr+8HIiIiIiIiIiIiIqKhMNxwD8uv2eP1jmmi25Vfs8fr1xINjeEGIiIiIiIiIiIiIiIimggMN9zj4s/8r9c7p4nGKv7M/3r9GqLhMdxAREREREREREREREREE4HhhntcRUuh1zuoicaqoqXQ69cQDY/hBiIiIiIiIiIiIiIiIpoIDDfcB3YVL/B6JzXRaO0qXuD1a4dGxnADERERERERERERERERTQSGG+4DHb3XMS/z373eWU3kqXmZ/46O3utev3ZoZAw3EBERERERERERERER0URguOE+caw8yesd1kSeOlae5IxDmDkAACAASURBVPVrhjzDcAMRERERERERERERERFNBIYb7iNRJ/7b653WRCOJOvHfXr9WyHMMNxAREREREREREREREdFEYLjhPnKxPsvrHddEI7lYn+X1a4U8x3ADERERERERERERERERTQSGG+4zmwq/9HrnNdFQNhV+6fVrhEaH4QYiIiIiIiIiIiIi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RER+Y7iBiIiIiIiIiIiIiIjIP2fKzmDDhg1iCIvg4GBEREQgODhYTNuwYQPOlJ2Z9G39MWC4gYiI/MZwAxERERERERERERER0bUZGhyCwWBA0aki5Ofno+hUEQwGA4YGhyZ9235MGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/MdxAREREREREREREREREE4HhBiIi8hvDDURERERERERERERERDQRGG4gIiK/TdQfkZbmFuzYuQM7du7AmbIzY85fdaFKzH/8+PEx5+/s6BTzlxSXTPpxnUwnC09ix84d2Jezb9K3xV96/UnxeZp6TT69x2Qyiffs2LkDFRUVk74fvrDb7GKbDx08dEPXZTFbkJGxBzExMZgdMRsJ8QmTvv8/dTfD942IiIiIiIiIiIhoojDcQEREfpuoPyKNDY24//77cf/99+PTTz8dc/6gwCAx/7PPPgvFMfr86enpYv60HWmTflwn0zfffIP7778fL77w/036tvhLp9OJz9NgqB5zfpPJhLffelu857PPPsPQ0NCk74cvzENmsd1vv/X2DVtP+6V2zJw5U6xLfLd+BMfgx2pwYBAN9Q1oqG+AxWzxOs/N8H0jIiIiIiIiIiIimigMNxARkd8mcliKGb+dgfvvvx+PPfoY7Db7iPM57A489dRTmk7YGkPNqMsODQ0V8zY2NE76cZ1MN0Nn63jCDb09vXjzzTfF/F9++SWsFuuk74Ov/n/27jwmquthH/hRUtOYtkn7TaypN0YxBjTSaKRqv/Vt1Z/W1CWu1Wjb16p1t0YH911xx61aoVqlbqhUaetSXMAFN0TFuisuIIsKisywbyd5fn/w3sNcZmEYhbHt88fnD84999xz750hM/c8c05NhRsmTpyojtO9e3fMmTMHs2fN9vj5v86ijkWpa3br5i27df4J7zciIiIiIiIiIiKimsJwAxERua0mww2zZs6qdKBQSolbN28Zgg2apmFn2E6nbbdvXxac+PTTTz1+TT0tNDQU48ePx8IFCz3eF3e5Gm7IfJ6JHj16qLpTJk9BcVGxx/tfFTUVbvD394emaejZs6fHz/nvwpVwwz/h/UZERERERERERERUUxhuICIit9VkuOHA/v1qoDBsV5jDeqGhodA0DZ999hkGDRwETdMwZswYh/VTU1JVu/PmzfP4NaWX50q44fmz5+jerbuqN3v2bKczgryuaiLcUFhQqI6xdu1aj5/z34Ur4QYiIiIiIiIiIiIich3DDURE5LaaDDekpaWpgcJJkyY5rDds2DBomoaFCxYiJCRELWVRVFhkt/6BAwdUu0cOH/H4NaWXV1m4ISMjA127dlV1Fi9eDFnq+X67o6bDDRt+3ODxc/67YLiBiIiIiIiIiIiI6NViuIGIiNxWk+EGKSU6duwITdPQpk0bu9vz8/LRpEkTaJqG6Ogo/HXlLzW4eOXKFbv7zJkzB5qmoWHDhniR+UKVRx2LQkhICA4dOqTKbty4gXnz5mHw4MHYt2+vTVtxF+KwYP4CjBgxAt27dUefPn0wfPhwbNy4EYmJiXaPH385HiEhIQgJCUFhQSFKiksQGRmJlStXYsiQIRg8aDBWrFiBw5GHYTabHV6bV9XOsaPHEBISYjM7xsMHD1X7+fn5kFLi2tVrCA0NxZgxY9C3T19Mnz4dW3/Ziry8vErv5dMnTxEZGYklS5agf//+mDBhAnbs3IHkR8mQUiImJgYhISGIiIio8uvEWbghPT0dXbp0UdvXrF5TpbavXr2KLZu3YML3E9C9e3cMGzYMa1avQXJysk3dWzdvqWt29a+rLr2fQkJCsG3rNpf7U1m4IfzXcISEhODc2XOQUsJsNuNw5GEsWrQIffv2xYgRI7BixQrEx8fb7Hs8+jhCQkLw4/of1TH+95tv1DldjLtos09JcQliTpXdu/Hjx6N3796YPn06tu/YjuvXrjs8jxeZL1S7T588hZQSuTm5CN+zB6NGjkKfPn3U+er19PdUUmISdu3ahSmTp6Bvn76YP38+Duzfb3gdmrPMOHjwIObOnYtevXph6LdDEbgw0OmyJbrExESsXrUa48aNQ58+fdC9e3f87zffYOmSpbh86bJN/Y0bNyIkJAQmk0ldtwXzF6h+P0p6VOn7raJrV69h+/btmDZtGnr37o3vx3+Pn376CTExMQ5nHLF3rZKTk7Fv315MmzYNvXr1woTvJ2D9+vVIS0ur8vuMiIiIiIiIiIiIqKYx3EBERG6r6XDD/Pnz1WChPghuLfZ8LDRNQ+PGjWG2mFFcVIwWLVpA0zSEhITYbbNTx/8HTdPQu3dvQ/nkgMnQNA0jR46ElBI//fSTOramadj882ZV91nGM/Tp08ewvaLGjRvbnRli88+bVZ3M55n4fvz3Dtv49NNPcef2Hbvn8aramTRpEjRNQ6eO/89QHh0drfY3W8zYtnWbw/Y///xzPLj/wOF9PHL4iAqhVNSiRQtcv3YdgYGB0DQN/fv3r/LrxFG44emTp+jUqZPa9tNPP7ncZkF+AZYuWer0/kZFRRn2efrkKRo1agRN0zBixAin7VssFnVNqrI8SmXhhh49ekDTNKxYsQIZGRmGYIe1hg0bYt26dYZ9Z82c5fQ1XXEWhyePn+Crr75yus/ixYtRkF9g08+HDx6qOteuXkNqSqrhXjVq1AhSloUU9LKTJ07i7Jmz8PX1tXus3r17Iyc7B6kpqSoYZc8vob/YvbYlxSWYNm2a0/PRNA3Lli4zzPzh7e3ttP6Z02cqfb9Z39+FCxY6bW/IkCFIf5pus2/FaxV/Od7htfLz80N0dLRb/5eJiIiIiIiIiIiIagrDDURE5LaaDjdERkaqwbj9+/+w2b561WpomoZBAwepMn2Qf/DgwTb105+mq/ZWr1pt2GYdbojYF2EYCGzSpAnCw8MhZdmvy62DDV26dMHs2bMRHh6OHTt3YML3E9CwYUM1QPvk8RPDcaxDCYMHDYamafjoo48wdcpU7AzbiVUrV2HgwIGqjo+Pj2Fw9FW340q4QQ96tG/fHgvmL0DYrjBs/nmz4Tp8O+Rbu/dw29Zt6nr4+flh4sSJ2PrLVqxfvx5ff/21Kh80cNArDTekpaUZBri3/rLV5fby8/IN5zZkyBAEbwhG2K4wzJ49G82bN1cBh2NHjxn2HTt2rLr3zzKeOTyG9fIorszyYN03V8INU6dMRbdu3aBpGkaNHIUf1/+I8PBwBC4MNAzGW89EEBoaiuHDh2Po0KFqe4cOHTB8+HAMHz4cB/bvV3WvX7uOli1bGoIFK1euxO7duzFv3jy0a9dObevZsyeyLdmGflqHGy7EXlChI91/P/kYUhoH7KdNmwZvb2+0bt0aM2fOxK5du7B27VrDsWbPno3/fvIxGjZsiEmTJiE0NBQ7du7AlMlTVJ3GjRvbDftYh6natGmDiRMnYtvWbQgPD8eC+QvUfdc0DX9G/qn2GzVyFIYPH66uvaZp+PLLL9V1u369fAYLZ+EGs9mM7t26qzbaf1L2ftu9ezeCgoIM7bdu3Rq3b9027m91rVavWo3mzZvD19cXU6dOVddh3LhxhoCDxWKpsf/nRERERERERERERFXFcAMREbmtpsMNGekZaiBu7ty5Ntt79eqlBt/1svBfw9UAZk52jqH+4cjDqr3Y87GGbXq4oUePHvDz80OjRo2w4ccNSH6UbJgG/s8//1RthO/ZY7ffu3btUnUiIyMN26xDCXoIw96yEfv27UXjxo3VAHNRYVG1tONKuEHTNEycONFmILSkuEQN5muaZjPYmpiYqIINnTp1MkzPr4vYF6FmO3hV4YbUlFR8+umnqqxdu3Y2rwVngoOD1WvIepkS3eO0x/jyyy9VnbTU8in+Y07FqOM6W3pg9KjR0DQNXbt2rdK5uhpu0AevT58+bVPn6l9X1TUfN26czfbCgkLVRsXZGqSUKC0pRd++fVWIY9PGTSgtKTXUMZvNhoH0H374wbDdOtygz/7QvVt3XIi9ALOl/HVsPWCvaRr69euHjIwMQ1vpT9PRvFl58KBp06aIv2y77Ib17CMVlwJ5+uSp2jY5YLLN+Ugpcef2HfVeWjB/gc32qGNRqo1bN2/ZvX/Owg0rVqxQ+0+aNMnu+y14Q7B6T1mHuuxdq+7duttdHic0NFTV2b5je5Xfb0REREREREREREQ1heEGIiJyW02HG6SU+OKLL6BpZTMkWJc/f/a8/JfvV8t/+f4o6ZEqj4mJMewTuLBs6YMmTZogPy/fsE0PN+gD1vHxtoOjUkrMmzcPmqbB39/fYZ8tFosagKw4Q4R1KKFdu3Y2/bC2ZfMWVXffvr3V0o4r4YZ27dohLy/Pbts3b9y0+2t2KSUWzF8ATStbAuHhg4cO+7d82fJXFm6IiopC+/btDYO8mqZh+vTpLrWVmpKKpk2bQtM0m2UbrKWlpalf8v+4/kdVXlJcgvaftFcD8fb2NWeZ1SC5oyUSHKlKuGHHzh0O2xkzZowKnVTcVlm44dChQ2r7wgULHR6jqLBILTXRtGlTPE57rLZZhxs0TcP48eORn2/7GrYesPfx8cHTJ0/tHmvmzJmq3saNG+3WycvNU9d99qzZhm3WoSVnS6zooQ579/Zlwg3JyclqRo1u3boZAlUVWS8fYj1ziPW1atiwoU3YyPo1qi/fM3/+/Cq/34iIiIiIiIiIiIhqCsMNRETkNk+EGxYvXqwG7J4/e67K9SUrPvzwQ5uBwM8++wyapmH5suWGcj0oMXToUJvjWIcbZs6c6bA/8fHxOHniJK5cueKwTlJikmprxYoVhm3WoYTNP292eu4WiwV+fn52B1NfVTuuhBt+3vSzw7azLdmqXmhoqCrPzclVIYExY8Y47V9ycrIKg7xsuMHHx0cN7oaGhqJNmzZqm/WyCo78EvqL2t/eTBjW9PBGu3btDK/BkJAQdcykxCSb/SIiIlSIxtnSFfa4Gm7w8fGxmaXD2sqVK1XooOK2ysIN3w75FpqmwdfX1/CetMd6wN/69WEdbmjUqBGSHyXb3d96wH7GjBkOj6PPtuEsWCClVK+HyQGTDeUPHzzEyRMncfLESchS+/taB1d69+7t9FyrGm7Ql37RNA0xp2Ic9l/KspkqmjRpAk0rW3LE3rUaNmyY0zb69ulrsz8RERERERERERHR64bhBiIicpsnwg3R0eUDhtHR0ap89uzZ0LSy6dsr7qMPOnfr1k2VZT7PVO1s2bLFZh/rcMPNGzer3M+C/ALcvXMXv+79Vf1avbJww/179yttV5/av3nz5tXSjivhBuvrXpH1YHtISIgqT0i4q8orLgFgjz7bwsuGG/TQwJHDRyClxLmz51R5s2bN7E7Tb03/Vfx/P/kYf135y6m1a9ba/bX/k8dP1LIPwcHBNscY+u1QNVtBVc/V1XBDjx49nLazdm153ysuwVBZuKFdu3bQNA1ffvllpf01m8sH3OfMmaPKrcMNY8eOdby/1YC9vfetznqpBXOW41CKHnyqGG5wpKS4BMmPkhF1LEqFOqoj3DBt2jS1r6NZUqzpS/J06NDB7rVatnSZ0/0HDBgATdMwZMiQKr8GiYiIiIiIiIiIiGoKww1EROQ2T4Qbsl5kqV/1BwUFqXL9F9QRERE2+0RFlQ8yZqRnQEpjSMJeeME63JBtya60X2mpadixcwcmTZqETp06qcHsipyFG3Kycyo9zvLl5Us2WP9K/lW140q44fq16w7bdRRuOHXylCqPOhZVaf+++uqrVzZzw9kzZ43nbrXsRa9evVCQX+CwrX79+tm9j5W5dPGSoR217EOF65qRkaFeKydPnKzyuboabqjsF/nuhhtysnPUNmcznFhr3bo1NE3D4MGDVZl1uGHlypUO97UesHe2hIch3GBxP9yQbcnG/v1/YO7cuejZs6eafaSiVx1u0Je7aN++vUvXNCAgAJpWNuuF/nq2vlbWs2TYw3ADERERERERERER/R0w3EBERG7zRLhByvJfKesD39YDo2lpaTb1zWazGkA+dOgQpCwf4G7ZsqXd9ez1cEOLFi2c9qWwoBCzZ81G48aNDTMFdOzYEaNGjsKa1Wtw+9ZteHt7Ow03NGzY0G4/Klq3bp06zsMHD195Oy6FG65XPdxw4MABVe5s5gfdwIEDX0m44cTxEzbbC/IL0LNnT1VnyZIlDtuynnWjKo4dPWZoxzrcce3qNVW+e/duaJqGNm3aoLiouMrn6mq4YfSo0U7bcTfc8OTxE7Wt4rIvjnTp0gWaZpxJxfo9vDNsp8N9azLcsH37drV8i65t27b432++QWBgIGJOxWDYsGHVEm7o2LEjNE1Dz549XbqmCxcstAkruXqtpGS4gYiIiIiIiIiIiP4eGG4gIiK3eSrcsGLFChUiyMvNw65du6BpGrp06eJwny+//BKapmHWzFmQsjwgYTKZ7NbXww2fffaZ075YD6SPHj0asbGxdmcCqCzcoGkaHqc9rvTc9WUSNM04Xf2raqe6wg3x8fGqPDw8vNL+6UsdvGy4ISHhrt069+/dh4+Pj6p3PPq43Xr6jAvdunVDaUmpy2SpsZ2S4hL895OPbcIUgwcNhqZpWLN6jVvvBU+HG0pLStVsBqNHOz+Gfh3094L1MhzW4YYDBw443L+mwg0RERFq/88//xzHjh6D2WzbzsiRI6sl3DBixAhoWtnSKRVfS/boIQvrZWYYbiAiInr9PXz4EEFBQQgKCsLlS5cN20pLSrFp0ya1veJsZNXldMxpdcynT556/BpVxYMHD1Tfn2U8e/XHKJXYsXMH0tPT7W4vyC/Alfgr2Ld3L86fO+9whjiLxYLj0ccRsS8CV+KvuBRy3rp1qwrqV3b/1q1b5/F7QURERERUXRhuICIit3kq3BBzKkYN2l2IvYCxY8dC0zQsXbLU4T4/rv8Rmqbhv598DLPZrJa2iNhnu4yFlK6FGzLSM1Q/xo0b53AQsrSkVM3s4CzccPr06UrPvU+fPuo8qqOd6go3WF+r2bNmO+1b8qNkVbe6wg1SSoTv2aPqtWzZEk8eP7Gps3rVamiaBl9f35d+3QZvCIamaWjdujWKi4rxOO2xOn7iw0S32vR0uEFKie7du0PTNHTo0KHS/iYlJqm2Vq9arcpft3CDPrtE27ZtnS7zMnTo0GoJNyxdstT1sFJpeRioX79+Vb5WUjLcQERE5CnR0dEQQkAIgQ0bjJ+zJk2cpLZ17doV+Xn5NdKn+fPmq+NevXrV49fIka+++gqdOnVCcHCwKjt65Kjq++1bt1/5MY9HH4cQwmYJOiklbt64CV8fXwghUKtWLQghoGkaLsZdNNQ7cvgI3nzzTUO9li1bIikpyemx/fz8MHToUJfun5eXl/o7LzcPnTp1wsGDBz1+z4iIiIiIXgWGG4iIyG2eCjeYLeXLTKxfvx7NmzWHpmmIiYlxuE/85fKZA6wHPpOTk+3WdyXcYL3UgLMB2du3bqt6zsINo0aOcnre1u18P/77ammnusINsrR8qv1mzZohNyfXYRt6oKC6ww2ytHxmBk3TMHjwYJslPaKiygeoT5446fS4ixYtgr+/Pzp06GD3V1qP0x6rUM2Z02ewbes2aJqGQQMHuf1eeB3CDfPnz1fb7S0DYi0wMFDVjYqKUuWvU7jBbCk/xuzZsx3uW1xUjFatWlVLuOHPyD/VvsuXO1/u4+iRo6qu9awgDDcQERG9/hyFG+bNnafKu3TpgrzcvBrr098l3FC/fn0IIWCaVD4TX3WEG3Kyc5CQkIBNmzbBy8vLbrihqLAI3o290bRJUyQkJEBKiTu376CJdxO89957yLa7YjNkAAAgAElEQVRkQ0qJzOeZqFWrFjp27Ij09HQUFxXj5ImTEEKgR48eTvvharjhzu07OHrkqPo725INIQQ2bdrk8XtGRERERPQqMNxARERu81S4QUqJ/v37q1/ca5oGb29vpwPmRYVFKgSh7+Psl+auhBtOHD+hBg/DdoU5PK6+9ICm2c4uYR1K0DQNRw4fsdtOXl4ehn47VNW7ceNGtbRTbeEGKXHo0CG1beqUqTZBAiklzp09p5Y5qPZwgyx7wNimTRtVf/369YbtpSWl6NmzJzRNQ9euXZH1IstuO9evXVfBhZkzZzo83uhRo8vOf+pU9O3bF5qm4Y/f3X8fvQ7hhsdpj9U969y5M15kvrB7jCtXrqgZTPr27Ws4zmsVbjCXH2PC9xMc7msdwunevbvNduv3jKOBAUfvt5LiEnXvGjdu7PA99yzjmTqHZs2aISM9o8rXSkqGG4iIiDzFXrhh1apVqqxTp05Ov+OkJKcg7kKcGjzX5eXmISc7x3a2h9Kywfqc7BwUFRbZbdOdcMOLzBe4EHsB6U9tl2soLCg09CU3JxdxF+Lw8OFDu98HpCz7HBN3IU59tsnPz0dOdg4K8gtQXFSMnOwc1KtXD0IIjB83Xp1PxXBDaUkprl+7jps3biI/372ZL9asWaPa1FUMN+jHrbjU3cGDByGEwJnTZwz3u2K9r776CkIIp8uRWYcbsi3ZuHr1KsxZtp9zCwsK1WumIL8A6U/TIYTA+vXrkZOdY/gMbrFYcPWvq7h+7brTz8xERERERK8ThhuIiMhtngw3WA/Gujoopy9foVswf4HDuq6EG54+earaat26Nc6fO68eSGW9yELMqRh069bNcMxRI0eVPVD6v3rWoYSGDRuiYcOGWL9+PRIS7qKkuEQ9/Pvqq69UvfHjx9v05VW1U53hhpLiEhUU0DQNo0ePRmRkJFJTUhEbG4t169ahSZMm8PX1VQP/1R1ukLIsUGF97S7EXjBsP3P6jNr+308+RtSxKGRklD1oTUlOQfiv4WoZg6ZNmzr8lb6U5YEYb29vNSDtbNmDyrwO4QYpJdatW6fqtG3bFlFRUTCbyx6QPk57jC2bt6hgg6ZpNmtKv07hBiklOnX8f+r1ELYrTD0Mz8vNw/Vr1w0zfujv/2xLtuGB9NWrV9X2KZOnIPZ8LOIvx6vr4uz9JqVE7PlYtb+3tzd+Cf1FLZ1iNptx5PAR+Pv7qzobN25061pJyXADERGRp1QMN2zevFn93aFDB4efE2PPx6Jxo8aGAfd+/fqpzxmjRo2CEAK1a9c2DOofOXxE1a+4XIKuKuGGlOQUfPHFF4Z+NG/WHAl3E1Sd2bNmQwgBf39/hO0KM9Rt3bo10lLTVN2C/AJ8P/57Q53p06ajZ8+eEEJgxIgR2LFzh03YQAiB0NBQQ7jhzz//RKOGjdTfb731Fs6dPaeONeH7Cahfvz7q168Pi8Xi8ByzLdl4nPYYj9Me48D+/XbDDaGhoRBC2LQTez4WQgi1JERSUhKEEAgPDzfU8/f3R6tWrZxeaz8/PwwZMgTTpk4znHeXLl0MoRLrZSkCTAE21ynuQhyklFi8aLHNtkWBizz+niAiIiIiqgzDDURE5DZPhhvOnztvGFzcsmVLpfvs2rXLsE/UsSiHdV0JN0gpsXDBQkObTZs2VTND6IOS27dvx9Qp5QPuzZo1Q1Ji2Zqq1qGE8D17DG01a9bMMCCsaRrGjh1rd7D2VbVTneEGKctCH999952hL9a8vb1x/tx5zJ07F5qm4csvv6zya6Oq4QYpJZYvX24YnM98nmnYvm/fXvj4+Bj62qJFC8PfDRs2NEwBa09JcQnatWun9nG27IErXpdwQ1FhEdauWatmr9D5+fnZ/H3s6DGb/V+3cENkZKSh340bN0br1q0NZTNnzsT2HdvV376+vvjtt9/K+2ox48MPP7R5jeu/3HP2ftP9Gfmnzeus4jVt1KgR1q9fb/PLR4YbiIiIXn/W4Yb27dsbBpr1UGNFF+MuqjqffvopvvrqK9SqVQtCCLRq1QqlJaU4e+asqhMZGan2HT16NIQQaOLdxGGfXA03mLPMePfdd1V73333nfrby8sLycmPIGV5uEH34Ycf4q233lJ/T5wwUbU5c8ZMVd65c2d8++23aikIPdwQGxuL8ePGq3P29fHF+HHjce7sOUO4QQiBevXqoZlvM/W3T1MfFUYdPHiwKrcOnzpz7uw5u+EGR/TlRZKSklTZ9+O/xzvvvINdu3fhdMxpFUCwvk/2+Pn5QQgBPz8/nD1zFmmpafjtt99Qp04d+DT1QXFRsbp/erjh3r17OHb0GIQQmDJ5Cs6cPgOz2YzoqLLX3fJly/H0yVOkJKdg1sxZEEJUuswcEREREZGnMdxARERu82S4IS83zzBg7+zX8rrEh4mGgWh703jqXA03FBUWYf369TaDmN7e3vjyyy9VEODM6TNo0qSJ2v4oqexhn3UoIduSjdjYWPTr189m0Lxr164IDQ11OFXpq2qnusMNUpYN8G/fvh0jRoxQQZA2bdrAZDIh9nwspCxfvsHZsgCOuBNuKMgvMMwqMWrkKJtrdC/hHoYNG2Yz2KxpZbNQ3Lxx06VjrV+/Xu0XHx//Uu+D1yXcoIuNjcWggYPg6+truD6tW7fG9+O/R1pamt39Xrdwg5Rl0wh36tTJ5j3UuXNnHNi/H1KWLWtiHXqouMRIbGwsBg8ejFatWqngR1XCDVJKpKakYty4cTbhCl9fXwweNNjhry4ZbiAiInr9WYcbKho1apTdfVq1amUTCkhISFD7HTx4ELJUokGDBhBC4LvvvoOUEsVFxahTpw6EEFi5cqXDPrkabtCDCC1btlSzQxQVFuGDDz6AEAJTp0yFlMZwwy+/lH0myc/PRxPvJhBCoJlvM0hZ9tlFr/f9+O/Vca5evWoIN+jl9evXhxACpkkmVWYdbvjuu+/KBvxLJUaOHKnK9aUu5s6ZC39/f/j7+9ss6+FIVcINv/76K4QQmDRxkqH8yeMneP/99w33etCgQSjIL3Danh5uePrkqaFcn41Dnw3COtwgZdnME0IIbNq0SZXpM4T8deUvVVZSXIKZM2baLJlBRERERPS6YbiBiIjc5slww+smPz8fCQkJOHf2HBISEuyuYWuxWHAx7iKyXmSpsoqhBL08PT0dF2IvIP5yvEvLFryqdmpcqcTzZ89tyrt36w5N05w+ePVkn1NTUnH+3HncvXPX5YehusDAQGiahi5dujhdV/fvrKS4BIkPExEbe97u2st/FyXFJXiU9AixsbG4dvWa3TWvi4uKEX853jClcnV5+uQpYmPPIzEx0eEa1URERPT3UTHc0KJFCzRt0lT9XfH7VtaLLMNAf1BQkPLOO+9ACIHRo8tCrUuXLFWzKBTkF+B0zGm1b0pyisM+uRpuaNmyJYQoWz7Duh///eRjCCHQoEEDSGkMN1gPzOtLZ9StWxdSGmekqBje1I9VlXCD9Yxau3bvUuV377gWfrbHlXCDOcuMMWPGQAiBcWPHqRkVpJS4e+cu6tati9atWyM6KhoJCQnYtn0b6tSpAz8/P8MSIhX5+fmhe/futttKJby8vFTYxZVwQ3LyI3h5ecHLywsBpgAcPHgQzzKeefz9QERERETkCoYbiIjIbQw3vDxHoQRPtVOdrl+7jnNnz+Ha1WtO6yXcTVDnEr5nj8f7/Srl5eahefPm0DStbAaN16BPREREROQZ1uGG5s2a41nGM8Mgf506dQwBymtXrzmc6UHXq1cvSCmRmJioyo4eOYrJAZMhhMDnn3/utE+uhhtq165daV+kLA83vPHGG4b958yeo86x4rWoOCtf586dqxxusJ5VTV+aQQiB27duu32/Kgs3RB2LwnvvvYd69eqVzaBRYXvgwkAIIWyCBAcOHIAQAjGnYhwe28/PDyNHjrS7rYl3E/Tp00fdv8rCDVJKPHr0CFMmT0Gjho3UtenZsydSU1I9/r4gIiIiInKG4QYiInIbww0v798Ubli+bDk0TYOPjw8sFovdOiXFJZgwYQI0TUPTpk0drjX8dxW2K0ydW+bzTI/3h4iIiIg8x3pAf8OG8uW/9IF/IQS6dOmilg2znrkhODgYmc8zbVgvydWhQwe1RMN//vOf/1u+wHl42NVww4cffgghBAYPHmy3H/pnXT3coIcYKp6jXp5wt3xpjZ1hO1W9vNw8vPnmm1UON1iHGGoi3BAevkctqeHo+9gXX3yBpk2a2pSnp6dDCIEffvjB4bH9/PzQtWtXm/LSklLUrl1bLefnarjB2uO0x1i7dq1L4RciIiIiIk9juIGIiNzGcMPL+zeFGy5fuqz62Lt377IZHKyWZUhLS8PYsWNVnbVr1nq8z6/C1b+u4vmz5zhy+Ah8fX2haRoCAwM93i8iIiIi8ixH4Yb8vHz4+viqbdaD3n5+fhBCoHPnzmopvPy8fAwYMABt2rTBgf37Vd0dO3cYZlKoVatWpUvVWYcbgoODceTwERsZ6RmYNnUahBCoXbs2XmS+UPsvClyENm3aYMH8BZDS9XBDaUmpOue3334bkZGRuBJ/BQMHDjQsxaHvr4cb+vXrp8qqEm5Yu3YtBgwYgAEDBthdesweR+GG1JRUCCEwf958p/sHmAIghMD1a9cN5ZGRkRBC4HDkYYf76vc9OfmRoVw/5917dqv7V1m4YemSpejYsaPNMfr164d3333X4+8LIiIiIiJnGG4gIiK3Mdzw8v5N4QYpJbbv2K76qWkaPvroI/Tt2xf+/v6G8hEjRjic3eHvpLSk1HBemqbhv598bHgATERERET/To7CDVKWBYOtgwn60m76ALseDOjXrx/eeustCCHw/vvvGz5DWywWQxujR4+utE/W4QZHoqOikfk8E3Xr1jUsadDEu4n6O/5yPKR0PdwgpcTJEydRq1Ytw7Hq1auHZr7NbMINn376qarz7rvvIjw8vErhhsGDB6sys9lc6XWxvvYVww1LlyyFEAIR+yJwOPKwjefPnkNKiZs3bkIIgQ8//BC//PILEhIS8Ouvv+Ltt99GixYtkJ+X7/DYerihcaPG+PPPP3Hv3j3s27sXderUQdMmTVXQpWK4oaS4BEII9O3bF5GRkXiR+UKFKUyTTLh54yaSk5Nx4MAB1KlTB0OHDvX4+4KIiIiIyBmGG4iIyG0MN7y8nWE70bZtW7Rt27bSX1HVRDs1ITY2FhMmTEDjxo0Ng/7e3t7o3q07/vzzT4/38VUpLSlFw4YN1Tn27dMXCQl3Pd4vIiIiIvI8Z+EGKY1BA18fX+Tl5kHKskF265kd3nrrLXz77bdITEy0aeOrr75S9c6eOVtpn1wNN0gpkZz8CD169DBs69GjB04cP6Haq0q4QUqJO7fvYFHgIgwaNAiLAhchOTkZXbp0gRACY8eOVfXOnD6DBg0aqOOGhoZ6LNzQs2dPp9cr5lSMqhtzKgYtW7Y0bB80aBBSklOcHtvPzw//+8036nrqevfujYz0DMP9sw43SCkxb+481K5dG0IIxF2Ig5QSISEhKhSjGzJkiGFZEyIiIiKi1xHDDURE5DaGG+hl5OflI/lRMv668hdSU1JRUlzi8T5VB7PFjISEBDzLeObxvhARERHRP0fWiywkJCQYlnqzVlhQiM6dO0MIgQYNGjis97Ly8/Jx985dFOQXvFQ7P/zwA4KCghB1LMrQtj74HhQUZLNPtiUbWS+yUFpS6vH7URXmLDPu37/vdLYGR3JzcnHv3j3k51d9X2vFRcVISU7B/fv3X/uAPBERERGRjuEGIiJyG8MNREREREREr5/33nsPderUUcGAXbt3ebxPlenXr5/q78aNG7Fv71507NhRlT1Oe+zxPhIRERERkWcx3EBERG5juIGIiIiIiOj1owcC6tSpg6lTpnq8P654lvEMHTp0sFnWoUGDBmo5BSIiIiIi+ndjuIGIiNzGcAMREREREdHrJy01DUlJSdW2FEV1un3rNiIiIhAZGYkHDx78Y5evIyIiIiKiqmO4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREb1KaS/S8NySiUzLCxQUFXi8P0RERERE9PpguIGIiNzGcAMRERERERG9rAxzBsLO78bwraPQZtnHaLXEH62W+GNs2ESEnd+DlOepHu8jERERERF5HsMNRETktpoMN5yOOY2g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xeLx+1cVpSWlyHqRhcSHiUhPT3c5HFFTCgsKkZycjPSnr1/fiIiIiKh6pb1Iw3NLJjItL1BQ5HwWCSIiIiIi+ndhuIGIiNzGcMM/S2lJKRISEpCQkGB3On5r2ZZsVbeyaWtfhbTUNBw6dAgRERG4cf0G8vPyq/2YzujLdbzsuYeFhVU6ewCRq2JOxXj8/wgRERERERERERFRdWG4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3MZwAxEREREREREREREREdUEhhuIiMhtDDcQERERERERERERERFRTWC4gYiI3OapcMPFuItYtWoVBg8ejH79+mHZ0mU4cfyE033MZjPCdoVhyuQp+PzzzzF8+HAEBwcj25JtqFdUWISgoCAEBQXhj9/Lz29n2E5Vrlu9ejX2//EHEhISPH4viIiIiIiIiIiIiIiI/skYbiAiIrfVdLghPz8fU6dMhRDCriFDhsBsMdvsdzHuIjRNs7vPW2+9hZhTMapuXm6e2tavXz9V3q5dO4fHFUJg4MCBePL4icfvCRERERERERERERER0T8Rww1EROS2mg43fP311ypMUK9ePXz33XcYN3YcGjVspMrbt28PWVq+z80bNw0hhE6dOmHG9Bno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9tvQaDRYsWLFqB/Py+7kyZNipoDnVaxCREREREREREREYwuLG4iIiIhocIwSFi5cCI1Gg61bt47+8YwBaWmpouAjNiZ21I/nZdbX2yeWjTh29NioHw8RERERERERERGNDBY3EBEREdGgxcbGQqPR4JVXXkFNdc2oH89oW7VqFTQaDZYsWfJcluogi9qaWrEkxbWrV0f9eIiIiIiIiIiIiGhksLiBiIiIiIbkyy++hEajwbZt20b9WEZTWloaNBoNxo8fj7zcvFE/npddxsMMUdyQfi991I+HiIiIiIiIiIiIRgaLG4iIiIhoSHQ6HSZMmIDx48ejWFc86sczKowSXF1dodFo4OPjM/rH8ydw/fp1UdxQ+ahy1I+HiIiIiIiIiIiIRgaLG4iIiIhoyPb67sWsd2Zh16+7Rv1YRkPK3RTMemcWXJe6oquza9SP58/gXOg5HDhwAAcPHoTBYBj14yEiIiIiIiIiIqKRweIGIiIiIiIiIiIiIiIiIiIiGtNY3EBERERERERERERERERERERjGosbiIiIiIiIiIiIiIiIiIiIaExjcQMRERERERERERERERERERGNaSxuICIiIiIiIiIiIiIiIiIiojGNxQ1EREREREREREREREREREQ0prG4gYiIiIiIiIiIiIiIiIiIiMY0FjcQERERERERERERERERERHRmMbiBiIiIiIiIiIiIiIiIiIiIhrTWNxAREREREREREREREREREREYxqLG4iIiIiIiIiIiIiIiIiIiGhMY3EDERERERERERERERERERERjWksbiAiIiIiIiIiIiIiIiIiIqIxjcUNRERERERERERERERERERENKaxuIGIiIiIiIiIiIiIiIiIiIjGNBY3EBERERERERERERERERER0ZjG4gYiIiIiIiIiIiIiIiIiIiIa00akuCE6LpmI6KU32l/oRERERERERERERERERC8rztxAREREREREREREREREREREYxqLG4iIiIiIiIiIiIiIiIiIiGhMY3EDERERERERERERERERERERjWksbiAiIiIiIiIiIiIiIiIiIqIxjcUNRERERERERERERERERERENKaxuIGIiIiIiIiIiIiIiIiIiIjGNBY3EBERERERERERERERERER0ZjG4gYiopdUY1ML0h5m40ZcMqKJiIiIiIiIiIiIiIiIhsmNuGSk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S0uXLNWgQYP00UcfadWqVZo6daqGDx9uuyWFaXoKD6+//rqGDxuuE8dPVHtMv/zyiwYNGqTXX39dH374oT5f9bkWLlyol19+WW+//bYuJl/0ec7xY8c1dOhQTZkyRStXrNTEiRM1atQovyWJzZs369VXX9WsmbO0ePFijRgxQrNmzlJxUbFtXL9+/WSaphYtWqQJEyZoyeIl+nD2h3pl8CtatWqVT7Gj1FWqhQsXaviw4Vq4cKGWLlmq4cOHa968eZWuLEEIublCuQEAAAAAAAAAAACN4YYrN9Q1xUXFSkxMVPTpaGVmZtbrvjMzMhUVGaXdYbv168lfdSXrSrXPycnN0dkzZ5WTm1Pt2PS0dCXEJ8hd6vb7uLfc4E3ShSTbihGVxV3qVmJiohLiE2wrWBBCCOUGAAAAAAAAAAAANAbKDTdRri83EEJIXUO5AQAAAAAAAAAAAI2BcsNNFMoNhJD6DuUGAAAAAAAAAAAANAbKDTdRRo0a1eTHQAi5sUK5AQAAAAAAAAAAAI2BcgMhhJCAQ7kBAAAAAAAAAAAAjYFyAyGEkICzI+wAIYQQQgghhBBCCCGEEEIIIQ0ayg2EEELqFO9kAgAAAAAAAAAAADQkyg2EEEICDuUGAADw/9m78+CmysV94G/pwDgOlxlxBu6A8x2RybRwi8q9LL33J6J8AUfFr1xAHRDF63YRl+HSlrLvFARaEUFlEZAdvGUrW6FlLS1r033f0n1Pl6RtkpM8vz9CTnuapE1TKIjPZ+aZ0ZOTc94cSltynrwvERERERERERFRV2C5gWEYhnE7LDcQERERERERERERERFRV2C5gWEYhnE7LDcQERERERERERERERFRV2C5gWEYhnE7LDcQERERERERERERERFRV2C5gWEYhnE7LDcQERERERERERERERFRV2C5gWEYhnE7LDcQERERERERERERERFRV2C5gWEYhnE7LDcQERERERERERERERFRV2C5gWEYhnE7LDcQERERERERERERERFRV2C5gWEYhnE7LDcQERERERERERERERFRV2C5gWEYhnE7LDcQERERERERERERERFRV2C5gWEYhnE7LDcQERERERERERERERFRV2C5gWEYhnE7LDcQERERERERERERERFRV2C5gWEYhnE7LDcQERERERERERERERFRV2C5gWEYhnE7LDcQERER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ePvttyFJElatXAUhBOLi4hT73bp5C0IIebaDlkWBmJgYCCHwySefoE+fPjAZTR0qCuTm5kIIgUmTJmH1qtVyVANV6N+/P0xGk1xu2H9gv+K5thkpbEtMSJJr5YbOjlmSlOUGSZKw7tt1EEKgV69eLDcwDMNyAxEREREREREREREREXWJx6rcIEkSfvrpJwghMGvWLNy+dRuxd2MxadIkCCEQfT0akiShpqYGffv2xVNPPYXQ0FCkpabhyJEj6NmzJ5555hnU19VDkpRFAckk4ZlnnpFnLpAkqUNFgTVBayCEQF5enmL7tm3bIITApYuXnJYbjh8/BiEEbsTckLe5Um5wdcz/+H9/x86dOxU5fvwYJMm+3NCgb4BqoApCCJYbGIZhuYGIiIiIiIiIiIiIiIi6xGNXbpAkCQcOHkCvXr0ghIAQAr1798bJkycV+5SWlGLixInyPkIITJkyBeVl5fI+iqKA1DzjQ1JiEiTJ9XKDyWjCn//8Z7sygCRJKCstgxACH330kdNyg21Gie+//17e5lK5wcUxO4rPYB9Ikn25QZIkXL1yleUGhmEgSSw3EBERERERERERERERUdd4LMsNtuRr8qHR5EEyOd9Hr9MjPS1dLgMwDMMwroflBiIiIiIiIiIiIiIiIuoKj3W5gWEYhnmwORNxjWEYhmEYhmEYhmEYhmEYhmEYhmEeaFhuYBiGYToV2w8TIiIiIiIiIiIiIiIiogeJ5QaGYRjG7bDcQERERERERERERERERF2B5QaGYRjG7bDcQERERERERERERERERF2B5QaGYRjG7bDcQERERERERERERERERF2B5QaGYRjG7bDcQERERERERERERERERF2B5QaGYRjG7bDcQERERERERERERERERF2B5QaGYRjG7bDcQERERERERERERERERF2B5QaGYRjG7bDcQERERERERERERERERF3hsSs3lJVXIuZOPM5GRuFMxDWGYZjffc5GRiHmTjzKyisfepmB5QYiIiIiIiIiIiIiIiJ6GM5EPEblhrLySly4EoOS0gpIpod/049hGOa+xCShpLQCF67EPHIFB5YbiIiIiIiIiIiIiIiIqCs8VuWGmDvx1mLDI3DDj2EY5n6npLQCMXfiH/o4WoblBiIiIiIiIiIiIiIiIuoKj1W54WxkFGdsYBjm8Y3p3ve5hz2OFmG5gYiI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W5yXl6dRo0bJMAxL//79FRcX53S/r7/+Wq1bt5ZhGLpw4UK14wZJeu6552QYRpWXnL5x44YGDx5sPdef/vQnTZkyRfn59//YIiIiatiqe7P09u3b1qX3DcNQ69attXDhQn3zzTdO4wZJWr9hvX73u99Zxw4ePNjpb65XDAUqf6xEVVU1bjhx4oQMw9Ds2bOdbr/3YykOHjyoJ5980joHDw8PnT9/XsOHD7cuw1+XcYMk+e3w09NPP+30z0dvb2+Xj3KqqKZxw5///GcZhqHExIQq7ln+hn+rVq2cnutela9WcPz4cdlsNutrbdq00cqVK62vL1mypMbHmjVrlnVsYWGhxowZ4/T1V155xWmIUfFz8swzz9z3dbvfuUlSRkaG3n33Xafn7NatmwICnH9vKl63hIS7r9uuXTv17LPPWvd7/PHHtXDhQt37ERG1OY+KKz5s3rK5Tq+HVD4kGDlypNq0aWMd984771T781E5h8OhFStWqG3bti6/N9OnT6/26lv3GzdIUmlpqaZMmaInnnjC6XE7dOjg8voSERERPSoFBQWpS5culqCgoDrd/5EdN2zYsEE2m03fffed4uLilBCfoHnz5slms2nFihXWcWvWrJHNZtOihYsUGxOrq1eu6osvvpDNZlNAQIBM03ncUFpSqueff14zZsywHuPM6TPq0KGDbDabbqTdsG5///339fFHH8s0TV2/dl3t27fX+HHjFR4erlvZt3T40GF16NBBixcvlmmaunL5itavWy+bzSZfX19dvHCx2u9v9OjRev+9961f+27bJg8PD40bO04jR47Uxk0blZ6eXuvXoTbHxcfFW1eWmD1rts6fO28NN9asWaN27dopOyu72d+MBZpSSXGJ7IV2lRSXVDlgKC0pvfv1WjxeSxg3NEV37kgpOaXKLzYb9Xky88uqHAzUply7qcupRQpJKlRmvuvHVFTu9r+/H7O6S138u7TcMqcrLtSlB/leiIhaSqevn9GojZ/UOGwYs3WCzsa6Xpq4oTNNhxISEqr9HOqGrrS01Lp8NBERuWdFRUVKTEyQad7//+dkZGRU+6as/15/LV26tKFPzymHo/yfY5XfXL59+7ZSU1OrvPx/bcvKylJiYqLuffO8rv3tb3974Me4t6ysLKWkpDzQ91dRWVmZ4uPjnT6KpHLZ2dkaMmRIg55baWmp4uPjazUI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u/05x7iBiIiIiIiIiIiIiIiImiLGDS1Ybm6uevbsqTOnzzTbORQWFMrT01MRERHN/noALYG7/TnHuIGIiIiIiIiIiIiIiIiaIsYNLdyli5d0Nuhssz1/clKy9u7d2+yvA9BSuNufc4wbiIiIiIiIiIiIiIiIqCli3AAADxF3+3OOcQMRERERERERERERERE1RYwbAOAh4m5/zjFuICIiIiIiIiIiIiIioqaIcQMAPETc7c85xg1ERERERERERERERETUFDFuAICHiLv9Oce4gYiIiIiIiIiIiIiIiJoixg0A8BBxtz/nGDcQERERERERERERERFRU9Sixg0Hjp6S6Wj+N/sAoFE4/v3nXHOfRyWMG4iIiIiIiIiIiIiIiKgpalHjhqCLYbqRfrPZ3+wDgMZwI/2mgi6GNft5VLY/4CQAAAAAAAAAAADQJJri/a8mGTdkZGbpSGBQ+cCBKzgAaCkc5cOGI4FBysjMav7zqWR/AFduICIiIiIiIiIiIiIiosavRY0bTLN84BB0MUwHjp5q9tUIADSEA0dPKehimNsNGxg3EBERERERERERERERUVO1P6CFjRsAAE2HcQMRERERERERERERERE1RYwbAAD1xriBiIiIiIiIiIiIiIiImiLGDQCAemPcQERERERERERERERERE0R4wYAQL0xbiAiIiIiIiIiIiIiIqKmiHEDAKDeGDcQERERERERERERERFRU8S4AQBQb4wbiIiIiIiIiIiIiIiIqCli3AAAqDfGDURERERERERERERERNQUMW4AANQb4wYiIiIiIiIiIiIiIiJqihg3AADqjXEDERERERERERERERERNUWMGwAA9ca4gYiIiIiIiIiIiIiIiJoixg0AgHpj3EBERERERERERERERERNEeMGAEC9MW4gIiIiIiIiIiIiIiKipohxAwCg3hg3EBERERERERERERERUVPEuAEAUG+MG4iIiIiIiIiIiIiIiKgpYtwAAKg3xg1ERERERERERERERETUFDFuAADUG+MGIiIiIiIiIiIiIiJqaSUlJTX3KTz0NcZryLgBAFBvjBuIiIiIiIiIiIiIqKELDAzU2LFj9eqrr2ro0KGaMWOGyxuleXl5WrBggaKjo5rpLCWHw6EFCxYoJCSkyZ87ISFB/nv9deDAAaWkpNTqPhs3bdTatWsb98RaQMHBwdq1a6eOHTumsrKyOt33+vXr+vnnn134+m7T+fPndfv27UY664br1KlTio6OfqDHeJDXsKYYNwAA6o1xAxERERERERERERE1VLdv39b7778vwzDUq1cvjRo1Ss8//7wMw5BhGDpw4IB1bHJysgzD0K5dO5vtfIuKimQYhlatWtVkz3n79m199tln1mtSYdq0afe97wsvvKAuXbo43TZ+/HjNmjWrsU73oaviTfldu3YqODi4zvf33+svm80mT09Pvfjii3rxxRfl6ekpm80mm82mESNGqKCgoBHOvGHKyc1R165dtfYBRzBJSUnW69iQAwfGDQCAemPcQEREREREREREREQNle92XxmGIR8fH6fbU1NT9fjjj6t169bWG8PuMG4wTVP79+9XQkJCkz3nps2bZBiGNm3eJNN0KD09XV5eXi7jj6qqatzQu3dvjRw5sjFP+aHpQYcN0t1xw7lz55xuj42N1axZs2Sz2bRgwYKGON0GyzQdSk1NVUDAEb322muy2Wxa2wBX+GiMgQPjBgBAvTFuICIiIiIiIiIiIqKGquJN+pKSEpevLVq0SIZh6OTJ8n8vfe+4ITY2VmFhYSosLKz28fPy8hQWFqac3Byn22/fvi273S6Hw+F0e0lJiex2u9Ntd+7ccTq28n82TYfT8YmJCYqOjq7xTd3k5GTFx8c7nUdNH13Qv39/DR482Om29PR0GYahqVOnVns/yXncUHGuPXv21LBhw2S3213O0zRNRUdHKSMjw+WxSktLVVxcbD3W1atXdevWLadjUlNTFRER4fIaVpSQkKCLFy826Tikuhpi2CBVP26Qyn9WunXrpiFDhjjd7nA4FB8fr7CwsBo/YsQ0TcXGxlqvs2k6VFRUVO1xWVlZtTrniIgI68oSFdY20MeXNPTAgXEDAKDeGDcQERERERERERERUUP15ZdfyjAMHT9+3OVrJSUliomJUV5enqS744YlS5aoV69eTh/RcO+VH1JSUvTKK684HdOnTx/rTfWCggIZhiFvb2+n+/31f/4iwzCUnp5u3RYcHCzDMHTs2DGXj6WouPJEZGSkbDab9VxPPfWUy5vdhw8f1h//+EfrmI4dO2rXrp0yDEPR0dHVvkZff/21/Pf6O92Wk5MjwzC0bNmyGl/fyuOGPf57XD7aYtGiRdax69atU+vWra2vde7cWWFhYdbXP/nkE7300kv69ddf1KpVK+u4qVOn6saNG/L09LRue+yxx3To0CHrvjExMerRo4fTc3fr1k2xsbE1nn9jVFZWplOnTjXIsEGqedwgSQMGDFD//v2tX+/fv1+9e/d2Gha8+eabLsOElStXqnv37tYxY8aM0cqVK9WzZ0+n4/x2+Dkd9+qrryoyMrLGc3Y4HMrMzLQ05LhBatiBA+MGAEC9MW4gIiIiIiIiIiIioobqypUratOmjQzD0AcffKAdO3coKSmpymMrxg2tWrXSzJkzFR8fr+DgYA0YMMBpkFBYWKg//OEPeuaZZ3Tw4EGlp6crICBA7dq10xNPPGFdxWHo0KFq37699fiFhYXWG+9+fn7W7fPnz1ebNm1UWlpa7bihU6dO8t3uq7S0NB06dEh//OMf1bVrV+sxTp8+LcMw9M477+jy5ctKSEjQt99+az1fTeOGyuXk5ig0NFQDBw5Uhw4dqrzCQuUqjxuysrJ0+vRpeXh4qH///jp9+rSSk5MlST4+PjIMQytXrlRaWpoiIiL0+uuv67HHHlNiYvkg5JNPPlHr1q3l6empc+fOKT09XZMnT5ZhGGrbtq2+/vprRUVFKTw8XB06dNAzzzxjnceLL76oTp06KTQ0VDk5OQoKOqNnn31Wffr0qdX33VCVlZXp2LFj1hvv1f2s1aWaxg2hoaHWMEEqv9pI+/btNWHCBF25ckU5uTkKCDiijh076l//+pd1v9WrV6tdu3ZavXq1UlJSFB0dJS8vL3Xu3Nlp3PDrr7+oY8eO2rJ1izIyMhQdHaWPP/5YPXr0qPGKEJW7c+dOg48bpIYbODBuAADUG+MGfBgKfQAAIABJREFUIiIiIiIiIiIiImrIoqOj9eGHHzpdDcBms2natGlOV1CoGDe8/fbbTvc/deqUDMNQQECAJGnBggUyDEMhISFOx0VFRckwDH377beSJF/fbTIMw7qaw/Hjx9WmTRu9++671pvRkvTSSy/pgw8+kKRqxw1r1qxxeq7Zs2fLMAzr4xlee+01dejQQaZpOh03dOjQOo0bHn/8ces1qvh+a6ryuKGi3r17a+TIkdav7Xa7Hn/8cX3zzTdOx9ntdj399NP66quvJJWPGwzDsAYRknTz5k3rqhiVq/g9qPj+n3jiCb3xxhtOxxw7dkxTp06t8SM5GrLGGDZId8cNU6dO1cqVK7Vy5UotWbJEI0eOVIcOHdS+fXtdvnxZkvTbb7/p//75T6efa0kaNGiQxo0bJ6n8de/Ro4emT5/udExpaal69epljRuKior0/PPPa8mSJU7HFRUV6W9/+5sWLlxYq/NvrHGD1DADB8YNAIB6Y9xARERERERERERERI2Rw+HQpUuXtHz5cr366qsyDENt2rSxLrFfMW5Yt26d0/1SUlJkGIZ27NwhSfrHP/4hDw+PKp+jV69e1kcEVHy0Q8VHWnz//fcaOnSoNm3eJJvNJknKz8+XYRjau2+vpOrHDdevX3d6nu2/bLeuJmGapgzDsEYClduydUudxg1JSUm6fPmypk+fLsMwtHjx4hqPr824ITQ01Dq/rdu2Ovnzn/+szp07SyofN1S+0oVU/oa7YRj68ccfnW5fs2aNDMNQQUGBJGnKlCkyDEN9+/bVihUrFBoaKtN0Hno0Zo01bJDujht69eqlvn37WgYPHixvb+8qPyLi9u3bSkxM1PHjx/XDDz+oXbt21qCm4moPJ0+6vh/z5ZdfWuOGio9CWbhwofb473EybNgwvfrqq7U6/8YcN0gPPnBg3AAAqDfGDURERERERERERETUEN2+fVvp6enWG+D3VnFFhqFDh0q6O27YtWun03H3jhu6d++ugQMHVvmYw4cPt4YLkjRw4EANGzZMUvkVGlasWKGEhAQZhqGkpCQdPHjQ6QoE1Y0b7v2b+JXHDdnZ2VUOACRp3/59dRo3VO69997T73//e925c6faY2ozbqg4h8cee0xt27Z10aFDB0nl44ZOnTo5PVbFuGHZsmVOt987brhz5458fbdp8ODB1pUnnnzySWtY0pg15rBBqvljKe6tpKREc+fOVY8ePfTcc89pxIgRmjlzpl555RVr3BAQECCbzabw8HCX+8+dO9caNxw7dkw2m009evRQz549XQwYMKBW59/Y4wbJdeBQ8d+n2sS4AQBQb4wbiIiIiIiIiIiIiKghMk1TrVq10vjx46s9pnfv3vrTn/4kqfbjhiFDhri8CV/RCy+8oJdfftn69dq1a9W6dWvl5eXJMAzr4wP+4z/+Q1u3bZW3t7eGDx9uHV+fccPt27dlGIa8vb1dzmfp0qU1jhuSkpLUvXt37fHf4/K15cuXyzAM3bhxo8r7Vny/9xs3REREyDAMnThxotrHkR5s3FC5srIynTp1Sv369ZNhGDp79myNz/ugBQcHW2+sBwcHN/jj12XcMH/+fHl4eOjkyZNOH8fx1ltvWeOGiIgI2Ww2BQQccbn/J598Yo0boqOjZLPZdP78+Qc6/6YYN0jOvw+HDh2q9f0YNwAA6o1xAxERERERERERERE1VAMGDNBTTz3lMg6QpOLiYj3++OPWlRVqO25YvHixDMNwedO34k38WbNmWbelp6fLMAzNnj1bjz/+uPWG8+jRo/XRRx+pffv22v7Lduv4+owbJGnQoEF66qmnnP7Gemlpqbp161bjuKFiPDBo0CCXr40cOVJt2rR54Cs3FBcXq23btpo0aZLTcQ6HQ6+88ormzJkjqf7jhuzsbHl4eMh/r7/TMeHh4TIMQxs2bqj2/Bsid7pywxtvvKG3337b6Ta73S5PT09r3GC32/X8889bv64oLS1NHTt2tMYNJSUl6tmzp2bPnu10nGk69N5772nFihW1On+u3FCOcQMAtECMG4iIiIiIiIiIiIiooaoYHLRr104bN21UVFSUEhMTdeTIEb300ksyDEMnT5b/e+najhvsdrueffZZPfXUU/Lb4ae4uDjt2bNbTz/9tJ566inl5+c73b9v375q1aqVRowYYd22/ZftatWqlQzDUE5ujnV7fccNISEhMgxD/fr10959e7V//34NHDhQXbp0ue/HUsyYMUOGYeiDDz7Q6dOnFRERIW9vbxmGoQULFtT4+lY1bhg4cKA6dOigvfv2Ki4uTpK0evVqGYahr7/+WhEREbpw4YK8vLzUunVrZWZmSnqwKzd4enrqmWee0cGDB5WcnKyrV69q1KhRMgxD165dq/F7aIgac+BQl3HDhAkT1K1bNwUGBio1NVVBQUF666235OHhoSFDhujWrVuSpM1bNstms2n69OkKCgrSHv896t+/vwYOHGiNGyTJ13eb2rVrp8WLFys6OkphYWGaPn26unfvruzs7Fqdf2OPG+4dNpSVldXp/owbAAD1xriBiIiIiIiIiIiIiBqy4OBgvfbaazIMw0mfPn106tQp67jajhskKTMzU8OGDXN6vNdff11paWkuz79s2TIZhqHVq1dbt6WmpsowDL322mtOx9Z33CBJly5dUp8+fWQYhh577DF9/PHHCgg4IsMwanyzvbS0VLNmzbLGFoZhqG3btvrpp59qvGqDVPW4wX+vv37/+9/LMAwtWrTIun39hvX63e9+Zz3H4MGDnT4+4EHGDcnJyS6/x+3bt3e5mkNj1lgDh7qMG5KTkzVo0CDZbDbZbDZ5enpq166dTmOGinbt2qnXXntN7dq1U9++fbV+w3r99NNP6tu3r9Nj7ti5Q7169ZLNZlPHjh310Ucf3fcjRirXmOOGBx02SIwbAAAPgHEDERERERERERERETVGObk5Cg8P16VLl5SRkdEgj+lwOJSQkKDS0tIGebyGqKyszPr4i59//lmGYcjhcNz3frdv31ZycrLS09PvO2p4kDIyMqxRQkOXl5en69evN/r3UF33DhxiY2Ob/Bzu3LmjjIwMl5/xzMzMKn8OKv/sfvrpp3rvvfeqfNysrKw6fdxDY9cQwwaJcQMA4AEwbiAiIiIiIiIiIiIiqlvjxo3T008/7TQayMnJUadOnTRo0KBmPLNHr7KyMp08edJ64z04OLi5T8mlAQMGaMKECU4DkKioKHXs2FE+Pj7NeGa1q6GGDRLjBgDAA2DcQERERERERERERERUt65du6annnpKzzzzjD777DONGTNGTz/9tH7/+98rKiqquU/vkSw4ONhtBw5HjhxRhw4d9MYbb+iHH37QxIkT1bVrVw0fPlzFxcXNfXo11pDDBolxAwDgATBuICIiIiIiIiIiIiKqezk5OVqzZo0mTJigKVOmyMfHR7m5uc19Wo907jxwSExM1OrVqzVjxgwtXrxYBw8elGmazX1aNdbQwwaJcQMA4AEwbiAiIiIiIiIiIiIiopaSOw8cHqYaY9ggMW4AADwAxg1ERERERERERERERNSSqhg4NOSb8o9aFa/hyZMnG/Q1ZNwAAKg3xg1ERERERERERERERNTSSkpKau5TeOhrjNeQcQMAoN4YNxAREREREREREREREVFTxLgBAFBvjBuIiIiIiIiIiIiIiIioKWLcAACoN8YNRERERERERERERERE1BQxbgAA1BvjBiIiIiIiIiIiIiIiImqKGDcAAOqNcQMRERERERERERERERE1RYwbAAD1xriBiIiIiIiIiIiIiIiImiLGDQCAemPcQERERERERERERERERE0R4wYAQL0xbiAiIiIiIiIiIiIiIqKmiHEDAKDeGDcQERERERERERERERFRU8S4AQBQb4wbiIiIiIiIiIiIiIiIqCli3AAAqLcDASd1586d5v5nGREREREREREREREREbXg7ty5owOM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gInxiYj7q54/f46cnBxkZ2fDaDTi5q2bcDgcEfv37Okz0XZ+fj7MZjOysrLw6NEjWCwW5ObmYnhoWLSVl5eH9vZ2Ub2iu7sbDx88QGNTo2inuLgYY6MHlSwePniAjnYlINLf34/r16+L77weLxobG5GVlQWj0YicnBw8ffpUXE+Hw4Gbt24iMzNTnEt9Q33EpTKIiIiIiIiIiIiIiIiIiIii+SCVG96Fw+HQLE8RkxyAy+USk+myX4bdbheVBQKy0l5ADmDx9aKy7f7ngYBSWaChoeH4+h/SH5XH7RH9OEo7Pq8P9m07XE7Xodu6nC7sOHY0f3vcHvT394uKC16PV1lKI+T4Dx88EBU1nHvOmGGSWPw+P+x2e9T75nK6jnQuREREREREREREREREREREkZy4cMP7cvnyZbS0tIhJ/N7eXly8eFGZ9D8B/TtutbU1ePLkScxt8vPzMTsz+9H7SkREREREREREREREREREFMvfTbhhzbqGsmtlyMzMRHZ2Nm7euomV5ZWP3q/3pbz8OqYmp6J+73A4cOHCBU3VByIiIiIiIiIiIiIiIiIiopPo7ybcoHK73Edf9oKIiIiIiIiIiIiIiIiIiIg+ur+7cAMRERERERERERERERERERH9tDDcQERERERERERERERERERERCcaww1ERERERERERERERERERER0ojHcQERERERERERERERERERERCcaww1ERERERERERERERERERER0ojHcQERERERERERERERERERERCcaww1ERERERERERERERERERER0ojHcQERERERERERERERERERERCcaww1ERERERERERERERERERER0ojHcQERERERERERERERERERERCcaww1ERERERERERERERERERER0ojHcQERERERERERERERERERERCcaww1ERERERERERERERERERER0ojHcQERERERERERERERERERERCcaww1ERERERERERERERERERER0ojHcQERERERERERERERERERERCcaww1ERERERERERERERERERER0ov2v5ifPQURERERERERERERERERERHRS/S9ZlkFERERERERERERERERERER0UjHcQERERERERERERERERERERCcaww1ERERERERERERERERERER0ojHcQERERERERERERERERERERCcaww1ERERERERERERERERERER0ojHcQERERERERERERERERERERCcaww1ERERERERERERERERERER0ojHcQERERERERERERERERERERCcaww1ERERERERERERERERERER0ojHcQERERERERERERERERERERCcaww1ERERERERERERERERERER0ojHcQERERERERERERERERERERCcaww3HaHPHi8aRbWw4PB+9L8dlZcuNvvmdY2lrx+VF3dAW3F7/Rz+v98Xvl+Hy+I61zR2XFx2Tdjjd4e2etGv6esOJevMWfP6P3xciIiIiIiIiIiIi+vD8fj88no87TzI3N4fl5eUjbWuxWLCysvJR++tyuWJ+f9j1/LH7x+Lz+eDzHe+8RyTT09PY2tr6qPfBYrFgdXVV85ndYcfc3NyPbntoaAh2h/29n4PNZsPg4CD8fr+492NjY7BardjY2MDY2BhkWcbm5iZmZmYgy+/2vJwEwX0P/vdhXC4XBgYGjvQ8vEu7f482NzcxOzv7UY59IsINPzNM4IuzYxH97aHlo/fvKFpGtxCXOIxPU0fxYsGh+c7m8OCLs2MYeO0I2y+9fgV/urHw0fsfTVH7Oj47NRL2+dsdr+Y+ffntGP69bB5Pp6L/MN/p30Bc4jC6Zt7/j/eHZrbs4t/L5vFJygjiEofxM8ME6oaO5z/CE9Y9xCUO4/WG89iuaWbzqub+/UPOFM42rGDH9cP/B8qZuhXEJQ7ji7NjJyZsQUREREREREREREQfxtLSEoqLi6HX6yFJEk6fPo2BgYGP0peEhARkZmYeadvCwkJcuXIl6veLi4tYX18/tJ3JyUnU1dWiuLgY9x/cx8DAwKGhgJaWFiQkJECSJCQlJYVdr/b2dqSkpECSJJhMJrx+/fpY94/FbDYjPz8fOp1O7N/f3//e7plOp0NXV9dHGS+q/Px8XLt2TfNZbW0NCgoKflS7b9++hSRJqK2tgSwrAYT5+flj7//Dhw8gSRKSk5Ph8Xhgt9uh0+mg0+nw5MkTlJWVQZIkeDwePHnyBPHx8ZDloz8vOzs7GB8f/yBhF1mW0d3djeTkZFgs2rni4L4H//swPT09kCQJU1NTh257WLvv6x7+VLS2tiIhIeGjHPtEhBsq+zZwvfsNrne/wScpI/jNxWnx97Ppn8ZE+L9dm8dvCyIneKzbbsQlDkc8l/9z8zV+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" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" width="1072" /></font></p><h2 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px; text-align: left;"><font size="4">監査</font></h2><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><font size="2">監査はとても重要です。秘密情報がどのように、どこで、誰によって、いつ使われたかを正確に把握しておく必要があるでしょう。OCIの中では、Oracle側のバックエンドサービスも含めて、すべてがAPIコールです。ということは、OCIの中での動きは、valutに関わるものも含め、すべてがOCI Auditサービスによって監視、ログ記録されており、レポート出力が可能だということです。OCI AuditはEventsサービスやFunctionsサービスと連携しており、イベントのトリガーとしてAuditを使いなんらかのカスタムアクションを起動させることも可能です。</font></p><h1 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;"><font size="4">コンプライアンス</font></h1><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><span style="font-size: small;">もうひとつ考慮しなければならないのはコンプライアンスです。秘密情報の削除やバージョン管理、また、ポリシードリブンの秘密情報利用といった要請が生じます。あるユーザーが秘密情報をローテーションさせた場合、その秘密情報にはバージョンが振られ、古いものに加えて新しいものが保持されます。そして、秘密情報のバージョンについてのルールを作成することができます。特定の日付にあるバージョンを失効させたり、前バージョンの利用を制限するようなポリシーを作成することができます。</span></p><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><font size="2">以下の画像は、秘密情報を作成する際にルールを指定している例です。</font></p><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><font size="2"><img alt="Screenshot that shows the Create Secret dialog box with the Rules tab highlighted." height="714" src="data:image/png;base64,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GV1ubjiNGYeczQ1Kumts0Dc4TFfSqKlBUOamuaHMSnODxQaHg+ecDQ2uNG5r8NTg0I3mBsFnhlmtpHdq8JlBg0NXmhuUxoYD0tfq1DQ4uDFZlVKDg9vWhlIxL2FS6UU3TQ3daG7YL6amwcGCiUpzw2XztgalsUHT3OBsadA2NuibGzw3OEgNDer8REmpwcGnzQ17G4T01NQgpZbY4KBrcihWZ3SxvsHBm+aG8Uq6GhtUigyy6JqQVpob3DQ4FKrzY1VKzQ1WWhvMGhx0zQ0FYnODMxU3hBSbGtTpYtDckO8uvW1u0Dc4RMqNDflGjQ3OVLQK2cXmhj3u80Nnc4MrvaFvcDBsblB4bm4Y46mxQWhqMEuzxgbz5gbzBofRRo0NCm+bGx4IzQ3ONGpq0DU3uBocRnrV4GCxuSHnF2djg8x6g8MIVdowYke7m8YGLd83N0hNDeqUWhh+ddPUYN7gMHy7nAaNDRaaG4yaGrRUDQ4mjQ3q5gZ1g4M3zQ3DMuUUGhtM2Q3SeoPDfwQF9wMRERERERERERERERERERFRoOJwAxEREREREREREREREREREQU0DjcQERERERERERERERERERFRQONwAxEREREREREREREREREREQU0DjcQERERERERERERERERERFRQONwAxEREREREREREREREREREQU0DjcQERERERERERERERERERFRQONwAxEREREREREREREREREREQU0DjcQERERERERERERERERERFRQONwAxEREREREREREREREREREQU0DjcQERERERERERERERERERFRQONwAxEREREREREREREREREREQU0DjcQERERERERERERERERERFRQONwAxEREREREREREREREREREQU0DjcQERERERERERERERERERFRQONwAxEREREREREREREREREREQU0DjcQERERERERERERERERERFRQONwAxEREREREREREREREREREQU0DjcQERERERERERERERERERFRQONwAxEREREREREREREREREREQU0DjcQERERERERERERERER/Zt68bW38GH0FEWk1gStqTp/ffVNv98PIvrXx+EGIiIiIiIiIiIiIiIy9OZ7HyAmNg6JG9OQs7sAObsLEBMbh9EfTcTz/f7P7/tHRF2XnJqBpuYb8NXWdP0GklMz/H6/3Jky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ONxARERERERERERERERE9G/qr6++adLKMEUtWu1DwYuvveX3++GJ2HrgcDhQW9cQkK0G9K/hk89mIWdXPmp+uIQHD3+GwwE4HA48ePgzan64hJxd+fjks1l+38+nDYcbiIiIiIiIiIiIiIiIiIiIKKBxuIGIiIiIiIiIiIiIiIiIiIgCGocbiIiIiIiIiIiIiIiIiIiIKKBxuIGIiIiIiIiIiIiIiIiIiIgCGocbiIiIiIiIiIiIiIiIiIiIKKBxuIGIiIiIiIiIiIiIiIiIiIgCGocbiIiIiIiIiIiIiIiIiIiIKKBxuIGIiIiIiIiIiIiIiIiIiIgCGocbiIiIiIiIiIiIiIiIiIiIKKBxuIGIiIiIiIiIiIiIiIiIiIgCGocbiIiIiIiIiIiIiIiIiIiIKKBxuIGIiIiIiIiIiIiIiIiIiIgCGocbiIiIiIiIiIiIiIiIiIiIKKBxuIGIiIiIiIiIiIiIiIiIiIgCGocbiIiIiIiIiIiIiIiIiIiIKKBxuIGIiIiIiIiIiIiIiIiIiIgCGocbiIiIiIiIiIiIiIiIiIiIKKBxuIGIiIiIiIiIiIiIiIiIiIgCGocbiIiIiIiIiIiIiIiIiIiIKKBxuIGIiIiIiIiIiIiIiIiIiIgC2n8UFxeDiIiIiIj0CgsLYbfbiYiIiIiIiIiIiMjPONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgYHDDUREREREJjjcQERERERERERERBQYONxARERERGSCww1EREREREREREREgaFXhxvyC4owZ80OvDtzC16dmIp3ZqRj4pdZ2LWnyO9/uDZSUFiM6GVZWLdlt9/3JWd3IaKXZWFZUq7peVKz8hC9LAvJW/f47HbTsvMRvSwL23ML/f4YbNmyBUuWLMHWrVtNz5OclIwlS5Zgz27fPQbbs7ZjyZIlyM01f+zNfPnll1iyZIli2bJlWLduHTIyMlBc1PuPYcqmFCxfttz0v4mIiEjtaR1u+PHSjygukn5/WhO/BllZWTh29Bjq6+rx26+/+X3/yFxrSytOnTqFgvwCrF+/HikpKdi3dx/OfX8ObXfb/L5/RERERERERERE/tJrww05uwvxwkcbETQ0EX+bvBlhM9Pxp9FJCBqSiGdGbMCW7Hy///Faa09+EYKGJOKzuGzltKHztuCj2Mxe35eiomL8aXQS/hy50fQ8w+dnIGhIIjJyfPdYfrkxF0FDElUDE/56DLKyshAWFoaZM2eanmfM6DEYMWKET283OSkZYWFh0kBCcTHy8/Mxfvx4JCYmerzs8OHD8d5772HYsGEYNmwYhg4dirCwMISFhSEyMhJpm9O6tE+zZs5CTEyM15dbMH8BwsPDTf+biIiI1J6m4YZHnY+QmpqK0NBQPPPMM6ZCQkKQuS0Ttnab3/eZXC5cuICZM2fiT3/6k+lzFxwcjKWxS9Hc3Oz3/SUiIiIiIiIiIuptvTbc8M85W/CH99djQ4b6E/XLk6WD569OSvX7H6+1ioqKsWRDDtKEwYu+0Zvw9vSuHZDurjGLtukGDcR9/eOoJPzvpyk+vU2j4QZ/PgZRUVEYOnQoior0bR+Z2zIRFhaGRTGLfHqb2uGGvLw8hIWF4csvv/R4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bjtSU1MtnsMeT09PvPnGmwM+Hp20Wq0UKrFl7NixqK+rt1pHT8MNpkcmaI5rMGbMGLv39fDwwMnXTirWpfReKa34QURERERERERErofhBiIiIiIiBY9LuMFkMuHmjZvYvWs3Jk+ebHMS+Nlnn8Vrr75mt77ehBtMJhPuG++jtKQUiwMWW52wX7hwIV5+6WWrKwR0evutt61Oynt4eCAwMBDHqo/BeM8Ik8mE4uJi2X3Ky8st6rt69Sp2pezCnDlzZCtDWAs3mEwm/HLzFyQnJ2POnDmKwRClFQJ666cff0JmZibGjh1rc/zmz1uA48eO49bvtwZtPDpduXwFMetjMG3aNIt6Ro8ejYSEBIvVMMz1ONzwt4tfXcS6deswY8YMq+9EamoqfvzhR7v16Jv0WLZsGWbMmCFtecFwAxERERERERHR44PhBiIiIiIiBY9TuKHTfeP9jiX7W1qgPqpG2eEyvPSvl3Dhiwu4fev2oLalvb0dF7+6iNf//TrOfX4ON27cgOmR49f/+MOP+OTjT/D6v1/HN19/g3vt96yW++3X3/D2W2/j6tWrParfEbdv3cbZT8/i1KlT+Pri17h9e2D78O7du/ju0nd45+13cOLECZSUlEDboMXpd07j0qVv8ejhI6eNh7m262147933cPqd02htbcV94/1Beaeu/3wd7777Lk6/cxqX/3MZ7Xcfnz0hiYiIiIiIiIiobxhuICIiIiJS8DiGG4iIiIiIiIiIiIj+iRhuICIiIiJSwHADERERERERERERkWtguIGIiIiISAHDDURERERERERERESugeEGIiIiIiIFDDcQERERERERERERuQaGG4iIiIiIFDDcQEREREREREREROQaGG4gIiIiIlLAcAMRERERERERERGRa2C4gYiIiIhIAcMNRERERERERERERK6B4QYiIiIiIgUMNxARERERERERERG5BoYbiIiIiIgUMNxARERERERERERE5BoYbiAiIiIiUsBwAxEREREREREREZFrYLiBiIiIiEgBww1EREREREREREREroHhBiIiIiIiBQw3EBEREREREREREbkGhhuIiIiIiBQw3EBERERERERERETkGhhuICIiIiJSwHADERERERERERERkWtguIGIiIiISAHDDURERERERERERESugeEGIiIiIiIFDDcQERERERERERERuQaGG4iIiIiIFDDcQEREREREREREROQaGG4gIiIiIlLAcAMRERERERERERGRa2C4gYiIiIhIAcMNRERERERERERERK6B4QYiIiIiIgUMNxARERERERERERG5BoYbiIiIiIgUMNxARERERERERERE5BoYbiAiIiIiUsBwAxEREREREREREZFrYLiBiIiIiEgBww1EREREREREREREroHhBiIiIiIiBQw3EBEREREREREREbkGhhuIiIiIiBQw3EBERERERERERETkGhhuICIiIiJSwHADERERERERERERkWtguIGIiIiISAHDDURERERERERERESugeEGIiIiIiIFDDcQERERERERERERuQaGG4iIiIiIFDDcQEREREREREREROQaGG4gIiKix1qjthFFhUXYk7oHGzduRHR0NJKTk5GXl4fqqmqnt48ebww3EBEREREREREREbkGhhuIiP7B8g/mY8iQIQ4ZOnQoJk2ahOcWPYfVq1ejtLTU6e3vTzNnzpSe9ajqqNPbMxBmzJghPeP/wqS+5rgGkWsjMXLkSLi5uSlatGgRioqKnN5eejwx3EBERERERERERETkGhhuICL6BzuYd9DmpK8tQ4YMQXh4OBrqG5z+HP3Bx8dHerbHLdywdetWxMTEICYmBtoGrWK56dOnS8/4Tw83pKSkYOjQoT16p4OCgmBoMTi97Y+L7Oxs6b2rKK9wenucpaWlBdevXyciIiIiIiIiIiIiJ2O4gYjoH6x7uMHb2xszfWZa8Pb2hoeHh9UJ4fnz5zv9OfrD4xxumDJlitR2zXGNYrn/lXBDdna2LNjg7u6OF198EWlpacjPz0deXh52Ju9EWFgYhg0bJnufo6Ojnd7+x0X4ynCp39L2pDm9Pc7S0tICo9FIRERERERERERERE7GcAMR0T9Y93BDo7bRZvkmXRMy0jNkk+lubm7Yk7rH6c/SV/8L4YZ169Zh2bJlWLZsGU7UnnB6uwdCdVU1hg8fLttyQqfTKZavramFv7+/7H3O3pft9Od4HDDc0IHhBiIiIiIiIiIiIiLXwHADEdE/WE/DDZ0atY2YOHGidN2ECROc/ix99b8QbvhfkJycLPXFxIkT0aRrsnuNTqeTjb+/v7/Tn+NxwHBDB4YbiIiIiIiIiIiIiFwDww1ERP9gvQ03iKKIzMzMXl/rihhu+GcICQmR+mLFihUO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3LlziSSWG4iIiIiIiIiIiIjsQ5MtNyiKgslxRs0nWYmoYU2OM2r+22MP5s5luYGIyBZYbiAiIiIiIiIiIiKyD0263JCeu1bziVYialjpuWs1/+2xByw3EBHZBssNRERERERERERERPahSZcbFEXBvMTRmk+2ElHDmJc4WvPfHHvBcgMRkW2w3EBERERERERERERkH5p8uSG/KBdBi9poPulKRA9W0KI2yC/K1fw3x16w3EBEZBssNxARERERERERERHZhyZfblAUBTFpMzSfeCWiBysmbYbmvzX2hOUGIiLbYLmBiIiIiIiIiIiIyD40i3KDoigIi/HTfPKViB6MsBg/zX9j7A3LDUREtsFyAxEREREREREREZF9aDblhqTsGM0nYInowUjKjtH8N8besNxARGQbLDcQERERERERERER2YdmU25QFAXT4wdrPglLRLY1PX6w5r8t9ojlBiIi22C5gYiIiIiIiIiIiMg+NKtyQ3Z+muYTsURkW9n5aZr/ttgjlhuIiGyD5QYiIiIiIiIiIiIi+9Csyg2KomBRcrjmk7FEZBuLksM1/02xVyw3EBHZBssNRERERERERERERPah2ZUbSk3FGL3ETfNJWSK6P6OXuKHUVKz5b4q9YrmBiMg2WG4gIiIiIiIiIiIisg/NrtygKApWpc/XfGKWiO7PqvT5mv+W2DOWG4iIbIPlBiIiIiIiIiIiIiL70CzLDYqiYGLs3zSfnCWiezMx9m+a/4bYO5YbiIhsg+UGIiIiIiIiIiIiIvvQbMsNaTkJmk/QEtG9SctJ0Pw3xN6x3EBEZBssNxARERERERERERHZh2ZbblAUBXPWBGs+SUtEd2fOmmDNfzsaA5YbiIhsg+UGIiIiIiIiIiIiIvvQrMsNWwpzMGzh/2k+WUtE9TNs4f9hS2GO5r8djQHLDUREtsFyAxEREREREREREZF9aNblBkVREJ06VfMJWyKqn+jUqZr/ZjQWLDcQEdkGyw1ERERERERERERE9qHZlxsURcHYZc9rPmlLRLc3dtnzmv9WNCYsNxAR2QbLDURERERERERERET2geUGRUFi1lLNJ26J6PYSs5Zq/lvRmLDcQERkGyw3EBEREREREREREdkHlhv+a1r8QM0nb4modtPiB2r+G9HYsNxARGQbLDcQERERERERERER2QeWG/5rY16K5hO4RFS7jXkpmv9GNDYsNxAR2QbLDURERERERERERET2geWGGqKSwjSfxCUitaikMM1/GxojlhuIiGzDHssNu3fvVu3jhx9+iDNnzqjGnD17ts5j+s9//iPHlZWVITk5GXFxcSgpKcGPP/5o9X4nT55ESUkJ4uLikJ2djRMnTqgev/X133nnHZw7d85qn9955506n/PBBx+gvLwcZrMZP/zww20/k8OHD+PAgQNQFAUVFT/I17xy5Qp2796N1NRUrF+/Hv/85z9x9epV+fgvv/wCRVGwc+dO1b5duXIFiqJg//79mn+2REREREREREREVDeWG2ooLilE8GJnzSdziahK8GJnFJcUav7b0Bix3EBEZBv2WG4YM2YMhBBwdXWFwWCAEAJCCCxcuBA///wzzGYzPv30U7n9VqmpqTCbzUhMTIQQAv369YPRaIQQAv7+/rJkYDabsXXrVri7u6N9+/YYNmwYOnXqBBcXFxQXF8sxQgg4OTnB1dVV7pOTkxNCQ0Nx5coVuc/+/v51PsfR0RGOjo5ITU3F0aNH69x3IQQ2bdqEpKQkCCFw7NgxmM1mnDt3DmPHjoUQAn379kXv3r0hhMD48eNx4cIFmM1mXLx4Ub5vWVmZ3JeffvoJQgisXr1a88+WiIiIiIiIiIiI6sZywy1Wps/VfEKXiKqsTOcE/b1iuYGIyDbstdxgKQpcuXIF3377LeLi4iCEQEJCAszm6nJDXl4eKip+UPnll19w6dIlODk5YcGCBfJ1d+7cCSEEFi1aBLPZjIMHD8LJyQmRkZH46aefYDabUVHxA0JCQmAwGOQKDkIIzJkzR77O1atXsWXLFggh5CoJtZUbaj7nxx9/RGRkJJycnPDtt9/Kff3iiy9kIcOy7fLly1blhunTp8PDwwOffPKxfM1du3ahffv28n0s5QYhBAYPHiyLFyw3EBERERERERERNQ4sN9QiIran5pO6RM1dRGxPzX8LGjOWG4iIbMPeyw01vfbaa/Dw8MDPP/8syw0lJSW1vsbXX38NIQSmTp0qJ/nNZjNMJhPee+89mM1mTJs2De7u7rh48aLquf/5z3+wYMEC/Pvf/4bZbF1UMJvN+OabbyCEQHJycq37XNtzFEWBEAIfffSR6r2EEMjIyFCNrVluOHz4kKrYUVNsbCwcHR1x9OhRWW4ICwuDo6MjNm3aBLOZ5QYiIiIiIiIiIqLGguWGWqTmxGk+sUvU3KXmxGn+W9CYsdxARGQbjanckJmZCSEEjhw5IssNkyZNQnJyssr3338Ps9mMV199Vd7GISYmBu+//z4qKirk6/Xu3RuhoaF33B9LSeLUqVM4deoUDh06hDlz5qhu/3CnckNFRQUmTpwIR0dHuRqD2Vy/coOiVJUi9u7da7VvH3/8MYQQ2L59uyw3pKSkICoqCh4eHigvL2e5gYiIiIiIiIiIqJFguaEOsxNGaj65S9RczU4YqflvQGPHcgMRkW00pnJDQUEBhBD497//LcsNXbp0wQsvvKBy9uxZmM1m/PzzzygpKUFERAQ8PT0hhIC3tzd27doFs9kMd3d3TJ069Y77Y7nVw63Wrl1b5z4LIeDi4oJOnTqhU6dOMBgMEEIgPj5e9dr1KTdYSh2HDh2y2rcvv/wSQghs3rxZVW64cOECOnfujClTprDcQERERERERERE1Eiw3FCH3MIsDIn6X80neYmamyFR/4vcwizNfwMaO5YbiIhsozGVGxITEyGEwHfffXfH21JcvHgRJ06ckLekuHz5Mnbu3AlfX19069YVZrMZL730EgYPHmz13PLycsTExOCzzz6D2VxVVJg8eTKOHTuGY8eOoaysTN764eDBg7XusxACQUFBKCgoQEFBAbZv344jR45YvVd9yg07duyAEELeTqOm7du3QwiBXbt2qcoNZnP1bTDefvttlhuIiIiIiIiIiIgaAZYbbmNJyhTNJ3qJmpslKVM0v/abApYbiIhso7GUG3744Qf06tULAQEBuHr16h3LDTk5ORBCyNtGWMyZMwfOzs64fPkyEhISIITAvn37VGOys7MhhMAXX3wBs9n6FhNmsxn79u2DEAJFRUW17nNtz6lNfcoN586dQ8eOHTFhwgSr548bNw6dOnXCpUuXrMoNZrMZISEh6NatK8sNREREREREREREjQDLDXfwarS35pO9RM3Fq9Heml/zTQXLDUREtmGv5QYfHx9s374dW7duRVJSEvr27QuDwSBXL7CUG2bPno28vDyVPXv24NixY2jfvj0GDRqE3bt34+jRo3j77bfh5eWFsWPHwmw24/vvv0f37t3h6+uLrVu34vDhQyguLoaHhwdCQ0Nx9epVmM21FxXOnDkDIQRSU1PlPj+ocoPZbEZWVhaEEHjjjTfw+eefY+/evZg9ezaEENiyZQvMZnOt5Yavv/4aLi4uLDcQERERERERERE1Aiw33MGazMWaT/gSNRdrMhdrfs03FSw3EBHZhr2WG4QQko+PD8aNG4dPP/1UjrGUG2qzZMkSmM1m7Nq1C/3795fbHR0dMX78eJw9e1a+zunTpxEeHg6DwSDHzJgxA+fOnZNjaisq/PLLL2jfvj1ee+01uc8PstxgNptRUlICX19feTy+vr5466235OO1lRvM5urbebDcQEREREREREREZN9YbqiHyLgAzSd9iZq6yLgAza/1poTlBiIi27DHcoMtXb16FeXl5Thw4ADOnz9f57gff/wRhw4dQkXFD5rv852cOHEC5eXlmu8HERERERERERER2RbLDfWQmZuk+cQvUVOXmZuk+bXelLDcQERkG0293EBERERERERERETUWLDcUE/zE0M1n/wlaqrmJ4Zqfo03NSw3EBHZBssNRERERERERERERPaB5YZ6KizOx8g3HTWfBCZqaka+6YjC4nzNr/GmhuUGIiLbYLmBiIiIiIiIiIiIyD6w3HAXYjfM0nwimKipid0wS/NruyliuYGIyDZYbiAiIiIiIiIiIiKyDyw33KXwFd01nwwmairCV3TX/JpuqlhuICKyDZYbiIiIiIiIiIiIiOwDyw13KXlTrOYTwkRNRfKmWM2v6aaK5QYiIttguYGIiIiIiIiIiIjIPrDccA9mJgzTfFKYqLGbmTBM82u5KWO5gYjINlhuICIiIiIiIiIiIrIPLDfcg5z8dM0nhokau5z8dM2v5aaM5QYiIttguYGIiIiIiIiIiIjIPrDccI8Wp0zQfHKYqLFanDJB82u4qWO5gYjINuyx3HDqzDl8vLcM23fswjYiIiIiIiIiIiIiG9q+Yxc+3luGU2fOaf7fQllusBWTgjFLO2g+SUzU2IxZ2gGKyQ6u4SaO5QYiItuwt3LDqTPn8O7OT3Du/CVUVlaCYRiGYRiGYRiGYRiGYRjGlqmsrMS585fw7s5P7K7gwHLDfVidsVDziWKixmZ1xkLNr93mgOUGIiLbsLdyw8d7y3Du/CWt//8NwzAMwzAMwzAMwzAMwzBNPOfOX8LHe8s0/2+iLDfY0OQ4o+aTxUSNxeQ4o+bXbHPBcgMRkW3YW7lh+45dXLGBYRiGeQpTCwAAIABJREFUYRiGYRiGYRiGYZgHnsrKSmzfsUvz/ybKcoMNpeeu1XzCmKixSM9dq/k121yw3EBEZBv2Vm7YtmOX1v+fhmEYhmEYhmEYhmEYhmGYZpJtLDc0PfMSR2s+aUxk7+Yljtb8Wm1OWG4gIrINlhsYhmEYhmEYhmEYhmEYhmmuYbmhCcovykXQojaaTx4T2augRW2QX5Sr+bXanLDcQERkGyw3MAzDMAzDMAzDMAzDMAzTXMNyQxMVkzZD8wlkInsVkzZD82u0uWG5gYjINlhuYBiGYRiGYRiGYRiGYRimuYblhiYsLMZP80lkInsTFuOn+bXZHLHcQERkGyw3MAzDMAzDMAzDMAzDMAzTXMNyQxOWlB2j+UQykb1Jyo7R/NpsjrQqN8TFxSE0NBT+/v7w8fHBkMFDELcyTvPzQfZt+vTpDfqdTUpKQmhoKIKGB912nMlkQteuXREfH6/ZuRn80mDMncOykpZYbmAYhmEYhmEYhmEYhmEYprmG5YYmbnr8YM0nk4nsxfT4wZpfk81VQ5cbioqKMPilwdDpdLXq1bMnSopLND8vD1rWxix06NABHTp0QEyMfRd7QkND0aFDB/Tr10/zffnrX/+Kbt26Ndhn5ODggDZ/aQN/f//bjp09ezZat24Nk8nUYOdiypQp6NKli/z3G/PewJNPPon8vHzNP6fmiuUGhmEYhmEYhmEYhmEYhmGaa1huaOKy89M0n1AmshfZ+WmaX5PNVUOXG3r06CGLDE899RT69u2LgS8OxJ/+9Ce5/cXAFzU/Lw/ahg0b5PHa+61B+vXrB51Oh7Zt2mq+LyuWr0D8qoZZHSEiIgI6nQ5bcrfcdlxJcQlat2qNyZMnN+i5CBoehBYtWsh/l5aUomXLlggJCdH8c2quWG5gGIZhGIZhGIZhGIZhGKa5huWGZmBRcrjmk8pEWluUHK75tdicNeTE+vKY5XJCv2PHjqq/MM/Pz4eLi4t8PCcnx+r52dnZiI2NRXp6OhST9esX5BegIL8ApSWlUBQF6enpSFidgOKiYjmmqLAIK2NXIiUlRfVcU6lJPl9RqlaYiI+Px4YNG+o8ntKSUiStS0LMshisiluFvLw81ePFxcUoyC9AUWFR1THm5SM2NhY5OTlIWpckj3XmzJkoyC+AyWRCSXEJCvILUFhYKPd3VdwqZGZmql47LS0NcXFxyNuSV+f+ZaRnIG5lHPLzrf+Sv6iwCAX5BSgurjo3m7I3ITY2Flkbs6rHmarOaZ8+faDT6fCXZ/5SdTxFRff0+RcXFSNxbaLVsdyqsLAQCQkJWL9+PUylJqv9trx/UVERCgsK1Z+jqepzvHX1j+KiYqux+Xn5WLtmLeJXxSM7O9vquzRyxEg89NBDdzzmKVOm4Pe//718/aKiItX4zMxM+Z28m/NQ57j/fi5DBg/B448/rvqOhYeH48knn1R956nhsNzAMAzDMAzDMAzDMAzDMExzDcsNzUCpqRijl7hpPrlMpJXRS9xQauIknJYastzg5+cnJ/RTU1OtHl8ZuxJ+fn7w8/PDytiVcntCQgLatWunun3FU089hYVRC1XPd3BwgE6nw4QJE+Du7i7HPvbYY1iTsAbh4eF4+OGH5XZ3d3dZSFi0aJFqJYVHHnlE/luv12PtmrWq95o+fTqefPJJ1T45ODjgxcAXZWFg+LDh0Ol0MBgMiIqKwuOPPw6dTgdvb+9ab8mRkpKC0NBQ6HQ6tG7dGq+//ro8Jp1Oh379+iEzM1N1Lh599FG8/vrrqn2LjY1F61atVa/t5+enKkIYDAbodDoMGTwEAwIGqMb26dMHJcUlSEtLq/3WIb16QVEUCCHw5z//GT4+Prf93AsLCxE4IFB1LE899RSWLFmiGpefn48+ffqoxrVu1RrR0dFyTM3bUgQHB0On06mKCUuWLIFOp8OAgAGq1/bx8cFf//rXqn+bqj6bmt8Fy/ktKS5BYWGh1TF37ty5zuNzcXFB//795b/9/f3h6+uLpHVJ8nPI3Zxb7/Nwp3GbsjdZ7Z+3tzcURUFmRiZ0Op3VtUENg+UGhmEYhmEYhmEYhmEYhmGaa1huaCZWpc/XfIKZSCur0udrfg02dw1ZbtDr9dDpdGjXrl29n5OWliYnoVu2bIl+/fpBCCEndRctWiTHWiaDHRwc0Lp1a3Tq1Elue/TRR6HT6eDl5YVn2z4rnx80PAiKoi436HQ6uLm5oU+fPmjRooV8vmUSveYKFF27dsWUKVNUBQHLObWUG/70pz+pyhLDhg1Dr5495b+9vLwQEBCA7KxsWW5wcHCAg4MDfHx88PTTT6vKDE899RR8fHzkaz788MNypYu4uDhVeaNHjx5yXLt27WAyVa2EYCk3WM6tu7s7HnrooepjmDMXOZtyEBAQgNatqyboH3/8cQQEBCAyMhKKoshzc6fPs0uXLnjooYcQERGBjPQMJKxOkAWP5THL5bjnnnsODz/8MKZNm4b09HQsXbIULi4uePTRR5GRngFFUZcbEhISoNPpMGvmLPkaI0eOhIODA1rpW8ltRUVFePjhhzFu3DgoStVKCzqdDi8Hv4yUlBRkbczCqJGjoNPpsGTJEphMJsTExKBv375wcHBATEwMEhMTaz02k8mERx55BCFjqm8F4e/vDxcXF+j1evTp0wdTpkxBcXFxvc/DncYVFxcjJiYGvXr2xO9+9zvExMTI8o3JZIKDgwMGvzRY89+W5ojlBoZhGIZhGIZhGIZhGIZhmmtYbmhGJsb+TfNJZqKGNjH2b5pfe9Rw5YaiwiLVKgL1fV63bt3k6gmWlQdKS0rh4+MDnU6Hp59+Wo61FBmEEHL1hNGjR8v3ffXVV+XzLQUHDw8PKIq63GA0GuVrpiSnyNcdNXIUFEXB1KlT4e3tDT8/P7n8v6nUJMdZChOWcoNl9YaEhAQUFhSipLgEGzZssCpDKIoiyw01t+fl5eF3v/sddDod/vCHP8jzMGf2HDk2ZlkMFEWRqzoEBgZWH0NKihw3f35VochSbrCsGKEoimqlhkEDB8nn9+vXDzqdDm3btFV9Nl5eXjAYDOjTp0+dn19sbCx0Oh3CwsKsvg8tW7aEm5srFKVq1Q6dTocpU6aoxiWuTcQzrZ/B7NmzoSjqcoOiKHj66afRt29f+W83NzdZNLEUIpZFL4NOV71ayMvBL6Nbt26y6KEoCnI25UCn02H8+PFy2ysvv4KHHnrott/P9PR06HRVtxaxbPP397c65vqeh/qOUxQFQcOD0KJFC6t9eqb1M9WrVFCDaqrlhuPHj2PDhg3YsePdWh8/cuQINmzYoFJaWoq9e/eiouIHq/GZmZl45513rLZfvnxZPre2ZGRk4L333qtzPzdu3Ih33619HwHg008/xYYNG3D16tU6xzANnxs3rmPDhg3Yv39/nWNq+45t2LABeXl52LNnD27evNmAe2y/eeutt257DTAMwzAMwzAMwzAMwzzIsNzQjKTlJGg+0UzU0NJyEjS/9qjhyg0mk0muEtCpU6d6P++Pf/yj/Cv7mtvnz58vJ+I3Zm6EolSXG4KCguS4BfMXyHEJCQlye+/evasm7NtWTdjXLDckrE5QvVfnzp2h0+nQsWNH1facnBzExMRg6tSp6NGjh3z+0KFDoSjqcsOtf/lfn3JDQX6B3G5ZraJmMaRmaWHe3HnIzc1V3WIhJCREeuKJJ1TFDUu54S/P/EW1Xy1btoROp0OPHj3ktrrKDfURFhZWdeuIrGyrxyznp7ioWI7bnLP5tq93a7lh6NCheOKJJ6CYFBQWFMLBwQEJCQn405/+JAsHI4JGQDwrrF6rqKgIa9esxexZs9GlSxfodDqEh4fLx+tTblj85mLodDrExsbKbf7+/njooYdQVFh0z+fhTuMUpe5yg2W1j4a4rkmtqZYbFixYACEEOnbsCLPZbPX41q1bIYSQpS8/Pz+4ublBCAFXV1ckJyerCgUjR46Ev7+/1et88MEH8jnXrl1TPXbixHEIIZCZmVnnfnp4eGDixIl1Ph4bGwshBH74wbpwwWiXX3/9FUII5OTk1Dmmtu+Yt7c3hBAQQmDEiBH45ZdfGnCv7TMjR47EpEmTtN4NhmEYhmEYhmEYhmGaaVhuaGbmrAnWfLKZqKHMWROs+TVHVRrythSWCfUnnngCJcUlVo+viluFdu3aoV27dpg9azYKCwrlZP3kyZNVY2vefiFuZRwUpbrcUPMWAQujFlavUJCcIrf37du3znJDZkam6r0sKwG0btUaiqIga2MWOnXqpLqNhaOjoyxv3FpuqG2CvD7lhprjLSsy9OrZU26rudLCvLnzsCZhjWqfatO5c2fVZ1GzKKAoCpydnaHT6eDv7y+33U+54aVBL8HBwQGKyfqxiIgI6HQ6pKenV4+7w+vdWm6wrHSwJmENlkUvw+OPPw5TqQl9+/ZF//795bl75eVX5HPS09PRrVs3ODg44Mknn0THjh0xcuTIeyo3TJ06FTqdDusS18lt/v7+eKb1M/d3Hu4wTlHqLjf87W9/wx/+8IcGu66pWlMsN1y+fBnu7u548803IYTAP/7xD6sxlonnf/3rX3LbzZs38d1332H58uUQQmD69OnyscTERAghcPbsWdXrLF26FL6+vhBCYM+eParHSktLIYTAwYMH69xXlhsaZ+6m3FDzOwYAR48eRXR0NIQQiIuLe9C7avdhuYFhGIZhGIZhGIZhGC3DckMzk1eYg2EL/0/zSWeiB23Ywv9DXmGO5tccVWnIckPQ8CA5yT59+nSrx3v16iUfXx2/GoqiyBUHgkepCzFvzHtDjrX8lbutyg3xq+JV72X5q353d3coioKuXbtCp9OhZcuWWLF8BYqKqv5C//e//32t5YbaJqAfRLmh5soN48ePx+aczVby8qpuaWEpN9QsMSiK7csNlpUIsjZmWT02dOhQODg4oLi4WB53bm6uepypanUEy60zbi03mEwmPPHEExg3bhxeefkVdO3aFYqiYPr06fjzn/+M7Oxs6HQ6rF2zVnUuW7dujaSkJLmtqKjonsoNUQuioNPp8OaiN+U2f39/GAyGezoP9R1nuZ5q+2517NhRflepYTXFckNpaSmcnJxw8eJFDB8+HKNfecVqTF0Tz5bEx8dDCIHdu3cDAPbs2QMhBLZv364a17dvX6SmpqJLly5Ys2aN6rE5c+bA29v7trcfuNdyw6VLl/DVV1/h6NGjuH79ep3PP3v2LE6cOG61/caN66qVKX755Rf89NNPqKysxJUrV3Djxg0AQEVFBQ4dOoQrV67U+vrXr1/Ht99+i3379uG7775TPXbra/3www84evSo/DcA/Pbbbzh48CBOnz5d5zGYzWYcPlz3PtSV77//HgcOHMDBgwetnnvjxnXVtu+++w7Hjh2r81xWVlaivLwchw4dwvXr1++r3AAAV65cgYeHBwYPHmz12KlTp/Dll1/im2++UZ0rS65fv46jR4/iwIEDuHTpUq3vfeXKFRw8eBCHDx/G5cuX5fabN2/+9zNRH+evv/5qdeuT6s9PPfbmzZs4efIkjh8/Xuv+Xb16VT6nsrISZ86cUT1+6dIl7N+/X+4Xyw0MwzAMwzAMwzAMw2gZlhuaoejUqZpPPBM9aNGpUzW/1qhaQ5YbtuRukbeZcHBwQEREBDZs2IB1ieswePBgWU4QzwqYSk1QFEXe7qFly5bylgXFxcXw8vJSraagKLYrN/Tp00f+5XxKSorV7S7+/Oc/Q6fT4cXAF+Xr1Swr3G25oeaE+v2UGxSl+vYVHTt2lKtjFBUWoVu3bnBxccEb896AotxbuaFFixYoLSmV2//2t7+hW7duGDpkaJ2f+aq4VdDpdAgNDVVtLywoxFNPPSUn4ZcuWQqdTofIyEjVuCWLl6jKLreWGxRFwYuBL8LLywsdOnRAREQEFKVqdQadTofRr4yGXq+XY/O25FWVZYLVZZmVsSvvqdyQkJAAnU6HiRMnym21lRvqex7qO05R6i43tGzZEgMCBjTYdU3VmmK5ISgoCOHh4QCAvLw8CCGsJvjvVG74/vvvYTAYsGjRIgBVE+wuLi5YunSpHHP69GkIIfDll1/ijTfewNChQ1Wv4e/vr1r9obbcbbnhypUriIyMhKOjo7y9QefOnfH++++rnldWVobevXvLMb6+vjCZTPLx/Px8uLm54cqVKwgJCYGTkxM++OADnDlzBkIIfPjhhxg7dqx8vrOzMwoKClTvsW3bNrlqhcXQoUNx8eJFAJCvtWPHDoSEhKj2t7y8HNnZ2XB1dZXbw8PD8dtvv8nXv3btGpYuXQqDwQAhBAwGA8aOHYuKiorbntOff/4ZERERqv1yc3NDXl6eHPP3v/8dQgh888036NWrl+o8lZWVqV5vx44d8PHxUe3/u+++e1/lBqCqGNO7d2/578OHD+HFF19U7fet+/P++++rzrmjoyMmTZqkKiYkJSXJW6xYjn3dunUAqr4/rq6uqu8xAIwYMQJCCJw/f15u279/P4QQ+OSTj+W2/Px8eHp6ytd2d3dHVlYWKisr5Rhvb29kZWVh27ZteP755zFo0CAAVStWBAYGqr5TqampLDcwDMMwDMMwDMMwDKNpWG5opsYue17zyWeiB2Xssuc1v8ZIrSHLDYqiYNHCRfjd735X520THn74YSStq/6L+vT0dDz66KPQ6XR48skn0a1bN7Ru3VqOj14aLcfaqtzg4OAAIQT8/Pzw2GOPQafT4dFHH0V2dtUKEc899xx0Oh0ee+wxhIwJwejRo9FK30o+f+CLA6Eoty83FBYWyv21lDfWr19/3+WGFctXyG0tWrSAn5+fLJQ89dRTyM/Lh6LcXbkhODhYvuZjjz2GQYMGQVEUtGjRAjqdDu3atbvtZ96jRw84ODggNDQUKckpWB6zHO7u7tDpqm8poigKPDw88PDDDyMyMhIpySmYOnUqnmn9DJ577jk5prZyQ/TSaDg4OMDBwQGJaxPldr1ej0cffRTDhg6rHm+q2u9n2z6L+Ph4pKamYubMmXj66afh4OCAwMBAubpFfcoNpSWleOyxx1TvUVu54W7OQ33HhYSEQKfTYcaMGYiLq9peUlwCnU4nSx7UsJpaueGbb75RrbBgKSmsXr1aNe5OE88A0KNHD4wZM0b+OyQkBIGBgfLfpaWl8PLywo0b17Ft2zY4OjrKifdTp05BCIHS0tLb7u/dlhsSEhLg4uKCnTt3oqKiAkePHkVYWBhcXFzkX8IfOXIEBoMBCxcuxIkTx1FeXo5Vq1bB0dER7733HoCqSWpXV1dMmTIFwcHB2Lx5M86fPy8LCb6+vli3bh3Ky8uxf/9+hISEwNnZWU5+Hz16FE5OToiMjMSBAwdQUVGBHTvehbOzM9auXQugutzg5eWFjIwMnDlzBvv27UPnzp3h4+ODl156Ce+88w7Onz+PtLQ0CCGgKIo89hkzZsDPzw8ffvghLl68iE8++QR9+/bF4MGDa10xwJKZM2fC2dkZ77zzDs6dO4eTJ09i/PjxMBgMcrUGS7mhf//++Pvf/45z587ho48+QrduXREQECBf61//+heEEJg0aZJcYSIvLw/u7u73VW4oKyuDEEJ+9jdu3ICfnx+MRiP27NmDH374Afv370fPnj0xYsQIAFWrazg7OyMyMhLl5eWoqPgBW7duhYuLCxITEwEAH3/8MYQQWL9+PS5evIizZ88iLi4OQgh8+umnAIBJkyahT58+cl+uXLkCg8EAZ2dnbNu2TW5PS0uDp6enLJxs2rQJQggsXboUJ04cx8mTJ7Fy5Ur5fpZ4e3sjMjISXl5eWLVqlfyuduzYEf3798eePXtw/vx57Ny5E927d4ezszPLDQzDMAzDMAzDMAzDaBaWG5qpxKylmk9AEz0oiVlLNb/GSK2hyw2KUrVqgY+PDx5++GFVscHHxwepqalW41NSUtChQwfV2LZt2iJmWYxqnK3KDbNnz0brVq1V71Vz0jwlJQVt27ZVlSFGBI2Am5sbdDodvL29oSi3LzcoioLw8HA8/vjj1fuXknLf5QZFqSo4tG1TvX9//OMf0bt3b6Slpckxd1Nu2Ji5EW5urvL1evXqBUWpf7mhuLgYQcOD8D//8z/yNZ5t+yxiY2NV4/K25KFv37546KGH5DgPDw/Vd6K2ckNJcQlatGiBFi1awGQyye0vvPACdDodVsauVI2PioqShQ+dToe/PPMXrIxdKW838vrrr0NR6lduUJSqMkLNAkZd5Yb6nof6jktJSUHbNm3h4OAgv3NJ65JqPWZqGE2t3LBixQp4eHiobjkQHh6Ozp07q245UJ9yw4gRI1R/WZ+WlgZHR0f8+OOPAKom36dNmwagaql9yyoFQPXk+a23arg1d1tumD59Op5//nlcu3ZNjikvL8eKFSvke4WHh2PEiBGqv6YHgMjISLm6RH5+vpy0r1kUsBQSLMdlyd69eyGEwD//+U8AwAcffIDRr7yCs2fPqsYNGDAAkydPVr3WwoULVWOWLl2qmmwHqm4T4ezsjISEBADAV199ZbVqAAB8/fXXEEJg1666vycTJkxAamqqatuOHTsghMDhw4cAVH8++fn5qnHJyckQQsjvT3BwMHr06GF1awbLRH99yg1z585FamoqUlNTsWbNGowaNQoGgwFOTk7Yv38/gKpVQF5++WXs3LlT9RrLli2Dp6cngKpCiRAC2dnZqjF5eXnyOAoKCiCEwMGDB+XjN27cQFxcHD755BPVfpWXlwMAPv30U3Ts2BGvv/46oqKi5PNefvllzJ49G0BVAcLLywsRERFWxzljxgy4u7vLYo+3tzccHR1x4MABOWbdunW1rqBy8OBB+T1kGIZhGIZhGIZhGIbRIiw3NGPT4gdqPglNZGvT4gdqfm2RNS3KDRamUhOSk5KRkJCAwoLCO44vLChE0rok5Obm2nxfapYbLCtHpKeny9UarPbdZEJaWhpSklNQVFR07+fAZMKW3C1yRQVbys3NRUpKirzFxv0qKizC5pzN8nYXd81UdU4tKyPUpbSkFGlpacjbcvtx96OkuARpaWnI3Vz9XTKZTMhIz7jr82VZLWP9+vU2PQ/1HlfDoEGD4OHh8cDOG91eUyo3/Prrr/D29kZ4eDhOnDgubdiwAUII1a0b6lNu6N+/P4KDg+W/LX9tv2vXLty8eRPe3t6qlRkGDRqExYsXAwCioqJUxYi6crflhvfeew+Ojo7o3bs3kpOTsWfPHpjNZjm+srJSvuZbb72lMnfuXAghcOnSJVlu+Pe//616P0shobi4WLX97NmzEELg7bffVm2/efMmTpw4gQ8//BCxsbFwdHSUx2N5rZqrAQBAYmIiXF1dcfPmTdV2b29vrFq1CgCQnZ0NR0dHlJaWWh2Hp6en1W0VasvPP/+Mffv2obi4WN4OwTLpbyk3HD9+XPWcf/zjH/L2DDdu3ICLiwuWL19u9doXLlyod7mhc+fO6NGjhxQYGIjp06erCgg1c/78efzrX/9CRkYGfHx84O7uLh8bNGgQnJycMGPGDLz11luyoGDJmTNn4OnpCU9PT0RHR+P9999HRcUPqjEVFRUwGAwoLCwEUPV5TJo0CaWlpejVqxcA4PLlyzAYDHKljwMHDkAIgXfeecdqf3ft2gUhBPbu3Qug6nMMCQlRjQkLC8OLL75Y6/H279+f5QaGYRiGYRiGYRiGYTQLyw3N2Ma8FM0noolsbWNeiubXFlnTstxgT2orNxDVl4uLCwYNHKTpPuRuzsUjjzzCVRs01JTKDe+88w6EEHUaP368HHuncsP169fh6uqKOXPmyG2//fYb2rdvjzVr1si/OD9z5ox8PD4+Xi7336dPH1l0uF06deqE8PDwOh+Pjo6GEAI///yz3PbFF19g1qxZ8PHxgRACrq6uiI6OxvXr11FRUQEhBNzd3fH888/X6tixY7LccOHCBdX7WQoJ/+///T/V9lvLDdeuXcPy5cvh5eWFjh07YsSIEVi6dCn69etnVW649bUSExNVE/aW1Cw3LF++HEKIOo9h/vz5dZ6zzz77DEFBQTAYDOjbty8mTJiAqKioWssNtx5/zXKD5VxmZGRYvceNGzfu67YUtaWwsBA9e/aEq6srXnzxRcyaNQvh4eGqc3XlyhVs2LABw4YNg5OTE4QQCAwMVJVUTp8+jZiYGPTp0wdCCDg6OiI8PBznzp2TY8aOHStX2Hj55ZexefNmlJeXQwiB06dPY+fOnXBzc5MrWLz33nsQQqCsrMxqvw8fPgwhBP7xj38AqPocb/3uBwYGIiwsrNbjDgkJYbmBYRiGYRiGYRiGYRjNwnJDMxeVFKb5ZDSRrUQlhWl+TVHtWG6ownID3Y+4lXF45JFHVCtBNLTQ0FD4+vpqfi6as6ZUbhg3bhx69OiBffv2WZk2bRqcnJzkBO+dJp63bdsGIYRqZQag6i/Qg4ODkZGRgf79+6se+/TTTyGEwBdffKG6RcXtEhQUhH79+tX5eEREBDp16lTrY5WVlTh69CgWLFgAIQTS0tIAAJ6enli3bt1t39dSbqh5+w6g/uWGlStXwtXVVa5iYcnIkSNtUm7YvHkzHB0d8euvv972OG7NhQsX0L59e0yePFm1YoHls7mbckNlZSXat2+P6Ohoq/c5f/68TcsNO3fulJ+h2Vy9Ekdd5wqoWl1h+/bt6N69Ozw8PFTPq7mfGzduhMFgQGhoqNxeVFQET09P/PLLL3B2dsbhw4cBAD169MBbb72FpUuXYsqUKXL8f/7zn1o/SwD46KOPIITAZ599BkD9OVoyfvx4BAQE1Hocffv2ZbmBYRiGYRiGYRiGYRjNwnJDM1dcUojgxc6aT0oT3a/gxc4oLrnzLQdIGyw3VMnPz0dKSgpSUlJQXFSs+f5Q4zN79uyq24Bo+P5paWman4fmrKmUG06dOgVHR0ckJSXV+vhnn32mKgDcbuL522+/ha+vL/r06YMbN65BBsIiAAAgAElEQVSrHsvMzISLiwtGjBiBmJgY1WNmsxmurq4ICQmBo6MjKioq7rjfixcvVi3pXzNnz56Fm5sbxo0bJ7eFh4cjPj5eNe7Gjevw8vLCrFmzAAATJkzAoEGDrG77EBcXh/DwcFRWVt53uWHIkCGqW3YAVasKeHt726TcYFkZ49aCyOnTp9G/f398/PHHVs8Hqm+RsGfPHtX29PT0uy43AFXnu3Pnzrh69apqXGZmpk3LDXFxcXBycrIqc4SFhclztXv3bhiNRpw9e1Y1JicnB0IInDhxAikpKRgzZozV60+aNAldunSR/75w4QIcHR2RnJyMTp06ye/K/PnzMW/ePPTp00euxABUf7a1rb4QGRkJT09P/PTTTwBqLzds3LhRdf4t+eqrryCEYLmBYRiGYRiGYRiGYRjNwnIDYWX6XM0nponu18p0Tp7bM5YbiIhso6mUG5KSkiCEwMmTJ2t9/ObNm/D390ePHj1w8+ZNOfG8cuVKlJaWorS0FHl5eZg3bx5cXFzkChC3Zv/+/fI2F7t2We/ruHHjIITA0KFD67XfFy9ehLe3N7y8vJCTk4PDhw/hxIkTePfdd9GnTx8YDAb5V/VA1YoJLi4uyMvLQ3l5OcrLy5GVlaVaZeLw4UMwGAyYOHEivvjiC3zzzTfIysqCo6Mjdu/eDeD+V26IjIyEh4cHdu7ciVOnTuGTTz7ByJEj4erqisGDB+P777+/r3KD5T06duyIkpISHD9+HLt27UJwcDCCgoJQWVlZ6/n8+uuvIYTAjBkzcOLEcRw5cgQZGRnw8vKCEAJbt27F9evX611uOHDgAJydnTFq1Cjs2bMHx44dQ1ZWFjw9PW1abtiyZYu8Bcbp06fx1VdfYcGCBXB1dYWjoyOOHz+OCxcuwN3dHSEhISgrK8PZs2dRVlaGIUOGoFu3rrh586ZcAWLp0qU4cuQIzp49i/feew/e3t6y/GLJqFGj4OHhgcjISNXxe3h4wNnZGT/++KNqfEFBAYQQmDdvHg4ePIjDhw/hzTffhBACGzdulONqKzdcuXIF3bp1RZcuXfDuu+/K73iXLl3g5ubGcgPDMAzDMAzDMAzDMJqF5QaCoiiIiO2p+eQ00b2KiO2p+TVEt8dyAxGRbTSVckP37t0xatSo245Zs2YNhBD49NNP5cRzTX5+fhg3bhzWrl2Ly5cv1/oaN25ch6enJ5ydna2KAQBk0WDt2rX13vejR48iIiLCan8GDRqEzz//XDX2t99+w6JFi+Dq6irHderUCcnJyaoJ/7KyMgQEBMgxQ4cORVZWlnz8fssN5eXlGDBggHx9b29vlJaWYvPmzRBCYMGCBfddbrh27RqWLVsGDw8PCCHk6hRHjx697flMSUmBi4sLhBBwcnLCuHHjcOrUKXTu3BlCCJw5c6be5QYA+OKLL2A0GuWxdu/eHZ9//rlNyw3Xrl3D5MmT5Xu4ubkhOjoaZWVlMBgM6NmzJwBgz549qs9VCIFRo0apzklubq48ViEEnJ2dMXPmTKvv9KZNmyCEQF5entxm+ZxrrhZy6/np1q2rfG1fX1+UlJSoxtRWbgCAc+fO4dVXX4XBYIAQAp6eniguLsbIkSNZbmAYhmEYhmEYhmGY/8/enUdFceX946+GxBDPjBwzJpNfzIxzSoM84BKJcVRiNMbELaabFkXUCKJECXEJLogLoogoIiLIIiLKJks3dGV8kkxiJpMxxpnRjBg1Jhr3JRj3Deo55/k+ef/+6FRB0d3QIAIh7885rzOHqltVt6qrnTNz330vq9WK4QaCJEnIzE9s9QFqoqbKzE9s9e8Q1Y/hBiKi5tFewg3toaqqqnDy5EkcOXIEN2/erLft//zP/+DChQu4fPky/vd//9dhu/v37+P69evN3VUAwE8//YQrV67gypUrmu0//vhjvX1qbP3f//0ffvjhB5slQuqrqqoqnD9/HrIsq9tkWX6gZ3Hr1i1cu3atycc7e40LFy5o7vXWrVuaEMpPP/2EGzdu4OzZszazKyj1//7f/6KyshLnz5+3G8J50Lp582aTn4Usy7h8+bLNsiksFovFYrFYLBaLxWKxWK1RDDeQKjI5sNUHqYkaKzI5sNW/O9QwhhuIiJoHww0sFovFYrFYLBaLxWKxWCwW69daDDeQqrB0J8ZH/67VB6uJnDU++ncoLN3Z6t8dahjDDUREzYPhBhaLxWKxWCwWi8VisVgsFov1ay2GG0hjTcbcVh+wJnLWmoy5rf6dIecw3EBE1DwYbmCxWCwWi8VisVgsFovFYrFYv9ZiuIFsTI/r3+qD1kQNmR7Xv9W/K+Q8hhuIiJoHww0sFovFYrFYLBaLxWKxWCwW69daDDeQjc05q1t94JqoIZtzVrf6d4Wcx3ADEVHzYLiBxWKxWCwWi8VisVgsFovFYv1ai+EGsmte4thWH7wmcmRe4thW/45Q4zDcQETUPBhuYLFYLBaLxWKxWCwWi8VisVi/1mK4gezKKUxr9QFsIkdyCtNa/TtCjcNwAxFR82C4gcVisVgsFovFYrFYLBaLxWL9WovhBnJoeWpIqw9iE9W1PDWk1b8b1HgMNxARNQ+GG1gsFovFYrFYLBaLxWKxWCzWr7UYbiCHSs3FCFzVvdUHs4kUgau6o9Rc3OrfDWo8hhuIiJoHww0sFovFYrFYLBaLxWKxWCwW69daDDdQvRK2LW71AW0iRcK2xa3+naCmYbiBiKh5MNzAYrFYLBaLxWKxWCwWi8VisX6txXADNWjW+pdbfVCbaNb6l1v9u0BNx3ADEVHzYLiBxWKxWCwWi8VisVgsFovFYv1ai+EGalB6XkKrD2wTpecltPp3gZqO4QYioubR1sINH+7Zi59++qm1/zcNi8VisVgsFovFYrFYLBaLxWrn9dNPP+FDhhvIGYuSJ7T64Db9ei1KntDq3wF6MAw3EBE1j7YWbvjyQAWu/Hi9tf93DYvFYrFYLBaLxWKxWCwWi8Vq53Xlx+v48kBFq/9/ogw3/ALkF2e3+gA3/XrlF2e3+neAHgzDDUREzaOthRsu/XAFn3y+H1d+vM4ZHFgsFovFYrFYLBaLxWKxWCxWs9dPP/2EKz9exyef78elH660+v8nynDDL8TqjHAExHQjalGrM8Jb/d2nB8dwAxFR82hr4QYl4PDlgQp8uGcvPiAiIiIiIiIiIiJqRh/u2YsvD1S0uWADww1ERO0Uww1ERM2jLYYbiIiIiIiIiIiIiH6NGG4gImqHWivckJiYiJCQEAwdOhS+vr6YNm0a1sSuqfeYol1FiIiIgJ/BDz4+Pnjttdcwe/ZsFBcXa9qVmcsQHByM4OBgzf1FRESo2xUhISFYGrUUGRkZrf5ZENEvG8MNRERERERERERERG0Dww1ERO1QS4cbTCYTjH5GCIJg1/Dhw1FUVGRzXGJiIp5++mm7x3Tq1Alr49aqbUtLS9V9vr6+6vb/+q//cnhdQRAwZMgQ7Nyxs9U/EyL6ZWK4gYiIiIiIiIiIiKhtYLiBiKgdaulww7Bhw9QwQZcuXfD6669j7JixeObpZ9Tt3t7ekCw1x6SmpkKn06n7+/btC//x/hg4cKC6zc3NTZ19wZlwQ48ePdCjRw+4u7trAg5PPfUUSktKW/1zsSd3Zy7mzp2LN8e9idyduYhfG4/Q0NBW71dzSktLw8KFCzFr1iyEh4dj2bJlyM/P17QpLS1FTEwMduzY0er9baqMjAysXLkS4eHhCA8PR1RU1C/6fsiK4QYiIiIiIiIiIiKitoHhBiKidqglww3r4tepIYJ+/fqhuKhmOQmz2Yzhr7yi7l+0aJG6r1+/fhAEATqdDsuXL7fpv3KM0WiEJDUcbnj00Uc158jOzoaPj496TEBAQKt/LvZ069YN7u7uGDx4MDIzMxE4KRBubm6t3q/mYLFYMH/+fOj1ekyfPh3vvfcegoODodfrYTAYsHnzZrVtfn4+9Ho9Nm7c2Or9bqyysjIsWrQIer0eAQEBePfddzFz5kwYDAYYDAab95t+WRhuICIiIiIiIiIiImobGG4gImqHWjLc4OvrqwYIMjMzbfYXFhbC1dVVnVlBkiQkJyerx7z22mt2z2vQG+Dr6wuD3gBJany4QZIkFBUVwc3NDYIg4Le//a26XRRFPPnkkxgwYECrfk4pm1MgCAJiVsao29pTuGHDhg3Q6/WIj4/XbC8oKMCECRPg7+8Pk8kESfplhxvmzZsHg8GAuLg4zfbi4mKEh4dDr9cjISGh1ftJTcNwAxEREREREREREVHbwHADEVE71JLhhqeffloTXLBHCUDodDpYyi1YtGiRGlSIjo526jpNCTdIkoTXX39dPa4gvwCSJKFjx44N9vlBmE1mmEqtg/aWcgu2pG5Bdna2ZlkOU6kJq2JWQRAErF+3Xl02w1G4obSkFCXFJer5lfZl5jJsSd2CnO05DvtTXFSM5ORkpGxOQVFRkcN2ubm5SNqYpLYxlZrU8EFTLFiwAAaDAWaz2WbfqlWroNfrkZ6eDkmyDTfk5uYiOzu73uuXlpYiOzsbJSUlmu0WiwVmsxnl5eXaz8VstumLo7bOysrKgl6vd/geFxYWwt/fHyEhITb7ysrKkJOTg8LCQvvvUa3+mkwmZGdno7S01OYc9p6vo/ulxmO4gYiIiIiIiIiIiKhtYLiBiKgdaqlwg6nUZDdwUJfBYFDbZWVlYcrkKerfm5M3O3WtpoYbal8raWMSJEmCj48PPDw8MGLEiIfyXEaPHo3evXsjKioKHTp0UK/fs2dP5O7M1fRb4eLiAkmyH24IDg6GIAiYOXMmJEmC0WhE586dsSRyCVxcXNRzPP300+o9KqZOmarOnCEIAlxdXTFlyhRNm7S0NIh/EtU2Op0O06ZNg7e3d72fqzPvoV6vR1pams0+s9mMnTt3qoP1Srhh9erVmD59OvR6PfR6Pfz8/OzO/DBr1iy1jV6vx8yZM5GXl2d9L00mGI1GLF68WHPcjBkzoNfrNWECJZywZcuWJt3je++9B6PRiOLiYodtcnJykJ6eDovFot77okWL4Ofnp/Y/MDDQpg/BwcGYN28elixZAoPBoLadNWsWdu3aBUmSkJCQAL1ej4yMDM2xFosFgYGBmD9//kN5x39NGG4gIiIiIiIiIiIiahsYbiAiaodaKtxgsVjUgfMXXnjBYbvRo0erA+f5+fkIDQ1V/3Z2uv6mhhv8/f3rXTbjYRg9ejQ6duwIURSxNm4tcrbnYM6cORAEQV1mIzk5GW+//TYEQcC7776L9evWQ5Jsww2BkwKh0+nw3nvvqduMRiN0Oh06duyIJZFLkJOTg/Xr1qNHjx7Q6XTIysqCJEmIXR0LQRAQNC0IuTtzsT17Oyb4T4AgCFgTuwaSZA0VuLm54dmuzyIuLg47cnYgOjoaXbp0gU6ne6BwQ05ODvz9/WEwGDB//nxs3LgR+fn5dtsq4Ybx48djxYoVyM3NRVZWFmbNmgU/Pz81kGAymTBp0iQEBgZi8+bN2LVrF1JTUzFlyhRMnDhRncUhPDxcE+IwmUwwGAwwGAxITExUt8fExMDf3x9lZWVNuseQkBBMnz69UceEh4fDaDQiLi4OBQUFyM7ORlhYGAwGgyakEBwcDD8/PwQHByMjIwOFhYVISkrChAkTMG3aNHXWCX9/fyxcuFBzjczMTLuhB2o8hhuIiIiIiIiIiIiI2gaGG4iI2qGWXJbCw8MDgiDA3d0dZWb7A8Tdu3eHIAjo1KkTJMk6oKwEDsLDw+0eM2rUKPTo0QN9+/aFZGl6uKF///7qcS01Rb8S5kjbop2xoE+fPvD09FT/jl8bb51RIqlmtgU13GCRYPQzwsXFBdErtEseGI1GCIKA5cuXa7bn5ebB1dUVY8aMgSRJePfddyEIApI3JattLOUW+Pv7IzY2FpIkYcoU68wWdQfBk5OTG5yRwxk7duzA/Pnz4e/vr848MGXKFERFRamzD0hSTbhh7ty5muPT09Oh1+uRmpqqvjt6vV4NcChycnJgMBjUZ6LMaKDM5pCWlgZ/f3/MmzdPEwQIDQ19oNkN/P398e677zrdXgkdKM9fUVZWhsmTJ2PGjBnqtuDgYBiNRptlK1JSUqDX69WQxuLFi+Hv7695vyMjIzFlyhR1tghqOoYbiIiIiIiIiIiIiNoGhhuIiNqhlgw3BEwMUMMDERERNvvj4uLU/cOHD4ckWQfhH3nkEQiCgD88+weYSk2aYzLSM9RjBg0aBElqWrhhQ8IG9RgfH58WeyajR4+Gu7u73e1du3ZV/3YUbujQoQPGjhnrMFxgNBrh6uoKS7ntwLWvry/+8OwfIEkSsrOz8dhjj+Gxxx6DQW8d+M/P086c0L9/f4iiaPc+nu367AOHGxTl5eXIyspCbGwsZs2aBYPBAH9/f+Tk5ECSasIN9pag0Ov12LhxIyRJwjvvvIO33nrL7jWmT5+O0NBQSJKE4uJiGAwG9XwrVqxAeHg4EhIS1BkdSktLYTAYkJyc3OT7CgwMVK/pjNjYWJulMRRLly6FwWBQZ5EIDg5GWFiYTTuLxRpQUZbd2L59O/R6PTZt2qTuDwgIQExMTIu98+0Zww1EREREREREREREbQPDDURE7VBLhht2Fe5Cp06dIAgCdDodwsLCsG3bNuTk5CAiIgIdOnSAIAhwcXFBdna2etz06dPV4EHv3r2RsD4B+Xn5WLhwoTrTgyAI6r00FG5wcXFBzMoYxKyMwbKlyxAYGKgumSEIAjYmblSPee211zBkyBD4j/d/KM9k9OjReLbrs3a3OxNuUGbCUGaAsDdzw5NPPmn32uPeGAdXV1f17+zsbPgZ/PDM08+oz2LAgAHI2W4NFYh/EtG/f3+75+rbt2+Tww0WiwWFhYUwmUx296enp8NgMKgzdyjhBiXEoKgbbggKCsLs2bPtnvPdd9/VLEUxe/ZsdVaF0NBQrFmzBnl5edDr9cjPz8fmzZthNBofaEaPWbNmITAwsN42CQkJCA8PR2lpKSIjI2EwGOzOqBAXFwe9Xo+CggJIkjXcYC8wJEkS3nrrLc2sJyEhIZgzZw4kyTpLhcFgUM9DD4bhBiIiIiIiIiIiIqK2geEGIqJ2qCXDDZIkIWZljBpisEen09lM/W8ymTBgwACHxwiCgNdee01t31C4ob5rz5o1S3Ptjh07QhAE9OjR46E8jwcNN+h0OmRlZcFsNkMURbi7u6Mgv2ag2mg0QqfTobys3OYagwcPtnttSZKwI2cHZs6cCZ1Op85kMXDgQHTr1s1u+67PdH2gcMP48eOxaNEih21CQkLUMIKz4YaGZm54++23a55vfDz8/f1RWloKPz8/bN++HZIkYfLkydiwYQMWL17cqCUl7Fm+fDn0ej3S0tIctpk1a5Z6n8rMDbWX5FBERUXZzNxgL8ihzNxQ+9kmJCTAz88PJSUlWLRokd0ZH6hpGG4gIiIiIiIiIiIiahsYbiAiaodaOtwgSRK2bduGAQMGaGZL0Ol06NWrF1I2p9g/ziIhLCwMv//97zWBhI4dOyI8PFyz7EJjwg06nQ6iKGLUqFGaGRsUbT3c4Obmpv6dnJwMnU6HV199Vd1mNBohCAIiF0dqzp+flw8XFxeMGjUKkiRh2lvT0LdvX5t++Pr6onPnzpAkCTNnzoQgCEjelKxpszFxo8NlMZw1a9YsBAQE2B3ILysrw4QJE9RwgbPhhtWrV0Ov1yMzM1PTLjs7GwaDAStWrFC37dq1CwaDAdHR0ZgwYYI6W0JERAQiIiIwZcoUbNiw4YE+6+LiYvj7+yMkJATFxcU2+7ds2QK9Xo/ly5dDkiRkZWVBr9dj1apVmnZms9lmiYvg4GAYDAbk52uXEklJSYFer9f03Ww2w9/fH2vXrsWECRM07xQ9GIYbiIiIiIiIiIiIiNoGhhuIiNqh1gg3KCzlFqSnpSM1JbVR0/0XFhQiMTER27O3Q7K0/jOUJAk+Pj5wc3PDtm3bIEkSSktK4ebmppnpwN625gw3KNsEQVAHyJWZGx577DHMnTsXGRkZiI2NhYeHB3Q6HbZu3QpJkhAdHQ1BEKB/U4/U1FRkZ2dj+bLl6NixI0aMGAFJsg7OP/HEE+jcuTOioqKQkZGBqKgodO7cGa6urg8UbsjOzobRaMSUKVOwfv165OTkID8/HykpKQgNDYXRaER6ejokyflwg9lsxuTJkxEQEIDExETk5uYiKSkJgYGBCAgIQGlpqeb40NBQ+Pv7q0s2SJKEDRs2wN/fHwaDASUlJQ/8niQkJMBgMGDq1KlYt24dtm/fjuzsbMTExMBoNGLatGnqbAySJGHu3Lnw8/PDqlWrsGPHDmRkZCA0NBQGg0H97CTJGm5Qnt/mzZuRm5uLxMRETJgwAW+99RbKy7UzdyxevBj+/v6YMGHCAy21QVoMNxARERERERERERG1DQw3EBG1Q60ZbmhPPD09IQgCsrKyIEkSSopLIAgCunTporaxt625ww0mkwl//MMf4e7ujvz8fBiNRnTu3BmRiyPRqVMndcYKURRtZmAICwvTtNHpdBg+fDiKiorUNjnbc+Dj4wOdTgdBENChQwfMnTsX3t7eDxRukCTrTAVhYWHQ6/UaM2fOVIMNkuR8uEGSrDMyvPvuuzAajdDr9fDz80NYWBgKCwttrr9mzRro9XrExcXZnLM5l27YunUrpk+fDoPBoN6jwWDA4sWLbQIUZWVlWLp0Kfz9/dW2QUFBNrNRBAcHY968eVi6dKl6rwaDAe+8847m81NkZ2dDr9cjMjKy2e6LGG4gIiIiIiIiIiIiaisYbiAiaocYbmjflHCDJFlnysjMzMSuQtulHxTlZeXYnr0dmZmZKCl2PFNBaWkpsrOz1eUbmiPcoCgpKUF2djaysrLshhCaory8HHl5eZpZEVqb2WzGtm3bsGPHjgb7ZbFYkJ+fbzPbhCI4OBjz589Xz5ubm1vvjAyZmZnQ6/XIyclp9efQnjDcQERERERERERERNQ2MNxARNQOMdzQvtUONzxMDxJumDt3rs1sDW3Z3LlzG32PISEhD6UvyvlrhxsaaitJEubMmYMZM2aof9trQ43HcAMRERERERERERFR28BwAxFRO8RwQ/v2Swg30IOrHW6oT2RkJEJCQmAwGDRLfVDzYLiBiIiIiIiIiIiIqG1guIGIqB1iuKF9Wxe/DvPmzXvo14mKisLK6JWtfr+/VomJiUhNTW2wXUJCAiIjI5GWltbqfW6PGG4gIiIiIiIiIiIiahsYbiAiaocYbiAiah4MNxARERERERERERG1DQw3EBG1Qww3EBE1D4YbiIiIiIiIiIiIiNoGhhuIiNohhhuIiJoHww1EREREREREREREbQPDDURE7RDDDUREzYPhBiIiIiIiIiIiIqK2geEGIqJ2iOEGIqLmwXADERERERERERERUdvAcAMRUTvEcAMRUfNguIGIiIiIiIiIiIiobWC4gYioHWK4gYioeTDcQERERERERERERNQ2MNxARNQOMdxARNQ8GG4gIiIiIiIiIiIiahsYbiAiaocYbiAiah4MNxARERERERERERG1DQw3EBG1Qww3EBE1D4YbiIiIiIiIiIiIiNoGhhuIiNohhhuIiJoHww1E1BquXr2Kffv2wWQyIS8vDyaTCfv27cPVq1dbvW9ERERERERERK2F4QYionaI4QYioubBcAMRtaTdu3djxowZEEURoiiiZ8+e8PHxQc+ePdVtM2bMwO7du1u9r0RERERERERELY3hBiKidojhBiKi5sFwAxG1hIMHDyIwMBCiKCIsLAzl5eU4c+aMps2ZM2dQXl6OsLAwiKKIwMBAHDx4sNX7TkRERERERETUUhhuICJqhxhuICJqHgw3ENHDZjKZIIoigoKCnA4rHDx4EEFBQRBFESaTqdXvgYiIiIiIiIioJTDcQETUDjHcQETUPBhuIKKHSQk2xMfHN+n4+Ph4BhyIiIiIiIiI6FeD4QYionaI4QYioubBcAMRPSwHDx58oGCDQgk4cIkKIiIiIiIiImrvGG6gFrchewliM+ag2FRQb7sSUyESs6OwZPMUhCeMwOLkACRmR6HcYlbbZBekIDZjToO25iehrNyM2Iw5SM9dD0mSEJ+1AAlZix1e31xeitiMOUjNjYMkSViftajea2zKWdnqz5ZIwXADEVHzaIvhhi+++MJuX99//33IsoyKigpIkoRLly5pjjty5AgkSUJVVZW6raqqCl988QUyMzORkpKCPXs+0ew/duyYzXUqKirUNvv3fwlJknDt2jXNtW7fvg1JkrB//5eorKy06ef+/fvVY06dOlXvZ3Dt2jV88cUX+PjjjzXXqN33rVu3Yt++faiurlb337t3D5Ik4fPPP7c5TpIkHD161O7zlSTJZpD4zJkzkCQJBw4cUNvYs2/fPqeeSd1rKs/51q2bTe537XMVFhZi48aNeP/9923eA8WFCxdgsViQmJiInJwcnDx5Ut13584dSJKE3bt3Q5ZlfPTRR5AkCTdv3lTbfPbZZ5AkCT/++KO6Tbn3ixcvqtv+85//aJ5d3WvY880339jt86lTp7B69WpUVFRgz549Nsft2bMHlZWVNsfdunUTH3/8MVJSUrB9+3bs37/f7vmrq6vx5ZdfIjs7G6mpqdiz5xPcvn1b3a98txzJzc1FWlqa09/lwMBABAUFNdguLS0NwcHBOHbsmMM2QUFBCAwMbNS/JQkfXcS/vr+l/n3ozC1kff4DVv/lPAr2X8H1OzX/Fpy/eg/F/7qC05X3NOc4cfkuiv91BZeva7ef/dHa/qvTtzTb71ZVo/hfV7DnqPb7UfXz9oqz2vYXrlnPs+r989jy6WV8e+mOZv/X526j+F9X7Lp8477De6/vXhXXbldB+s9VrP3vC9j2+Q847KBvxf+6gtv3q22Ol/5zFcX/uoJvLt6x21fTgR9x8NQt3KlzrKNnJ8uyzT3+5dBVVNa6z6dfC3kAACAASURBVPcPXXX4PPZ+d+OB+1z3+Sp9dfS5Xbh2D1+evOnwHOYDP2J5+Tkcu3jHpi9ERERERERE9jDcQC2qsCQH46M7wxjtjjUZcx22y8pPxtRYT/hHP4nQeF9EJPlh8urnYIx2x7TY3sgv3g5JkpCwLRJTYz1Vgau6wxjtjkmr/qTZHpc5D6XmYhij3RGVMg2SJGFR8gQYo91RWJprtw8pO2JhjHZH0vZoSJKEabG94b/yKc15a4tI8mv150ukYLiBiKh5tMVwQ1BQEERRtPHcc89Blmt+xf3OO+9ojktKSoIoirh79y5kWcaVK1cwY8YMiKKI119/HW+88QZEUcT48eNx/fp1yLJ1UFUURXh6esLLywteXl4QRRF//vOfsWfPJ/j73/8OURQRGxuruVZqaipEUcTf//53/POf/4QoivDw8NCco1+/fvj888/VafkdOXbsGIKCgjB06FD1/HX7/uqrr0IURcyePRtXr16FLMu4du2a+lwqKirUY+/cuQNRFLFp0ya7z1cURSxZskT9+/Tp0xgy5CWMHDlSHbR31NeQkBCnnkndayrP+fTp003ud1VVFRITE9G9e3dNn3x8fGyCIbt378bzzz+vaefh4YHt27dDlmX88MMPEEUR3t7ekGVZfdZ/+9vfIMvW4EivXr0giqLmOzJs2DCIoogLFy5Alq1hgddffx2iKGLo0KGa4IxyDXsyMzPt3uO8efPQs2dPVFZWYvTo0XaPff755zUBkiNHjqh9qC08PFwTQLly5Qrefvttm3Zjx47Ft99+C1mWsWbNmnrf1aysLIiiqPncHNm9e7dTsy0o3x9RFPHPf/7TYTtlFgglkNKQL0/chPfiClTeuI+qqmqslM7DK+IQ+kV/jZFJx+G9uALPr/gah85YB60/OXINXhGHUH7wR815CvZfgVfEIez97oZme5T5LLwiDmFYwnHN9qu3quAVcQheCw5pBu9v36+GV8QhxO2+oG778PA19Fl6GN6LD2Nk0nH0i/4aXgsOIfXTmsDOho8uWs9nx5cnbtrctzP3KsvW8MOgNcfgtbACr244judXWK+9ZvcFVFdb2/zt2HX1WtJ/rmquc+LyXXVf5t8va/rqvagC3osr4LWoAl4RhzAk/hucqrzb4LOTZVl9dt6Lfz7Hwgp4LTiECRknUF0to3/MEYfPIzjn+yb32dHz/e8K63vRP+YIrt2u+X5/etR6nb8du453Ck47PEefpYfxTsFpTNp60uZeiYiIiIiIiOxhuIFa1KqMMASu6o6IJAOC1/SFJFls2uwoyoB/9O8wM34QdtUOHlgsSMtdh/HRv0NwXD9YLGU2x6blroMx2h3JOTE2++qGG5S267IW2u1rRJIRE2OegbmsFJJkDTfMThjW6s+QyBkMNxARNY+2Gm54+eWXcevWTRuyXBNuEEURn3zyiXpc3XBDREQE+vTpoxkI/vTTT/Hcc88hOjoasqwddFfaVFZWYsyYMZg4cSJkWcb8+fPh4eGh/qr83Lmz8Pb2xty5cyHLNYOzZWVl6jkuXbqEESNG4NVXX0VVVZXa/+3bt0MURfzrX/9St1VVVdmEG+z1fe/evejVq5caTFBCAqIowmg0qgPrjQk3nD17FkOHDtUEG5Q2CxcutHn+yq/8G3omddkLNzS230VFRRBFEb6+vvjggw/w9ddfIysrCx4eHvD09MSpU6cgyzKOHz8ODw8P9OzZEzk5OThy5AjKy8vRp08fdO/eHYcOHbIJNyifS1JSEmRZxoEDB9Q+Ll26FLIs4/z58xBFEWPGjFH79O9//1sz+P/FF1+o+5Rr9OzZE++//77G8eO2g7qXL1/Gc889hzlz5kCWZTXcYDKZcPDgQezbtw/z589XAzqybJ0t45VXXoEoili5ciW++uorfP7555g4cSJEUcTy5cvV8y9YsACiKGLq1KnYu3cvDhw4gCVLlkAURYwaNQr3799HRUWF2seRI0dCFEVs2LBB3XbhwgV4eHhg4cKFDX6PZ8yYgbCwMKe+8//85z9x7tzZBtuFhYVhxowZTp0zMOsk3i20fq9z9lbCK+IQ0v52Wd1/8oe78Fl5BL5rre9wY8INt+9Xo8+ywxiX8h28Ig7hwKma0IAabog4hNc2HkdVVbV6TO1ww6nKu/BeXIFJW0/ixh1rm7tV1XivyDrw/5+fgwjK4PvR87dx4061hnLu2py519v3qvHn2KMYuu4bnP3ROiNFdbWMTR9br1Ww/wpkuVa4YWEFgnO+11xn08cXrcEDO0GBkz/UBBm+PHkTXgsrML/oTIPPTpat4Qblc1P6pdzTJ0eu4ebdmvvvs+yw+vxu3KnG7fvVTe6zo+erhBu8Ig5hWdm5mv8uqRVuuH2/5php20+iV+Rh9e+bd6vxz+9vwiviEI6cv23zeRERERERERHVxXADtRiLxYK3Yr2xNHWaGizYmr/Rpt3cxDEIiOmGUnOR3fMsT50OY7Q70nLjbfY1JtxgsZRj8uoeCEt4xaatubwUATFdsXDTeHUbww30S8JwAxFR82ir4YbaA/11xcfHo3v37pg5cyaGDh2qhh5qhxu+++5biKKI5ORkm+MzMzPVAXR74QZZlrFo0SJ4eHigqqoKFy9eRJ8+fTB16lTIsnVgv0+fPuqv9+2FG2RZxvLlyyGKIu7cqZmOPD8/3+4v32vfc319T0hIQPfu3XHq1Ck1JBAaGoru3bsjLy8Psux8uOH8+fN45ZVXbIINtds4+gwaeiZ12Qs3NLbfgwYNgiiKNss/JCcnQxRFLFu2DLJsDYbYmx2hrKwMkyZNQnFxsU244euvv4YoipgyZQpkWUZ6ejpEUUTv3r0xfPhwyLKMv/zlLxBFEXFxceo5ly1bps5iIYoiFi1apO6re42GlJSUaGaKUMINtd8VpZ+vvvoqZLkm8FF3wP/q1avo3bs3unfvjrNnz6rvlI+Pj/p9UQQGBkIURVgsFs32yZMnQxRFm+VDpr31Fjw8PDTLWdR19epVm1kvmkN5eTlEUVRnL3HkdOU9dTC8ulpGv+iv8UbKtzbtpP9cRUTxWfx4836jwg1lB3+EV8QhHLtwG/2iv8aCkppghhJumLT1JLwWHMLWv/8AWbYNNywoOQuvhRU4f1W73MXlG/cRUXxWXdbCXmDAEWfvVQkL/O3YdZt2rycdx4urrEvDKEGByVnfw3tRBa7eqpm54JWE45iy7fsGww2yLGPQmmMYm/xtg89Olm3DDbIs47vLd+AVcQgb/qpdgqbPssOYsk0bYGiuPiuUcMOkrSfhtbBCDZ3UDjfUbh+y43v0WnLY5jx/jj2K1X8536zfByIiIiIiImqfGG6gFpOeux7GaHdkF6b8HCx4Dgs3+Wva5BdvhzHaHdFpoQ7PYy4rxdb8jSgoybHZ15hwgyRJiEqZhvHRnVFkyte0TdmxxiZAwXAD/ZK0VrghMTERISEhGDp0KAYMGIDxxvFI3JDY6s/jYVgSuQTBwcFYuND+7C+O7CrcheDg4HqZSk0Oj49fG4/QUMf/RjZGaGgolkQuadHnZrFYkJycjMjISMTGxmJX4a4HOl/RriLEx8djSeQSJCcnO2y3c8dOrIpZhaVRS5GRkeGwXUZ6BqKiohAbG4uC/AK7bcrLypGUlITIyEisi1+H4uLiZnk2q2JWIWVzSoPtcnfmYt68eTCZHL8njiQnJ2PZ0mV29+Xk5GDF8hVYvmx5vc/oQfuWsjkFq1etdup8UVFRmDlzpuPPKyMDwcHByEjPwM4dOxv8bgUHB2PBggWac+Tn5WP+/PkY98Y4+Pj4YOTIkZg/fz7MJrP1826j4YZ+/fohPT1dQ1kyQAk3nD59Gt7e3li3bh1kWRtukCTJ7kB4Xcqg+1dffYVLly7h4sWL2LNnD3x8fDS/Os/Ly4Moili1ahVEUcSOHTvUffbCDRcuXMArr7xiE9JwJtxQX9+//PJLiKKIDz/8UA0JZGRkIDo6Wg0XOBNuCAkJwYgRIyCKIj777DO7bQwGg81nUHvGgfqeiaPnXDvc0Jh+X7hwAaIoYtCgQTb7Dh8+DFEU8eabb0KWZfW+vvvuO4f9qRs8qKqqQv/+/eHl5YW7d+8iKCgIPj4+iImJgSiKOHfunHqfn376KWRZxq1bN9GnTx8MHDgQt2/fRv/+/dGrVy91yRPlGh4eHsjOzlbt2rXLbp9WrFihWZpBCTfs2fOJGlCIjo7WBCyUY4qKimzOFxYWps5u8v7770MURSxYsMCmXU5ODkRRxNq1azXbHYUbli5dClEU8c033zh8vvv27YMoijhz5kyD3/c5c+YgODjYqZkbzpw5A1EUsW/fvnrb/fVr68Dzict3cfaKNeiwsc7AeF1KuOHN1O8QXnBaNXbztzbhhomZJzEyyfpdWGI+iz5LD+PWXessCkq4IfGvlxBRfBa9ow7j3NW7NuGG15OO47WNtjN41KUMvq8oP4cNf72kyv7HDzZtnb3X+UVn4LWoQl1+orZ1H1ivd/nGfTUoUPyvK/BaWKHO6HDswm14RRyC+cCPDQYF9n53A14LK9TAQn3PTpat4YYZO0/hwrV7uHDtHo5euI05hWfgteAQDtaZ5aG+cENj++zo+Srhhr8fv4Fh67/ByCTrbByNDTdMyDiBUZsa/ryJiIiIiIiIGG6gFvNekgHBcf3Uv5elBsN/5dOaGRrScuNhjHbHlty1TbpGY8MNWQXJMEa7IyFrsabtgk1GBK7uAYulXN02LbY3QuN9UViaa1dZubnVnzGRoqXDDSaTCUY/IwRBsGv4K6+gzGy7lExLCAkJQd++fTFy5MhmPe/AgQMhCAL69u3bqOOys7MhCAIeffRRdO7c2a6iXfZnrpEkCYGTAuHm5tYs9+Dm5oZBgwa12GeRm5uLvn37QhAEuLq6QhAEuLm5IWpJ097XpVFL4ebmBkEQ8Mgjj0AQBPTp0wd5uXmadrNmzYJOp4MgCHBxcYEgCBg5ciTKy2r+jS8sKMTgwYM15+rQoQPmzZtn8/l5eHho7qFz585YF7/ugZ5NQX4BHnnkEcyYMaP+thYJ/fv3hyAIyM/Pb9Q18vPz0blzZ4h/Em32BU0Lgk6nUwmCgGHDhqkD/E5xom8WiwW9evXCgAEDnDqnr68vHnnkEYf7o1dEQxAELI1aitSUVJvvkvI51d7m6+urHp+QkIAnnngCOp0OHh4eGDZsGDp16gRBEPDUU08hKyurzYYbPDw8MGbMGI3U1FTIck24QZatszB4eHjg6NGjmnCDMmD77bff1nstZdC9rsGDB2tmIaiqqoKfn5866K8spSDLNeGGXr164YUXXoCPjw+6d++OXr16aZbNkGXnwg319V355X5BQYEmJHD16lUMHDgQc+fOdSrcIIoihg8fDh8fH4waNQq3bt2yadOvXz+bz0AJmDT0TBw957rhBmf7XVFRYbMkhEIZ8B44cCBkWUbv3r0hiiIqKysd9sferArKkg9ffvklvLy8EBYWhg8//BCiaP03ZezYsfDw8MDNm9aZD5RZBNasWQNZltXggclk0lyjLkezkgQHB2tmEVHCDXX5+/vj3j3rr/1nz56thl3qnk9ZcqKoqEhddmP16tU27crKyiCKIiIiIjTbHYUbUlJSIIoi/vrXvzp8viaTCT179nTq+668Q0qooyE9e/ZUn7HD9+1vl+G14BDuVlXjq9O34BVxCNvthAFqU8INL609hjdSvlUNjjumCTecuXIPXgsOIeMz6+D4/pPWJQeK/mkdRK8dbvjx5n30i/4aITu+twk3vLjqKCakn1Cv//GRa+iz7LBq3s/LOCiD74PjjmHoum9Uk7aetLkHZ+916rbv8fyKr+3uS//bZXWZBiUo8OnR65iy7Xv4/9zf9R9exKA1x6zPwk5QoM9S6z30jvoaXhGH8OfYo/j20p0Gn50sy+oSEHWt++CiTV/rCzc0ts+Onq8Sbth34ib2nbD2d9vnPzQ63BBRfNbhMyciIiIiIiKqjeEGahHFpgL4Rz+J2IxwdVt2YSqM0e5Yn7VI3bYuawGM0e7I2ZXepOs0NtwgSRZMi+2NsIQR6jZzuQkBMV3rtLOGG4zR7g5l5rXPX6fTL1NLhxuGDRumBhm6dOmC119/Hfo39XjiiSfU7W+Oe7NVnsXIkSMhCAK6/bFbs573QcMNUyZPadJ109LSEBNj+29cU7R0uOG1117Db3/7W2xI2ADJImFL6hb07NkTLi4uyN2Z26hzZWZmQqfTYciQISgsKIRkkRCzMgYuLi4YPHiw2i4hIUENMxQXFcNsNiMsLAyCIGhmwBg1ahQeffRRrF61GhaLBfn5+fD19YUgCEhKSlLb9e/fH48//rg1zGCRkJWVBVEU4e7ujqIix6EUe8rMZdi2bRuioqLQrVs3CILQYLghLCxMDVU0NtwwZMgQuLq62oQbYmNjIQgCjEYjTCYTiouLMXPmTKf642zfcnJyEL82Xg2QPIxwQ919JcUlEAQBb4x9w+6xqamp0Ol06NGjB3JyamaDslgsWL1qNQRBQNdnurbZcIMzy1LIsox79+5h9OjRmDhxIjZu3KiGG/bs2aP5lX1tZrMZKSkpkOWaQff9+7/E6dOnceLECZSXl8PT0xPz58/XHPfBBx9AFEW8//77mu1KuGHJkiUoKSlBSUkJPvvsM/zwg+0AozPhhvr6rgy27927VxMSkOWaGR8++uijBsMNw4YNw7lz59SlFlauXGnTpr5lKRp6JnU5Cjc42+/r16+ry0TcvaudPn7v3r0QRRGTJ0+GLNcMlted+eLf//43oqOjYTab7YYbiouLIYrW5TJEUcT27dvVdu+++y66d++uLlshy9blGURRRHBwMJYtW4apU6dq+qEc6+XlhbNnz6ocLd0xceJEiKKIH3+0LoughBu2bt2KDz/8ELt27cIbb7wBUaxZcmPdunWav2ubNGmSOsuB8k6FhITYtNu0aRNEUcTmzZs12x2FG5QZOwoKChx+3nl5efDx8Wnw/VE+V2faKnx8fNSlTByJMtcMJF+7bQ0bRFtslwTY+90NLC8/h8s3nF+WYsNfL8Er4hDGJH+LSVtPYmLmSXhFHILfFutMIbXDDbIsW2cQiDgE6T9XNeEG//QTGLjmqHqdi9fu4YPD1/DB4Wt4fsXXmLnzlPV6jViWwtl7XWE5B6+IQ7h22zaQFGk6C68Fh3D7XrUmKGA+8CO8FhzC+av38NLaY1j/4UV1poi6QYGkjy8hd18lCvZfwT++vYEbd6qdenaybA03BOd8jxOX7+LE5bs4eOqWusTH0fPapVAaCjc0ps8NLUux74Q11DS/6Az6LD2svhfOhhvW/vcFeC+usHsNIiIiIiIiotoYbqAWsXbre+oyD3nF25BXvA25xdswZXVPzFj7Z7VdYvYyGKPdsTV/Y5Ou0/hwg4SVaW9jfPTvUPzz0hTKkhTbCpI17abF9kbI2heRkbfBrtozUBC1tpYMN6yLX6cGGPr164fiopop+ouLi+Hp6anuVwY8TaUmlBSXwGy2/io8d2cuEtYnQLLUnNdUasKmpE3IzMzUbK8rKysL69etR0JCAnbk7KjZZ7EObo4YMQKCIOAPz/4BJcUlNtPlW8otyEjPQHJycr2zSxQVFSFxQyLy86z38LDDDWXmMpSWlNZcf1cRCgsLYTabNdsfhKNwQ25uLpKSkpCcnIyS4hLNvvKycs22rKwspKelq5+lIyaTCTqdDiEhITbvqiAIiI6OblTfJ06YCFdXVxQWFmq2G/2M0Ol06uc8atQouLm52Swd0bdvX3R9pqv6bAVBQGBgoKZNfn4+BEHAtLes/72xbds2CIKA4OBgTbv4+HgIgoDIxZGNuoeNiRttZjmpL0yQlpaGjh07IjQ01G6AoKS4BKWl9t+N9957D6IoQv+m3ibcEDgpEIIgaN6r8rJyuLu7a0IIZrMZJcUlmhkvnO2bMhuEoi2EGwYOHIjHHnvM5h1S3yWjdTaaX3q4QZZl7N+/H6IoYsiQl9Rww5UrV9CvXz+88847mmNv376NwYMH4+2334Ysawfda7cLCwvDkCEvabYpA8Qff/yxZru9ZSkccSbc4Kjvsixj5syZeOGFF3D9+nWbkIAsW3/9rzyH+sINtYMLyvdnz549Dts44uiZ1FVfuMHZfgcEBKihA2Xb/fv3MWPGDM0AvzKDR3h4uDqbRHV1tTozQl5ent1ww+nTpzUzJCif0ZgxY9Rt6enpatvu3bvD09MTgwYNUvXs2ROiKOLUqVN2r1GfiIgIiKKI7777FrJcE26o/a4oQY6AgADIsox//OMfalil9kwV+/dbly/p378/rl+/jsrKSjz//PN47rnncOjQIbXd5cuXMXjwYLthEEfhBuX5SpLk8F6cnblBeX+UpWWc4czMDfH/fUGduUGWZbyR8i18Vh7BzVrLH8iyjKDt1oHo+1XVToUbqqtl/Dn2KIYlHEf8f19QKYP0Jy7ftQk3yLKM8Wkn0D/miCbcsOVT6wwJn32jHRw/+/PsBk0JNzh7r0oAIP1vlzVtrt2uQt/lX6uzHdQOCty6W43eUYcRln8aXhGHcPzSnUYFBZx5drJsDTcoS1golBkp8r+8otneULjhQfssy7bhhsob9/H8iq/Vz9PZcMO8ojMYus7xUi5ERERERERECoYbqEVMj+tf76wH2YWpkCQJW/OTYIx2R2K244FZc7kJ8za+gYRttoNITQk37CjKsC5N8fP5FmwyImhNH0iSRdNuWmxvzE4Y1urPksgZLRluUH7dLgiCNYhQZ/+GhA3w9fWFr6+v9Rf7kqRO6z9xwkRMnTJVHfgsM5ehtLQUfgY/zWDob3/7Wyxftlxz3k1J1l9S1h0c7tevH3Jzc5GVlWV/iYzhw9VzzJ07F4899pi6z9XVFZMDJ2vCFGaTGWPGjNGcQ/+mXp1+Xwk3ZGRk4Mknn8STTz6J4KBgh8/L2XBDeHg4XF1dUVxcjH79+kEQBKxYvuKhLkuxq3AXBg0apLlXV1dXvPPOO2qbhQsXQhAEbEndgqefflpt5+7ujoSEBIfXys3NxZvj3kRqaqpmuzI4nZyc3Ki+Dx8+HJ6enjbbg4ODIQgCCvILIEkSnu36LAYOHGjTbvr06dZB+Lx8pKelQ6fTYVXMKk2b8rJy6HQ6GP2MkCQJSyKX2MzkIEnWIIqLiwsMBkOj7sFsNmNHzg7syNmBnJycesMNZpMZPXr0QHh4OKKjo20CBMpAfpcuXWyOzcrKQseOHZGyOQX+4/1twg0REREQBAHbs7er2wryC6DT6eDv769uCwgIgCAIeO+99xrVN0mSsHPHTvVevb29Wz3coPz7EBAQ4PDcJcUliF8b32bDDT4+PigqKrJx584dm3CDLNdMwa+EG2RZxs6dOyGKIpYtW4avvvoKFRUVmD17Nrp3765Oge8o3LBq1Sp4eHigurpmgLClwg32+n7gwAFERkZCFEXs2rULsizbDQmcOHECnp6ejQo3XLlyBYMGDcKAAQNw6dIltU1AQIDN8//ggw8052qucIMz/a6oqFDDA7Nnz8batWvx5ptvQhRFjBgxArdvW3/VfePGDbz88ssQRRFGoxFr1qzB66+/roYArl+/7jB48Morr6gzRCjBiFWrVqnv1sGDByHLMlJTU+3OdhAfHw9RFJGSktLocIOy3MPevXshy/bDDZWVlRBF65Iiyrbw8HB1uYtVq1ZhwYIF8Pb2hiiKKCkpsXmnevfujcWLF2PlypXw9fWFKIpYuHChTX8chRsWL14MURQ1IYm69u3bB1EUcebMmXrveenSpZolKcrLy3Hu3FmH7ZUlSPbt21fveZVAgjJgfuDULXgtqsDYzd9iz9FrOHr+NtbsvqAJITgTbvjsG+vA+a792kH2r8/dVoML9sINxy/dgfeiCk244c79ary09hj6LDuMwv2VOHbxDj49eh2vbTxuN9yw4a+XkLO3UsPegLwz9yrLMqZtPwmvhRVI2XMJX5+7jY+PXMPIpOPwXlSBQ2esy9TUDgrIsow5hWfgFXEII5OOQ5blRgUFnHl2smw/3HDpuvU6G2v1X5YbDjc0ps+Onm/dcIMsyyjcX6kul+FsuMGw5TtMz/neZjsRERERERFRXQw30EO3rSAZxmh3rM4Ix7aCzRppufEYH90ZSzZbB/lKzUUIiOmKWesdhwiUAETS9hU2+5oSbpAkCSFrX0R4wmvqkhQx6bNs2jDcQL8kLRluUAa4e/To4fQxSrjh2a7PagbSy8xlGDBgAARBwG9+8xuMGDFCE2BYvtwacCgqKlJDCT169EBYWBiCg4Ph4uKiLoGRn5ePsWPHomvXrhAEAY8//jjGjh2LefPmQZIkddp9ZWkDJawgCALGG8erfR33xjh1e58+fTBixAh07NhR3aaEG9K2pKnbag8I16WEG/wMftievd2GMuNAeHg4XFxc8NJLL6F3796YPXs2duTseKjhhuHDh0On0yFqSRRytucgMzMTAwcOhE6nU2c+UMINz3Z9FgsXLkTO9hysjF6JJ554At26Obf0h6XcgrzcPMSujsXvf//7Zlsaw2KxwNvbG7///e/VbS4uLnaXRFm8aDEEQUDK5hSH54tdbV2uYeHChZAkSZ2VIDfXdgmNZ55+Bi+99FLT+2+R6g03TAqYhBdeeAGSRbIbICgtLUWXLl3Qs2dPzXHlZeXo1auXGrixF24o2lUET09PeHp6IiYmBtHR0XjxxRfx1FNPYevWrWq76dOno0uXLohaEtWovtXVr1+/Vg83rIpZBUEQsDJ6ZYN9aKvhhtq/oK+tsrLSbrihsrIS/fv314QbZFlGWVkZBg0apB4/ePBgfPTRR+p+R+GGrVu32gzgtmS4wV7fBw0apFn+wV5IQJZrBt6dDTfIsozPPvsMoihi5syZqK6udvj8x44dqzmuucINzvRblmUcPnwYRqMR3bt3V5d8iIiIUJdyqP0+zJkzVvNK2QAAIABJREFURw1MiKKIoKAgnDhh/UW6o+DBihUr1OegbFOW3ujXrx+qqqpQVVWFYcOGaWZZUHz11VdqiOLSpUuNCjcoS44oyz3YCzfIsowXXngBPXv2xI0b1mUS7t27h40bN6Jfv37qvQ4bNkzznivef/99NfihLAeRmpqqBjlqcxRumDBhAnr16oU7d+44vJerV69CFMUG/33x8fGBKIqQZWuwISgoqN725eXlEEURV69erbfd9z/chVfEIXxy5Jq67cCpWxi2/ht1UNp78WFs+Ogiqn6e3cGZcENY/ml4Lz5sdzmHYQnH0T/mCCpv3LcJEsiyjPUfXtQM4suyjCs37iNkx/fw+jn44LXgEJaYz2L9hxdtwg32SP+x/xwauldZlnG3qhorys+h15LDarvhG47jPz8HG2TZNiig/L3179YldxoTbnDm2VVVVdsNN9ytqkavJYcxaetJzXZnwg3O9tnR87UXbqiutoYVnA03VFfLeGHlEWz46KJT/xYQERERERHRrxvDDfTQRSZPwsSYZ2Aqsz9VdljCqwiI+SPMP++PSZsFY7Q7NmYvt2lrsVgwO2EYAmK6qctI1NbUcMOajLkYH/07JGyLhDHaHblFWTZtGG6gX5KWCjeYSk3qgL6vr6/TxynhBkEQMHLkSGRlZaGkuAQro1eqswVkZ2er7ZWlJURRhGSRkJSUhP79+6N///5I25KmtlMCCrUHeEeOHAlBENDtjzUD77m5uXB1dYUgCJqB2nnz5qmBB+WX5soMErV/lZ+RkaFuV8INWVlZ8PDwgIeHB2bNsg1IKZRwgyPxa+MhSdZwg/JcLeU1M8k8zHDDoEGDMG2a9t/IZUuXQRAEbE7eDEmqCTeEh4dr2r019S0IgmCzjIU9W1K3qPfbqVMnzWfdVJZyCwwGg/UzVd7/nwMD9sImy5cthyAISNyQaPd8KZtT0LlzZ+uA7M/LlQRNC4IgCCjaZbsMkfgn6/TmTb6HesIN69etx+OPP67OrOBMgEARHByMnj17qktJ2As3SFLN0hq1vf322w2evyl9awvhhrCwMM17XZ+2GG54GM6dO4ezZ89qZmL4pTh37hwuXLjQ6v1oS27evIkTJ07YHZSv7f79+/juu+9w/fr1FunXg7h37x58fX0xefLkJh1fXV2N06dPa5ancKSyshJnzzqeIcERZemOBQsWNNh2xowZCAsLq7dN7ZCFn59fg59TWFgYZsyY4VRf9anfYVbeKZvtP968j2MX7+BeVdv5t+DO/WocvXAbN+40b5+cudeqqmocv3QHV2/V/12ipvvsm+vwXlyBC9futXpfiIiIiIiIqO1juIEeKpO5BAExXbEoeYLDNonZSzVhhlJzEULjfX8OIryFtNx45BdnIy03HrPWD7PO2mAn+CBJTQ83FJTkwBjtjoCYPyI03v4viKfF9kZwXD8kZi+1KzU3rtWfN5GipcINFotFDQm88MILTh+nhBvc3d1hNpvV7f7j/dWp9YODg1VKuEEQBM1AeGlJKZI2JiFycST8x/urgYPas0jYCzcoA7CCIOCtqW+p15kcOFndvnDhQsSsjFH/zkjP0NyDj4+PJtzgLCXcMGLECMStibNRWFAISaoJN6xft15z/MMMNyh2Fe5C4oZEzJ07F+KfRM2yEUq4ISND+zwWLVoEQRCwI2dHg9c1m8zIyspCQkICBg4ciA4dOmBt3Nom30dGRgZ69eoFnU6nzsyhEAQBRqPR7ndEEAQkJmrDDZZyC95++224urrC09MTebl56r7gIOuSF8pnVFu3P3bDiy++2PTPw0G4oWhXEZ566ilERETYvL8NhRuSNyXj0Ucf1by79sINkZGR0Ol0GP7KK9iYuBGpqamYMnmKw2DAg/atLYQb3nvvPU2YqD6/lnAD0S9BVlaW3ZlE2ootW7age/fuNrNJ2LN7927NUh72lJeXY86cOU79O3Tw4EGIoojdu3fX2678K+vMC3uOXoPXogpc/HlA2dGv84keJlmWEZzzPRaVnoMsy1j8838SEREREREROcJwAz1UG7KjYIx2R0beBodtSs3FmLDy/9MsRVFuMWNZajACV/eAMdpdFRzXD2m5jgcimhpukCRJDU7Eb42wu39abG9NX+p6e92QVn/eRIqWXJaidlBB+YV7bRsTN6JHjx7o0aMHIhdHao6pO8Dp6+tb76wGgiAgKSkJZeYyjBs3Tg0zKIGIJ5980qlww+zZsxu8TmhoKObPn6/+XVioHdBWAhdNDTdMmTyl3nZKuGHnjp2a7U0JN+wq3GUNHVi02+uGG+Lj4+Hp6QmdToeuz3TFoEGDMGbMGLvhhrr9aky4oTazyYynnnoKr776auPfP4t1eREXFxd4e3thS+oWmzaPPvooRo8ebbNdGdyufUxGRgY8PT3h6uqK6dOn27zPs2bNsgnYKLp06YKXX3656d8lB+GGcW+MgyiKSEpKwqakTdiUtEldHmNN7BqbkEltf3j2Dxg1apR63KakTXj11VfxzNPPYFPSJvWz6tWrFzw9PWGxWDTH+xn8oNPpUFpif+alpvatMeGGl19+GTqdzubdVSyNWgpBEBAdHW2zr75ww/p16yEIAubPn+/w2qWlpfD19WW4gagNuX79OiwWC06dsp1xoC34xz/+gT179jjdPjAwsMGlJpwVFBSEwMDARh2T9fkPmmUWiFpaVVU1Ev96CWevcNYGIiIiIiIicg7DDdTmFZbuRHZBCopNBa3eF6JfipYMNwRMDFADALV/wa0YPny4un9T0iZIUk24YejQoZq2443jIQgCOnfujPy8fBTkF9goM5epU8rrdDosWrQIuwp3QZIkDBs2zLmZG1bUzNyQlJRk9zqlpaWIjY1V29Wdvr5v374tEm4oLirWbG9KuGHcG+PsLqfwyCOPqOGGnTt2wtXVFb6+vsjPq/nV/ZrYNc0SblgatRTin0S7wQBfX190faZro9+9sWPHwsXFxbpEhoPBb/FP1vXcHb23yjNJTUnFb37zG/Tu3Rvbtm2zey5lKYs1sWs024uLiiEIAib4O56lqEEOwg3Ke+aIo/fPYrE0GOCZ9tY0WCwW6HQ6jBs3zuYcyuwWSUlJdq/R1L41JtwwKWBSve+VEqawF2ypL9xQWFCIRx55xO67oVgXvw6CIDDcQEQPjTLbQnx8/AOdJz4+vsFZIIiIiIiIiIiI2gOGG4iI2qGWDDfsKtyFTp06qWGDsLAwbNu2DVtSt8BoNKqzK4h/EmEpt/4y3FG4YcXyFerAaNyaOM12T09PDBgwAJZyixpY+OMf/qi2KTOXoeszXR2GGzp27IjysnJIknUg38XFxRoymFITMsjKyoK3tzc8PT2xbds2FOQXqMtuDB8+XB1AT9mcYjOAm52djSFDhmDIkCF2Qx6K1gg3TJ8+HYIgIGVzirotIz0DgiCosxooS3DExcXZPfZBww3KQHFISIhme2lpKbp06QJfX99G3dPy5dagQezq2HrbGf2s7+DWrVvVbSaTCc88/Qw8PDwgSdalKHr06IG+ffvCZDI5PFd+Xr7mmSmUGT5iVtrOGuQ0B+GGwsJC5ObmaqhLg6Rn2MwoUlvd43JzczHujXH44x/+iNzcXJQUl0CSJHTr1g2dOnWC2WTWHK8sE6OEh+pqat8aE25YErkEgmBdPqbuvvKycoiiiA4dOsBUavu51RdukCQJgYGBDkNZlnILevfujccee4zhBiJ6qEwm0wMFHJRgg8lkavV7ISIiIiIiIiJ62BhuICJqh1oy3CBJ1oHxDh06OPwFt6urK9K2pKntHYUbJEmCj4+Pepy3tze8vb3Vv2fPng1JkhASEqJuM+gNCA0NRZ8+fdRttWdpmDJlirrdzc0NBoMBkiQhOChY3d71ma4YMGCAGmSoPdCu/HJcEASIoghfX1906NBBDW0o4Ya0LWlqO39/f4fPqrnDDXFr4uDm5oZxb9j+8l6RnJwMQRDg4+OD5ORkxMXF4cUXX7RO57/COp1/akoqBEHAsGHDkJGRgdTUVISEhODxxx+HIAhYsGABzGZzk8MNlnILvL294ObmhokTJiJlcwrWxa+Dj48PdDod1sWv07wDbm5uDmdQkCTrrAFdn+mKldEr7VKCKBkZGXBxcUHPnj0RvSIaCQkJGDp0KARBwJLIJZAk63IcgiBg6pSpds9Ve3mF0aNHq7MepGxOwdy5c/Gb3/wG4p9EmM3WcEBpSSnc3NzQrVs3h/234SDcYE90tHXmkfz8mhk2nL2m/3h/iH/6/9m78+io6gTt4+W0vZw577Rn5tgzdUSJ50ZDJLKFpUkAUUAhIIRNQgySsASIQAzRALKTyBYwBBACSQiEELKnbr/d2o7YMzYKrfTCnBEV32mXplXAVjbF6m4Cz/tHpm7qUlVJgAoJ4fuc8/mDe393rSrPwftwf4ZtWWpqqhwOh6Kjo7V0yVLlbcvTlClTdNttt2nEiBHWuKcmPaUf/ehHysjIuKpzu9LVlBtcrvqSgcPh0JjRY7Rh/Qbl5+dr1apV6tmzpxwOR/2bO/xs21S5obS01Ppv0aiRo7RyxUpt375dK1assP678+yzz1JuANDiPAWHxMTEZr994be//a0SExMpNgAAAAAAgFsK5QYAaIdudLnBNE0VFBTYCgIeffr00fbt221jGys3VFZUaszoMbb9hIeH6+mnn24YU1mpqKgo23H69++vx0c8LofDodtvv936V+i7inYpIqKzNW7QoEH1+3GZ1oNpq+TQoYPGjR2nyspK61gul0sT4ybazicmJkYjRoxoE+WGzJWZcjgcGjp0aKP7S01N1fe//33rHG+77TYlJSbZxkx+arJV2nA4HOrVq5cKCgqsN3MUFhZec7nBNE0V7y7WoEcesR3j3pB7tXLFStu48PBwORwO5efn+92Pq9al22+/vdEpEWqqa6zxL2S9IKfTaa374Q9/qJSUFGv99OnTG93XpIRJ1tjy8nINHz7cdg09evSwFTE8D9XvvPPO5v+GrrPc0Nxj+is3mKapOXPm6I477rAVkibGTbS9ESEurn4qj3nz5l3VuV3pasoNpmmqpKREY0aPsd1zh8OhH//4x3rmmWfkcrn8btdUucE0TVVXVWvsmLG2/w54Ck+e7yXlBgA3wm9/+1vFx8fLMAylpKSotrZWH3/8sW3Mxx9/rNraWqWkpMgwDMXHxzMVBQAAAAAAuKVQbgCAdqg1yg0erlqXtm3dptzcXFVWVF7XfvLymnjt/u5ibdmyRWX7yprcX1VllfaW7LU99PYoKirSzsKdjW5fW1OrvG15PmWDtmDxosVKTk5uclxFeYU25W7SptxNAT+bivIKbd++3VbwqKysVHFxcdDOt7qqWjt27Gj0s42I6GxNIxIse4r3qLCw0Hqrw3VdQ3X9NZSX+/8+lOwpUVRUVKt/N66Kq34qi4KCAmsKmbakuqpaeXl5ys7OVmFhYcBSw7UqLCzUhg0btKd4j2055QYAN9LPf/5zTZs2TYZhyDAMderUSZGRkerUqZO1bNq0afr5z3/e6ucKAAAAAABwo1FuAIB2qDXLDbixioqK1KVLF5+3Y9zMkpOTNXbs2FY/j2vlcrk0YMAALXp+UaufC64f5QYAreHLL7/UW2+9paqqKu3Zs0dVVVV666239OWXX7b6uQEAAAAAALQWyg0A0A5Rbrh1FBYWBvWtCm1Bzos5rX4O16O2pla5ubmtfh4I0udJuQEAAAAAAAAA2gTKDQDQDlFuAIDgoNwAAAAAAAAAAG0D5QYAaIcoNwBAcFBuAAAAAAAAAIC2gXIDALRDlBsAIDgoNwAAAAAAAABA20C5AQDaIcoNABAclBsAAAAAAAAAoG2g3AAA7RDlBgAIDsoNAAAAAAAAANA2UG4AgHaIcgMABEdbLDd89sVJHTx8RK/sP6CXAQAAAAAAACCIXtl/QAcPH9FnX5xs9f8XSrkBAG4BlBsAIDjaWrnhsy9O6rU3Dunkqa90+fJlEUIIIYQQQgghhBBCSDBz+fJlnTz1lV5741CbKzhQbgCAdohyAwAER1srNxw8fEQnT33V2n+/IYQQQgghhBBCCCGEtPOcPPWVDh4+0ur/T5RyAwC0c5QbACA42lq54ZX9B3hjAyGEEEIIIYQQQgghpMVz+fJlvbL/QKv/P1HKDQDQzlFuAIDgaGvlhpf3H2jtv9MQQgghhBBCCCGEEEJukbxMuQEA0NIoNwBAcFBuIIQQQgghhBBCCCGE3Kqh3AAAaHGUGwAgOCg3EEIIIYQQQgghhBBCbtVQbgAAtDjKDQAQHJQbCCGEEEIIIYQQQgght2ooNwAAWhzlBgAIDsoNhBBCCCGEEEIIIYSQWzWUGwAALY5yAwAEB+UGQgghhBBCCCGEEELIrRrKDQCAFke5AQCCg3IDIYQQQgghhBBCCCHkVg3lBgBAi6PcAADBQbmBEEIIIYQQQgghhBByq4ZyAwCgxVFuAIDgoNxACCGEEEIIIYQQQgi5VUO5AQDQ4ig3AEBwUG4ghBBCCCGEEEIIIYTczLlw4YLOnj2rCxcuXPW2lBsAAC2OcgMABAflBkIIIYQQQgghhBBCyM2Yy5cv6+LFizpy5Ij279+vI0eO6OLFi7p8+XKz90G5AQDQ4ig3AEBwUG4ghBBCCCGEEEIIIYTcjLl48aI++OADJSYmKjQ0VImJifrggw908eLFZu+DcgMAoMVRbgCA4KDccO2pq7uogoICvfvuu37XV1dXq6CgQF9//bXf9b/+9a9VUFAQUGFhoW38mTNntHPnTqWlpSkpKUmLFi3SK6+8orq6Or/7//jjj/Xaa6/p0KGDOnPmjM/6v/3tbzp27JiPDz/80O/+vv76a73++us6ePCgvv3228ZuDSGEEEIIIYQQQgghLZoLFy7oyJEjSkxM1NChQzVo0CANHTpUiYmJOnLkSLOnqKDcAABocZQbACA4KDdce/72t7/JMAyVlJT4rPv8888VGhoqwzC0c+dOv9svWbJEhmEoOjpa/fr18/HQQw9ZY9977z117dpV3bt31zPPPKNnnnlGPXr0kGEYSkhI0N///ndr7NmzZzV79mwZhqEuXbooNDRU3bt3V21tre3477zzjgzD8BEeHm4b53a7NXPmTGudYRjq27evjh07dj23jxBCCCGEEEIIIYSQa8o333yjQ4cO6plnnlG/fv20YcMG1dbWav369erXr59SU1N16NBBffPNN03ui3IDAKDFUW4AgOCg3HDtaazcsG3bNvXq1Uvz5s3TkCFD/M7z5yk3eBcTAmXQoEGKiYnR2bNnrWV1dRe1ZcsWGYahHTt22PbbtWtXvfXWW7p06ZLOnDmjuXPn6v7779fRo0etcSUlJRowoL9OnTrlwztz587VT3/6Ux0+fFh1dRd17NgHGjZsmJ577rlm3SdCCCGEEEIIIYQQQoKZ9957T6tWrVKPHj30wgsv6I9//KPq6i7qf/7nf5SVlaXu3btr1apVev/995vcF+UGAECLo9wAAMFxM5cb/v73v+u7776TJOsvLydPnvQZd+nSJV24cEGXLl2ytvvyyy9tY7788ksdO/aB/vrXvwY83uXLl3X8+HFr3r5A5Ya6ujoNHDhQq1at0ltvvSXDMHT48GGf/TW33HDixAkZhqGtW7f6rLtw4YJ69eqlSZMmSapvrYeGhmrz5s22cWfOnJFhGMrLy7Md/+mnn2702B999JEMw9B//ud/2pa//vrrmjp1KtNTEEIIIYQQQgghhJAbnpdfflkzZszQ0qVLdfr0aesfFl26dElff/21Fi1apBkzZujll19uel+UGwAALY1yAwAEx81cbli3bp2io6P16quvqnPnzta0CoMHD9a7775rjfvjH/8owzB09OhRrV27VhEREVq3bp0k6fe//70GDx5sbRsWFqZFixb5zMm3f/9+9enTxxrXt29fvfbaa37LDQcPHpRhGPrv//5v1dVdVN++fTV//nyf829uueHcuXMKDQ1VUlKSLl686LP+1KlTOn78uKT6MkJYWJjefPNN25i6uovq1KmT1q5day0bO3asXnrpJV26dEknTpzwW+zYtm2bIiMjVVfne1xCCCGEEEIIIYQQQloj58+f14kTJ3T69GnV1dXZ1tXV1enrr7/WiRMndP78+Sb3RbkBANDiKDcAQHDc7OWGsLAw9erVS6+++qpOnTql3//+9xozZozCw8P15z//WVJDueG5557Tww8/rMLCQr3//vt67733dP/992vyU0/p3Xff1cmTJ1VdXa0uXbpoypQp1nHefvttGYahOXPm6P3339fnn3+usrIydenSxW+5IS0tTY899pj15zVr1ig8PNw2pYTUUG44fvy4Tpw44cN7TsDFixfLMAzFxMQoPz9fR44ckdvtbva98hQufv7zn0uqLzuEh4crLS3NKm3cf//9SklJ0eeff25tN2/ePCUlJenDDz/UnDlzFB0drREjRignJ+eqjk8IIYQQQgghhBBCSLBy6dIl1dXV+Z0K1nu9502ujYVyAwCgxVFuAIDguNnLDYZh6Fe/+pVt+enTpxUREaFly5ZJaig3DBjQ39bWnjZtmqKionze0lBZWSnDMHTo0CFJUkJCgh5++GGftxfs2bPHp9zw9ddfq1OnTsrPz7eWvfvuuzIMQ2VlZbbtPeWGQLynoairu6iKigqNHDnSWh8eHq7k5GT96le/CvgXOUk6duyY+vXrp9GjR1vX8PHHH8swDI0ZM0avv/66jh07pn379ql79+6KiYnR3/72N0nSpEmT9Pjjj6tv375at26d/u///b9au3atwsLCbAUQQgghhBBCCCGEEEJuxlBuAAC0OMoNABAcN3u5ISIiwufVc5I0d+5cxcTESGooN+zYscNaf/nyZT344IPKysry2fbbb7+VYRjatm2b6urqFB4ebpvOwZMvv/zSp9xQXFwswzB04MABffrpJ/r000/0ySefKCoqSqNGjbJt7yk3vPXWW3r77bd9eN484e+4+/fv16pVq9SvXz8ZhmEVObxTV1en4uJiRUREKC4uTqdPn7bWnTt3TocOHfIpdrz++uu2NzyMGzdOhmGotrbWNq6srMxWACGEEEIIIYQQQggh5GYM5QYAQIuj3AAAwXGzlxsefvhhv+syMzP14IMPSmooN7z66qvW+jNnzsgwDBUUFPjdvnv37lq6dKk1bufOnT5j6urqfMoNMTExjb6N4ejRo9ZYT7nh73//e6PXef78eZ06dcrvuu+++05PP/20DMPQBx98YC3/9NNPFRcXp4iICBUWFvq8dSJQ6uouqlOnTtqwYYOk+rdbhIaG6q9//attXFP3jxBCCCGEEEIIIYSQlsrly5ctTY1pKpQbAAAtjnIDAATHzV5uCA8P9/vgfvbs2Ro2bJikhnLDgQMN+/a8uSEzM9Nn22+++UaGYSgvL88at2rVKp9xp06dspUbjhw5Yr0h4r/+679sDhw4oNDQUK1cudLavrnlhl27dskwjIAFhzfffNP2toUPP/xQffr0UUJCgj777DO/23zwwQe2++HJxYv15YY1a9ZIqi+JdOrUyeceX7hwwbpHhBBCCCGEEEIIIYTcyFy8eFFut1sXL170W2Coq2tY31QoNwAAWhzlBgAIjpu93GAYhl555RXb8jNnTqtz585asmSJJP/lBkmaOXOmfvrTn+qbb76xLd+3b58Mw9A777xjjevbt6++++4727iioiJbuWHp0qV68MEHfaZ68CQxMVHdu3e31je33PC73/3OmibDX3bv3i3DMHTs2Aeqq6vTmDFjlJSUpL/97W8B97l3716Fhobq888/ty1/6623ZBiGXn75ZUkNxYm3337bNs4zfcWvf/3rRs+dEEIIIYQQQgghhJBg5+DBg1q7dq127Nihs2fPWgWHy5cv69y5cyooKNDatWt18ODBJvdFuQEA0OIoNwBAcNzs5YZOnTqpe/fuqqqq0ieffKJDhw5p3LhxCg8P1/HjxyUFLjccO3ZMnTp10oQJE/TOO+/ok08+UXFxsTp37qyZM2da444ePapOnTrpySef1DvvvKOPPvpIu3fvVvfu3a1yw7fffqsuXbpo4cKFAc+3trZWhmHINE1JDeWG6upq1dbW+uV5Y8L8+fNlGIaWLl2q3//+9/r888/14YcfqrCwUOHh4UpOTtalS5f029/+VoZhaOvWrfr1r3/t49NPP5FU/9aJn/70p3r88cf11ltv6fjx4/rlL3+pqKgojRkzxjruxYsXNWnSJPXr10+vvfaa/vSnP+nf//3f1bdvX40dO1aXLl1q9udFCCGEEEIIIYQQQkgwcvjwYS1YsECPPPKI9uzZo88//1x1dXX64osvVFJSosGDB2vBggU6fPhwk/ui3AAAaHGUGwAgOG72ckN0dLReeeUV9e3bV4ZhyDAMjRo1Su+//741LlC5QZLee+89jRkzRqGhoTIMQ927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m2vfd/W4ITo6Wv/1X/9l//m+++5TXFyc22vl7czT4JDB9qUuXGd2eOmll+zH1Na4YXvWdvn5+alz5872benp6Rr4y4H2WShcmjVrppdffrny8xZVDhdat25d7XcWMSxChmFo0cJF9f5zA8AT4wYAAAAAAAAA8A2MGwCgAaqvcUN1srKy9IMf/ECGYah///5u9109bpgwYYIsq3JUsGnTJlnFVb9mcVGxkpOTlZ2dXS+fKS8vTxuTNiohIUGbN2/m7AtAA8S4AQAAAAAAAAB8A+MGAGiAfGncsGrVKj300EO6++67ZRiGGjVqpOSNyW6P8TZuAABfwLgBAAAAAAAAAHwD4wYAaIB8adywMnGlPVz40Y9+pOnTp3s8hnEDAF/FuAEAAAAAAAAAfAPjBgBogHxp3FBYUKi0tDRlbM2o8jHFxZWXl6jPS0wAgDeMGwAAAAAAAADANzBuAIAGyJfGDQDwfca4AQAAAAAAAAB8A+MGAGiAGDcAQO3wxXHDJydOaf/BEr25Z592AQAAAAAAAEAtenPPPu0/WKJPTpyq9/8vlHEDANwBGDcAQO3wtXHDJydOaffeAzp1+owqKipEREREREREREREVJtVVFTo1Okz2r33gM8NHBg3AEADxLgBAGqHr40b9h8s0anTZ+r732+IiIiIiIiIiIiogXfq9BntP1hS7/+fKOMGAGjgGDcAQO3wtXHDm3v2ccYGIiIiIiIiIiIiqvMqKir05p599f7/iTJuAIAGjnEDANQOXxs37Nqzr77/nYaIiIiIiIiIiIjukHYxbgAA1DXGDQBQOxg3EBERERERERER0Z0a4wYAQJ1j3AAAtYNxAxEREREREREREd2pMW4AANQ5xg0AUDsYNxAREREREREREdGdGuMGAECdY9wAALWDcQMRERERERERERHdqTFuAADUOcYNAFA7GDcQERERERERERHRnRrjBgBAnWPcAAC1g3EDERERERERERER3akxbgAA1DnGDQBQOxg3kC83b948vf766263lZeXKzIyUkeOHKmno/r+dOnSRaWmpqq0tLTKx/zrX/9SamqqysvLb/n9jh8/rtTUVJ09e9brn325GznW1157Tbt3774NR0VEREREREREdR3jBgBAnWPcAAC1g3ED1Vf/+Mc/FB0drX//+99e7z9+/LiaN2+uTz/91O324uJi9enTRxUVFbfjML/XffvttzJNU1lZWVU+5te//rVM09Rnn312y+934MB+maapDz74wOuffbkbOdaIiAhNnDjxNhwVEREREREREdV1jBsAAHWOcQMA1A7GDVRfvfPOOzJNs8ozMKxdu1Yvvviix+3Dhg3Tli1b6vrwGkSMG2oe4wYiIiIiIiKiOzPGDQCAOse4AQBqR0MaNzidTn333Xc1ur28vFyHDh3S+++/r6+//rrK1ywrK9MHH3ygS5cuetx34cIF+/aKigqdOHHCfr+LFy/a//vQoUM6d+5cle/xySef6H//93915MgRXbp0ye2+7777Tt98842kyksM/Otf/1JZWZnbY06ePKn33z9c5WUFLl26pKNHj+rzzz/3en95ebmcTqf952+//Vbffvut/efTp0+7ff7Lly/r448/1kcffeRxvFdX3eOcTqfeeustmaap0tJSj2O/dOmiunTpoj179rjdfuTIEQUEBNif5bvvvtOFCxfs5xw5ckSnTp2q8pguXryo//u//9Pf//73Ks8YcfHiRR09elTvvfeezpw54/UxVf38XL58WeXl5R4/L99++619nK4qKiq8Pva7777TBx98oNOnT3u8r+v1L1++bD/26lFCRUWFjh8/rsOHD+vixYtexw3X/n1fPW64dOmi3n//sD788EP7Z9hbJ0+e1LFjH3ncfiPjhq+++kqHDh3Sl19+6fUz3u7vsLpjPXPmjEpLS+2/a8YNRERERERERA0nxg0AgDrHuAEAakdDGjf07t1bCxYs8Lj9ySef1Kuvvmr/OSkpSa1atZJpmjJNU61atdKGDRvcnnPq1CmNGjXKfkybNm20ePFi+xeiktSpUydlZGRo165d+vnPf66QkBD7OJKSkpSYmKgWLVrYrzFnzhy3X/K///5hPfvss/b9pmmqS5cuKikpsR8zb948jRgxQrt27VKbNm3sx61YsUKnT5/W4MGD7duCgoL0hz/8we1zFBQUqH379vZjBgwYoEOHDtn3l5eXyzRN9ejRw75typQpGj9+vI4ePap+/frJNE198cUXkqTc3Fy312vTpo0yMjI8LhFxvccNHDjQ7XMHBAS4Pf/tt99W586dPX7BvmzZMsXGxtp/Xr58ubp27arf/va3atmypf16ffr0UWlpqdtzd+3apS5duri9b1hYmNvo4+2333Z7jL+/vyZOnOj2S/Xqfn7Ky8vVsmVLLVq0yO29hw0bJtM03X7ZXlpaKtM0deDAfkmVg48FCxa4/cz07NlTBw4csJ9z9OhRmaap9957T8uWLVOrVq20fPlySdKePXsUHBxsP7dz587avXu327jB29+3a9xw7fdz7c+iJJWUlKhPnz5ujykuLrbvr8m44eTJk4qOjnb7e4iIiNDx48fr9Tv0dqxHjx7VoEGD7Ndq0aKFUlJSGDcQERERERERNaAYNwAA6hzjBgCoHXfauGH//spfYG7atEmff/65Tp48qcTERJmmqXfffVdS5S9Ie/furYiICJWWlur06dMqKipS27ZttWzZMvt1O3XqpNjYWAUFBWnlypXau3evfRxdunTRxIkT9f777+vjjz/WokWLZJqmfSaCS5cuqVu3bhowYID+/Oc/69y5cyotLVXv3r01bNgw+z3mzZun9u3ba/DgwSopKdHp06e1dOlSmaapn//851qzZo2OHj2qw4cPq1+/furZs6f93Ly8PLVo0ULZ2dk6deqU3n//sGJiYhQUFGSftcDpdKpHjx4aOnSo/bwpU6YoPDxcffr0UVxcnAoLC3Xx4kVt27ZNpmlq0aJFOnbsI3388cdasWKF/X26qsnjSktLtWXLFpmmqaKiIv3lL39x+zuLiYnRmjVr3G775ptvFBQUpP3799u3LV++XAEBAerUqZN++9vf6vTp0/rrX/+qwYMHKzAw0P6cR48eVfPmzRUbG6v33ntPZWVl2rNnt1q0aKF169ZJqjyTQIsWLRQbG6vjx4+rrOycXn/9dQUGBmr9+vU1/vmZOHGi+vbtax9jeXm5AgIC1KJFC+3atcu+ffPmzWrfvr19VpEJEyaoZcuW2rFjh06ePKlDhw5pzJgx8vf3t78f1y/mp0+frl69eiktLU2HDh3Sn/70J5mmqYkTJ+rQoUP69NNPlZOTYw9iXOMGb3/frnFD165d9etf/1qnTp3SH/7wB3Xv/gsNHDjQfty//vUvBQQE6JVXXtGxYx/p+PHjWrlypfz9/fXWW29Juv64oby8XN26dVPPnj21d+9effbZZ/rjH/+oPn36KDg42B7R1Md3eO2xlpWVqUOHDnr66af15z//WadPn9bevXvVo0cPtWjRgnEDERERERERUQOJcQMAoM4xbgCA2nGnjRt27twp0zTdzl5w6dIlJSYm2v91d3p6utq2bauyMvdLSeTk5CgwMNC+LESnTp3k7++v9957z+M4evTo4XZph/LycrVu3VqrV6+WJH366acaMWKEPYhwtWTJErVv397+87x58xQQEGBf8kKSzp49a//X7leXmpoq0zR14cIFXbhwQR07dtTatWvdHnPhwgX16NFDK1eu9PYVSqocN5imqYyMDLfjDwoK0vjx4z0eP23aNLVp00ZlZWU1fpwkvfPOOzJNU0eOHHF73MmTJ9W8eXP7v+R3tWvXLvXq1cvt7BfLly+XaZp6++233R577tw5tWrVSvPnz5ck/fd//7einn9eJ0+edHvcM888o5dfflnSlV96Z2Zmuj0mJydHubm5kmr28/P666/LNE37+N9991116NBB06dPt49HkkaMGKG4uDhJlWdEuPY7lyoHHb169bIHL65j7N79Fzp//rz9uMjIyP//3bif6cI1NLn6shTX5ho3uD6jq40bN8o0TfuSITExMRo2bJjHWTpiY2MVFhYm6frjBtfP6LX/zLjGJ66hSX18h9ce64YNG2SapsflNw4dOmQPSYiIiIiIiIjo+x/jBgBAnbud44alS5YqOjraw7Rp07Rm9RoVFhTW+/dR3fGuXbPW4zGFBYUaNWqU/ZiYmJhaPYZZcbMUHR2t6dOny7IsrUhYYb/XtY/dtGmTxo8frxkzZsiyLE2ePFnR0dGa+6u5tXY8o0ePVnR0tJYvW35Dz1u/fr3Xv3uX2NjY6/5djB079paPPzMzU9HR0UpMTLytP0t5O/OUkJCgmTNmKmF5gooKi27p9bamb1X8K/GaO3euUlNTq3xccnKy5syeowWvLlBmRqbXxxTkF2j1qtWKmxmnhOUJKsgv8Pq43JxcLVu6THFxcVq9arWKi4pv/bsptjRlyhRlZno/Nre/u4xMxcbGKj8//4bfJz4+XokrvP+dJ21I0qy4WVq4YGGV39G1srKytG7tOg932rjhxIkTat++vdq3b6/Fixfr7bff9hgxvPTSS+rfv79ee+01N65fzO7evVtS5bghOjra63HMmDGj2uO4utOnT+tPf/qTtmzZouDgYLVp08a+b968eW7/BbskfffddzJNU1u2bHG7PTc31/5ltOsXsCtXrvT4HM8995wGDBhQ1deoKVOmqGXLlvrmm2/s29577z2Zpqnf/e53Ho/ft2+fTNPUwYMHa/w4qepxQ3JyskaNGuXx/JEj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AAAAALQFwg0A0AERbgCAttHRww11dXXKy8tTcHCwPvvsUzmdrQ831NTUaOTIkZo6dar++9//6vLlyyotLVWfPn20bds2OZ1O/eMf/1BwcLD27dunK1eu6OLFi9q5c6eCg4P1z3/+MyDXxlu4oba2Vu+++67i4uL07bff6ubNm/r++++1YcMG7dy50xjncDi0dOlSORwOXblyRefPn9e+ffu0cuVKU2jB33Hewg0xMTHKyMjQDz/8oJ9++klHjhxRRESEvv76a2NccnKyoqKi9OWXXxpdMzZu3KiVK1cSbgAAAAAAAECHQbgBADogwg0A0DY6UrjhxRdf1IIFCwyzZs3Syy+/rIEDB+rTTz81xrY23JCTk6M+ffro+vXrpv0OHz6s559/Xjdu3NCRI0cUHBysY8eOGdtra2u1c+dOff755wG5Nt7CDdeuXdPu3bv1zTffmMYePXpUq1atktPpCnOsXr1a+fn5pjH379/X2rVrjdCCv+OcTu/hhvXr15uWlqipqdHKlStltVrldDp15swZRURE6H/+539M858/f14RERGEGwAAAAAAANBhEG4AgA7oUcIN2zNLNDQiW93CU9DJDY3I1vbMkoAXl4FA6kjhhiFDhmjNmjWG6OhoTZo0ST179tTWrVtVV1cnp7P14YaIiAi99tprKi8vN8nKylJwcLA++OADXbhwQf3791f//v0VHx+vTz75xCMM8aT5Wpai3o0bN3TixAl9+OGHWrNmjSIjI+V0NoQKqqqqPPbJy8szQgv+jnM6vYcbDhw44LHfe++9p8OHD8vpdOqDDz5QRESEampqPMatX7+ecAMAAAAAAAA6DMINANABtTbcsD2zJOAFdbQ/BBzQmXWkcIO3ZSmcTqcSExMVHBysf//733I6Wx9uePPNN9WzZ08NGTLEq9LSUjmdTv3444/aunWrXnnlFQUHB+vZZ5/V4sWLdenSpYBcG1/hhr/97W/asGGDVqxYofj4eOXm5io1NdUIN3z99deKiIhQdXW1x5zFxcVGaMHfcU6n93BDYWGhx37u4YajR49q2bJlXs8tPj6ecAMAAAAAAAA6DMINANABtTbcQMcGeDM0IjvgBWYgUDpDuKG6ulrBwcFGhwBf4YaTJ082GW5YtmyZpk+f3qLjunz5sg4cOKDnnntO8+bNC8i18RZu+OabbxQRESGHw6F79+4Z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rdGvxxb70qIPTZTcLjHb25Zh38rKOr6X2OOe05l9teY9w5SOni3NTc14UP4Ad+/cVQzVZFD1pAqLFi2yal22fAa8kWdii77xvqrW+Jnf4b7WN6Oixvw7VlOzhPtVDbhVqZMDFa+isUlCyaMXaGi03XtZdV0Tcu/V4a87tSaHqVAcj8YWlD7p+H50v6rBYrmY09IiofRJA5qaO/c9W5czERG9XvauE2W4gYiom2O4gYjINhhuIHvatGkTfAb7KCqQn1Y/xahRozr8VTdRd8Zrg4iIyLKW5hYsW7YMZ348Y/dtMedUbrVRDwREAadtFKIiIiKbsnedKMMNRETdHMMNRES2wXAD2dPtW7fh7e0NHx8fbNmyBd988w18Bvtg4MCBuFlkvuteou6O1wYREZFlzU3NuJF/w+7bQURERN2DvetEGW4gIurmGG4gIrINhhvI3p5WP0XC8QR8u/lb7NyxE4kJiaipMd99M1FPwWuDiIiIiIiI6M2wd50oww1ERN0cww1ERLbBcAMRERERERERERH1ZPauE2W4gYiom2O4gYjINhhuICIiIiIiIiIiop7M3nWiDDcQEXVzDDcQEdkGww1ERERERERERETUk9m7TpThBiKibo7hBiIi22C4gYiIiIiIiIiIiHoye9eJMtxARNTNMdxARGQbDDcQERERERERERFRT2bvOlGGG4iIujmGG4iIbIPhBiIiIiIiIiIiIurJ7F0nynADEVE3x3ADEZFtMNxAREREREREREREPZm960QZbiAi6uYYbiAisg2GG4iIiIiIiIiIiKgns3edKMMNRETdHMMNRES2wXADERERERERERER9WT2rhNluIGIqJtjuIGIyDYYbiAiIiIiIiIiIqKezN51ogw3EBF1cxu37iQiIhtguIGIiIiIiIiIiIh6MnvXiTLcQETUzW3cyp4biIhsgeEGIiIiIiIiIiIi6snsXSfKcAMRUTfHcAMRkW0w3EBEREREREREREQ9mb3rRBluICLq5hhuICKyDYYbiIiIiIiIiIiIqCezd50oww1ERN0cww1ERLbBcAMRERERERERERH1ZPauE2W4gYiom2O4gYjINhhuICIiIiIiIiIiop7M3nWiDDcQEXVzDDcQEdkGww1ERERERERERETUk9m7TpThBiKibo7hBiIi22C4gYiIiIiIiIiIiHoye9eJMtxARNTNMdxARGQbDDcQERERERERERFRT2bvOlGGG4iIujmGG4iIbIPhBiIiIiIiIiIiIurJ7F0nynADEVE3x3ADEZFtMNxAREREREREREREPZm960QZbiAi6uYYbiAisg2GG4iIiIiIiIiIiKgns3edKMMNRETdHMMNRES2wXADERERERERERER9WT2rhNluIGIqJtjuIGIyDYYbiAiIiIiIiIiIqKezN51ogw3EBF1cww3EBHZBsMNRERERERERERE1JPZu06U4QYiom6O4QYiIttguIGIiIiIiIiIiIh6MnvXiTLcQETUzTHcQERkGww3EBERERERERERUU9m7zpRhhuIiLo5hhuIiGyD4QYiIiIiIiIiIiLqyexdJ8pwAxFRN/e/GG5IS8/A6r3xGLMqEt6LwzDKPxKLd8QhKVVj920jop6rp4YbLl++jMyTmbLvT32Pe6X3FPPk5uQi82QmmpuaFdNv5N9A5slMNLzQb2/myUxkZ2ebXE9RUZFiPW1VPalSzFtaWmp23syTmfjpwk/IPJmJmpoaxfd09TpknszE1StX8eTxE+X3MjPx5x9/Kr7TmW0iIiIiehsUFhTiePxx7N+/H2lpaairrTOa5+GDh9CkaxAYGAhthhYVFRWKz/Ov5yPzZCYqKyuNlp15MhMtzS2QJMnse9LtW7fld632742VlZXIPJmJ/fv2IzYmFnfv3FV83pn3yrbOnT2Hp9VPTZZJxcMKZJ7MRP71fEiShLraOovvkiUlJfJ7YH1dvbycluYWXL58GYcjDiMyMhK/X/4dUkvrehobGpF5MhOXfrukWH9zUzMyT2aiqLDI7ucHERER0auyd50oww1ERN3cq4QbVuw+hmHLIl5bQ+HENVGYszlWMe14cjpcZ4ei14RADF4agY9XRsJpRgh6jQ+E+DQEUfFpdm/gbC8wKhnei8Peym0jItvpqeGGObPnQAgBtVoNtVoNZ2dnCCEwevRolJWVQZIkfLv5Wwgh8EL3QvHdgIAACCHkimYhBL5e97XJ9YSFhUEIYVLWtSzFvGlpaWbnFUIgISEBQghs375d8b2DBw9CCIFff/kVf/35F4QQUKlU8r4JIdC3b1+5Qroz20RERERkT81Nzdi7Zy+EEBgwYAAmT54MtVqN/v37o7CgUJ7v+1Pfw93NHW5ubvD19YWrqyv69OmDM2fOyPPs2rULQgj4+fkp1hEUFAQhhBwwMPeedCT6iPyulZ6eLn//4k8X4eHhARcXF0yePBkDBgyAk5MTYo7EyPN05r3SyclJfo9TqVRwcnLCvHnz5PCFwc4dOyGEwLhx4yBJ+qCspXfJ+GPx8nvg/Xv3IUkSnlY/xfz58yGEwMiRIzFi+H8ghMDixYtR81Qfjq2pqZG3yxCkkCQJL3QvIIRAcHCw3c8TIiIioldl7zpRhhuIiLq5Vwk3zNgYg/enBL+2hkKPeYcwcvlhxbT/Wx2Ff0wMQsiRVMX07QcT0Wt8IAYuDrd7A2d7215u28HYVLtvCxG9Pj053DBkyBDFtBv5N9C7d2/s378fkmTbcEPxzWLU19UrtP/lXnNTs/xZbEwshBD466+/5GktzS3w9/eHSqVCUZG+Mr+8rBwuLi5Yvnw5JEkyWeFeWVmJESNGYMTw/3R6m4iIiIjsKTk5GUIIxMbGytPu37uPgQMHYtSoUZAkCcU3i+Hk5IQVK1bI7206nQ5+fn5QqVS4U3IHktQabhBC4Py58/LyTIUbvvrqK6P3pKbGJqN3rbKyMqjVaixcsFDuDaGxoRGbNm2CEAIFNwogSa/wXtkiISkpCUII/Pbrb/L0F7oX8PT0xIwZMyCEQF5eHqQWSd7W3NxcCCEQeThSsf3tww2rVq6Cu7s7/rj6h7zsy5cvwc3NTfS2WqgAACAASURBVN4OQ7hBCAFfX1/5fZHhBiIiIupO7F0nynADEVE315VwQ0aGFilpGZi24QjemxKMlLQMpKZnGM135HgaIuLMN+gnn8hASHQqQmNSFENKaDIykJKWgb5fHMTw/0YgJS0D6S+X7zzzAPovDDO5vMFLI9BrQmCXtkWr1SI1Xb89kfEnoMnIMPosXZMh73/0cWUvDMeT0xEakyLP0/Z7m0IS0Gt8IAKjUpCSZrxtRNQ9MNygnD548AeYM2cOJMm24QZDBbK1Eo7re2lo++s4SZJQWVEJd3d3fP7ZZ5AkCf7+/nB3d0fFQ323y6bCDZIkYePGjfK+dHWbiIiIiN6oFgkDBgzA9OnTjT47e/YMNm/ajJqnNVjpvxLubu5GQ3dVV1XDxcVFfk/btWsXHB0dsWDBAgwZMkQOI5gKN5h7t2v/rrXl2y1QqVSorFAOdVH1pAqbN22We856lffK0rv6HhnCw8Llaad/OA0hBG7fuo0BAwZgy7dbFN+5WXRTHwqJiVVMb/seePvWbQghEBIcYrSfe/fshaOjI0pLS+Vww8IFC+Ho6Ij4Y/GQJIYbiIiIqHuxd50oww1ERN1cV8IN8cnp6DU+UGHw0tbhKfZGJqP3Z6HyZ47TQrB6b7xiGXM2x+IfvkHyPP/wDcLszTHQarXYGJxgtPyF245Cq9Wi7xcH8d6UYMQnpxttV2KKBhFxqXIQwtptST6RgTGrItFrQuv6/vl5KL4LS5LneX9qMBbviMO6/cchpgbjX3NDodVqEZuQhkGLw+XvvTspCJPXRSMjQ/8919mhyn2ZEGj3Blgiej16crhh8OAPUFlZicrKSpSVlSE2Nlbxy0Bbhht2796N8LBwWWJCosXtMxdukCQJ8cfiIYTA1q1bIYTA0aNH5c9MhRsqHlZg2LBhcpijq9tERERE9CY9fPAQQggcjjhscb4Rw/+DL774wuRnM2fOxNgxYyFJreGGe6X34OLigoCAAEiS6XDDhAkTFO9Jx+OPQ5KM37UmTZoEX1/fDvelM++V/v7+8jvqreJbWP/1ejg5OeF63nX5e/Pnz8fkyZMhSRJ2bN+Bvn37Qlevkz+3JtyQeTLT7LBkV36/AiEEzpw5I4cbIsIj8O3mb/XB2ooKhhuIiIioW7F3nSjDDURE3VxXwg3p6RnYHZGE0f6ReHdSMHZHJCE0JgVarRahsanoNSEQ49dEISJO3wvCjG9i0Gt8IDaFJECr1WL7If0wDV9siUVcUjpiEtIx/Zsj6DU+EDvDkhCfnI7dEUlwmRWKAYvCsDsiSe4pYfXeePQaH4j3pwZj2oYj2HYwEcdNBB2s3RatVt/jw7u+QVi9Nx7Rx9OwMywJnvMP4d1JwYhJ0C/7/anBGLE8Au9NCcaMb2Lw7YFEpKZnwHnmAXgtOITAqBTEJqZh1Z54vDspGFPXR0Or1SIwKgULtx1Fr/GBWL0nHgERSZ0ubyL639CTww2mxiKeM3uO3NWuLcMNI0eOxJgxY2QLFyy0uH2Wwg3NTc3wnegrV7y3HUrCUOHu5uYGT09P9OvXD46OjnBzc5O7X+7qNhERERG9STfyb0AIgcREywFMdzd3+Pv7m/zMz88PXl5ekKTWcIMkSTgccVg/1FdhkclwQ9++fRXvSfPmzYMkGYcbhgwZoghW/PrLr/D09JRt2LABktS590pTQg+Eyt95UP4Ajo6OiIuLgyRJyM7OhhACJ7Un5XmsCTcYgr23im8ZlVvBjQJ92SckKsINNU9rMGDAACxfvpzhBiIiIupW7F0nynADEVE315Vwg8GMjTF4f0qwYpqPXzj+veCQ3HOBwYjlEfCYdwharRbLd8eh1/hABEenyJ9rMvTDXOw41Nr47zHvEEYuP2y03u2HEjFoSbiipwWPeYfgtzNOMSSFNduyLzIZvcYHYsXuY4p5QmNSoP48FOsDj0Or1Ycbeo0PRGCbbV60/SjenWTci8SyXXH4x8RAOXSx7aA+zHEw1vKwGET0v60nhxsGDRqEe6X3cK/0Hm4W3cT+ffsVFeiGnhHqausU3925YyeEEHLXx29yWAqDH0//CCEETp06pZhuqHBf//V6nEg9gROpJ/DLz7/g8aPHr7xNRERERG/S82fPIYTAnoA9Rp/99edf2LVrF6qeVMF3oq/Z3hPGjhmL6dP0w1q0DTc0NjTi448/xtSpU7F///4uD0sxd+5cDB8+XP78UeUj/HThJ/x04Sf0798fK/1XQpI69165bNky+R31et51eTiI4pvFkCQJ4WHhEELg008/xcIFCzF//nwIITB71mx5udaEGy7+dBFCCFy8eNFoP8+cOQMhBC5fvqQIN0iSJPf4cPbsGYYbiIiIqNuwd50oww1ERN2cLcMNGRlavDspGMOWReCrffEKY1dFotf4QMQlpSP6eBrenRyEdyfrh3DYHJJgcpgJc+EGg+QTGdgZloQ5m2PhNkc//EOfuQeRlKqxelsWb9cHLcz1/mDw/tRgDFwcrpg2dFkE/vl5qNHy52+NRa/xgdgQpA9GMNxA1DP05HCDYZgGg+amZnh4eGDt2rWQJEn+NVteXp5ivrlz58q/AJQk+4QbDJXR586eU0w3NSyFrbaJiIiI6E2bPn06Bg4ciPr6esX0ZV8ug7ubO5qbmhESHAIhBG7k31DMY+jRwNAo3zbcIEkS/vzjTwgh4DPYp8vhhtgY/fvild+vKOZ7+OAhnJyc5HDDq7xXGnqwSEtLg9QiYdiwYRg3bhwOhByQGQIOpaWlkCTrwg1Pq5+ib9++8PPzM9rPBQsWwNPTE89qnhmFGyRJwpw5c+RyY7iBiIiIugN714ky3EBE1M3ZMtxwPDkdvcYH4t1JQRBTg00KO6pv4I+OT8PUr6PR+7NQufeFIX7hiE1Ik5fXPtyQmp6B2MQ0pLfpncEgI0OLL7boQwVLd8ZZvS1Tv45GrwmBHe7r+1ODMXFttGKa+5xQ9JoYaHb5q/bEQ6tluIGop2C4QTn9448/lrsWLr1bCldXV4wdMxZnfjyDP67+gb179kIIge3bt8vfMfxyLjk5WaHkdolcgRweFm70uaVwwZsIN3R2m4iIiIjetLy8PDg7O2P6tOm49NslFN8sloeRMDS21z6vhY+PDwYOHIjvT32PW8W3kHkyE/3798ewYcPkYET7cIMkSVj/9Xp56IeuhBsaXjRg9OjR6NevHzTpGpTcLsHlS5fhO9FXEW7ozHtl+3U/fvQYQggcjjiMK79fgRACGZoMxTxFRUWKoIE14QZJkhAXFwchBL755hvkZOcgOysb69atgxACSUlJkCTJZLjhTskd9O7dm+EGIiIi6jbsXSfKcAMRUTdn62Ep3p0chNmbYzq1nNjENH0PChMCMWhJa+8I7cMNgVEp6DU+UB4qor3kExnoNT4Q/7c6yuptWbjtKHqND0RiikYxPSNDi+0HExERpw8kvD81GDO+US5r+H8j4LXwUIf7x3ADUc/AcINy+vz589GvXz/odDpIkoRffv4Fw4YNkyu9nZycsGnTJsWvB82NjZx2Ik2uQDbl7NkzZrfvTYQbOrtNRERERPaQl5eHsWPHyu8rLi4uCAsLQ3NTszzPo8pHWLRoEVQqFYQQUKlU8PPzQ9WTKnkeU+GG6qpqeHl5dTncIEkSap7WYPny5XB2doYQAo6OjtixfQdCQ0PlcIMkWf9e2X7djQ2NcHNzw6KFi7BmzRq4uLjg+bPnRts2btw4+Az2QXNTs9XhBkmSoEnXwNvbW96ugQMHKoY+MxVukCQJoaGhDDcQERFRt2HvOlGGG9pIT0vHoUMHsWP7DuwJ2IPIyEikp6fbfbuIiF6FrcMNQ5dF4F9zQ5GRoZx3+jdHMMQvHBkZWsz9Nhbei8KMljdsWQT+37QQ+e/24YYT6Rn4x0R9AEKTYdx7Q1C0PvzgtzPO6m3ZGZaEXuMDsfJlLwsG2w/pAwlB0SnQak2HG5bsjMM/JgYh9v+zd+9RTZ2J2sDj9PTMrK6zzqyu1XMOq/2onU25DCqDSvFCcRCoSBWKaEXEKlIVrYpWq2i9iwgiYgQRQUSucieb1Dqdoq21U6fTTgdrW2+11qlVod4vKErk+f5Is2UbAgETNobnWeu31pDsvNnBKSHvfnjfkirZ7StTi9FnSjoKSvVbXbDcQNQz9NRyQ0c03WvC+XPncfLESaMlkYmIiIioa1y9chU/nPoBdxvvmjymoaEBp74/hdsNt7v8/O7cvoPvT36PWzdN/77YnX+vPPfzOVw4f0Hx8yAiIiJSgtJzooqUG0JCQrB58+Z2j8vJyUFoaGinniMvLw+ixvzjFy5YiMGDByM8PBxz58zF9OnT8dprr2HIkCFYvmy54hcniYg661HKDdPj9NtAxKYUYXN2GbRaLbbuqoD9GDV8Y7KQnFWGbXkV+lUZQtRYt60EWq0Wa7bqL/aPW5qD9LwK7NpdhVVpxfhDWCpeXZgtjf/yW5n44+R0rEorxo7CSmi1WizYWAj7EDWGzNyONVtLkF1UiayCCsSmFMExIg1OEVuRX6Ix+1y0Wi0Gz9yO3mO3YGFyETILKvBOchFcJ6fDe3aWdExr5YYKTTUcJ6ahz5R0rE0vkc7jxfA0RKx8cOym7DLYh6gxeVUu4tJLOv39JqLujeUGIiIiIiIiIiIi6smUnhNVpNzw2muvISUlpd3jcnJyEDqmc+UGP18/lJeVm3XsnNlzEBISgoryCqP78vPzERAQgHcWvqP4BUoios54lHJDVkEF+kamw36MWlYESMku098eooZ9iBoDpmVgVnyB7LFzEwsgTEiTjrEPVSNwQTZKKx5sD7EytRgvhuuPiV6XL93+rno3+kx5ML59iBr2Y9QIeHsHdhbJV1Ew51xKK0SMficbz4dukY4bPHO7VKjQalsvN2i1+i01vGdnwX6M/nHOk7YibFmO7HVUaqrhPTtLP/4YteIXYInIOlhuICIiIiIiIiIiop5M6TnRbl1uqKqs0q/A0InnMLfcoKnSoE8fV1RWVJo8prSkFH/6kzsKCwoVv0hJRNRRj1JuaE9phShtzdAasboaucUa7CisRHmV8TYTbamu1iK/RIOU7DJs3VUhKxN05lwM55NdVNnuWK1e1NRUI2d3VYcfR0S2g+UGIiIiIiIiIiIi6smUnhPt1uWGtmg0Gmg0GpP3m1tuyNyeCT9fv3aPm/zGZKxdu9b0+VSZPpfWzt0ax4qi2KGtOIioZ+hMuSE5q0y+agJ1SMtVKIjIdrDcQERERERERERERD2Z0nOi3brckJ+Xj+gZ0bLbFixYgBEjRiA4OBhBQUF45ZVXsGjRIumifnR0NIJGB8HJyQmjRo1C0OggJCUlmXyOsrIyuLi4tFtOyN2Vi53ZO2W3FeQXICwsDIGBgQgODsaoUaMQMTECebnGq02kpqbitdde059TUBBGjRqF5cuXGx03/vXxEEURGxI3YMSIERg1ahRGjRqF1157DVvUW1o9t5SUFIwJGYOgoCAEBQVh9KjRSExIVPyCKhF1D9ZcuYGIqCdhuYGIiIiIiIiIiIh6MqXnRLt1uSEnJwehY0Klr2NiYjBjxgzZagZVlVV4M+pNzJ83X/ZYc1duEEURYWFhiIiIaHNriodlZGTg5ZdfRnp6uvz2bRn485//jPz8fOm21atWI3BkIIp3F0u3aao0iIqKwuQ3Jsse7+XlhVUrVyEyMlJWuCgpLkFgYCDWrpGvHrFyxUqMCRmD0pJS6baysjKEhobqSx/d4MIqESmL5QYiIstguYGIiIiIiIiIiIh6MqXnRB+rcoOPjw/Ky40LCxqNBi+//LLsto6UGzRVGsyYMQMvvfQSIiMjkZiQiKKiojYf4+/nj+wd2a3el5SUhGlvToMoiijeXQxvb29UVVa1emxYWBiSk5Olrz09PREeHt7qsZUVlfD29kZZWZk0to+PT6urTmg0Gnh7e6OgoEDxC6tEpCyWG4iILIPlBiIiIiIiIiIiIurJlJ4TfazKDeHh4cjI2NbqsfHx8bKvO1JuMCgrK8P69esxbdo0+Pj4YMiQIYiIiMDWtK2y47aot0jbR7RGU6VBbGwsRFG/2kRr20+0fI0jA0ZKX/fr1w/JG5NNHr9wwUIsXbJUGnvN6jUmj12+bDnmz5+v+IVVIlIWyw1ERJbBcgMRERERERERERH1ZErPiT5W5YaMbRkYOnQoFixYgJydOW0+tjPlhodVVlRiffx6+Pv7Y/z48dIKCUuXLMXSpUvNGiN0TChycto+15arTvTr1w8lJSUmj92athWTJ0+Wxs7LzTN5bEZGhslVIIio52C5gYjIMnpquaGu/iIOfXkYe/d9ivdrDhIRERFRF9m771Mc+vIw6uovKj6JTWQt0ueNbvDfHNHjbm/NQb5vEJHVKT0n+liVG0RRRGlJKRYtWoSgoCC89NJLCAkJwdo1a422ZrBEucFAU6XB+PHjERMTA1EUER0djaSkJLMeO8x7WKvbRrTk7+cvbTUxcODANo8tyC/A6FGjIYoivL29ETQ6qE2zZs1S/MIqESmL5QYiIsvoieWGuvqL+PDA31FXfwnNzc1gGIZhGIZhui7Nzc2oq7/06+9jvFBFtkf/eeMQP28wjIXy4H3jEN83iMhqlJ4TfezKDTIa/eoE48aNQ1BQEDSaByUCc8sNkZGRWB+/vt3jMrZlwM/XD6IoYtGiRVi5cqVZrzVodBDy8/PbPObhlRsqKypNHrs9YzsmTJgAURQRODIQRUVFil84JaLujeUGIiLL6InlBv1ffFxSen6GYRiGYRimR6eu/hIOfXlY8YlsIkvj5w2GsU74vkFE1qT0nOhjU27Iz8vHiuUrTB7r6+uLjIwM6Wtzyw1Lly7FnNlz2j0uLy8PQ4YMgSiKSEpKwvTp000eq6nSICwsDKIoYvr06UhISDB5bElxCXx8fKSv+/Xrh6ysLJPHr12zFnPnzIUoipj8xuQ2v49qtRpxcWsVv7BKRMpiuYGIyDJ6Yrlh775P+RdUDMMwDMMwCqe5uRl7932q+EQ2kaXtrTnIzxsMY4U0Nzdjb81Bxf8bJyLbpPSc6GNTbqgor9CXCzStHzvtzWlITk6Wvg4ICEBJcUm7z5G9Ixuenp7tHrt06VJERkZCFPXlBW9vb2kriYdtSNyAqKlREEURO7N3wt/f3+S4s2bNwvJly6Wv//SnPyE6Otrk8f5+/sjOzoYoikhNTcWYkDGtH6sRMXToUKjVasUvrBKRslhuICKyjJ5Ybni/5qDSczIMwzAMwzAMgPd5kYpsED9vMIz1wvcNIrIWpedEH5tygyiKiJoahVmzZhkVHPLz8zF06FCUlz9YqeGNN95A0oYks87n3Xffhb//g9LAwzYlb8JLHi8hJydHui0uLg4hISFGBYfsHdkY5j1Mtl1E9IxoREZGQlOlkR27evVqvPLKK7Lbvby8sCR2ifFqDxoR0dHRmPzGZNntoaGhWLRokdE5x8bGIiQkRPGLqkSkPJYbiIgsg+UGhmEYhmEYRqnwIhXZIn7eYBjrhe8bRGQtSs+JKlZuGDhwILy8vEyKiIgwKjdUVVYhOjoavr6+mD59OmJiYjBhwgQEBgbKtqQQRX3hISAgAIEjA7EpeVO755SQkABfX18EBARgypQpiImJwbRp0+Dj44Pg4GDszN5p9Jjk5GQEBAQgLCwMc2bPwbhx4xAUFITWShJLlyyFv78/Jr8xGTNmzMCrr76KyW9MRkVFhew4Ly8viKJ+O4uxY8ciekY0pkyeAn8/f8TExBgVOzRVGkybNg2BIwMxbdo0REdHIzAwEFOnTjW5sgQR9SwsNxARWQbLDQzDMAzDMIxS4UUqskX8vMEw1gvfN4jIWpSeE1Wk3PCoKioqkJWVhbS0NOTn51t07Py8fKRuSUVcXBxSUlJQWFDY7mOKi4uRvjUdxcXF7R6bl5uHrMwsaDSaVu83lBsMsndky1aMMEWj0SArKwtZmVmyFSyIiFhuICKyDJYbGIZhGIZhGKXCi1Rki/h5g2GsF75vEJG1KD0n+liWG2zZw+UGIqJHxXIDEZFlsNzAMAzDMAzDKBVepCJbxM8bDGO98H2DiKxF6TlRlhu6GZYbiMjSWG4gIrIMlhsYhmEYhmEYpcKLVGSL+HmDYawXvm8QkbUoPSfKckM3ExQUpPg5EJFtYbmBiMgyWG5gGIZhGIZhlAovUpEt4ucNhrFe+L5BRNai9Jwoyw1ERDaO5QYiIstguYFhGIZhGIZRKrxIRbaInzcYxnrh+wYRWYvSc6IsNxAR2biVcQlERGQBLDcwDMMwDMMwSoUXqcgW8fMGw1gvfN8gImtRek6U5QYiIhu3Mo4rNxARWQLLDQzDMAzDMMyjpKGhAdeuXUNDQ0OHH8uLVGSL+HmDYawXvm8QkbUoPSfKcgMRkY1juYGIyDJYbmAYhmEYhmE6k+bmZjQ1NaG2thY1NTWora1FU1MTmpubzR6DF6nIFvHzBsNYL3zfICJrUXpOlOUGIiIbx3IDEZFlsNzAMAzDMAzDdCZNTU04duwYpkyZAgcHB0yZMgXHjh1DU1OT2WO0d5Hq+PFjyMrMatP5c+ct/vvi53//HLtydik+yW4tdxvvIiszC19//bXi52KL+HmDYayXzpYbfvr3T8jKzEJdXZ3iPyOIqHtSek6U5QYiIhvHcgMRkWWw3GBePv/8c6xatQpRUVGYM2cONm/ejHPnzllhqqZrU1xcjB07dpj0/vvvW/w5dbom7NixA99++63FxwaAkydPtvpacnJy8MEHH+Dy5cudGlcURdTUfGjhs2UYhmGYxzMNDQ2ora3FlClTEBAQAF9fXwQEBGDKlCmora01e4uK9i5SiRoRgiDAw8MDXl5erbLGBfrNmzejf//+ik+yW0vDrQYIgoDCwkLFz8UWdbbc0NTUhOPHj5t06tSpTo3LMLaUzpYbDn12CIIg4Ltvv1P8ZwQRdU9Kz4my3EBEZONYbiAisgyWG9rO/fv3sXjxYgiCgHHjxmHp0qUYM2YMBEGAs7MzPv74Y+vN2nQyd+7cQWRkJPbv39/usT4+PnB2djZ5sWDhwoVWOT9BELB7926Ljw0AWq221Ysg7u7uEAQBbm5uqKmp6fC4EyZMwLx586xwxgzDMAzzeOXmzZs4dOgzzJs3D15eXkhOTkZVVRU2btwILy8vxMTE4NChz3Dz5s12xzK33HDo0GddOrl98sRJHDhwQPFJdmu5d/ce9tXsw5kzZxQ/F1vU2XLDhQsXIAiCSUOHDu3UuAxjS2G5gYisRek5UZYbiIhsHMsNRESWwXJD23nvvfcgCALKyspkt1+4cAEeHh5wd3c3+y8TuyoNDfq/xCsuLm73WB8fH0ycOLELzupBdDodPvroI/z0009WGV+r1ZcbPv/884eetwmHDh2Sig4d/XdjuYFhGIZh9Pnuu+8QHx+P/v37Y926dTh16hR0uiZ8//33iIuLg7u7O+Lj43H06NF2x7JUuaHhVgNu3bxldHvjnUbcunkL9+7ek4673XAbOp0ON2/cxHfffoerV6+2/rhbD8a73XBbepxOp8OF8xekMQ3jHv3uKG5cv9Hu76INDQ2ysVu6dfMWGu80Gr02U2PfunULdxvv6r9u0uHs2bOy13Di+Al8/fXXqK+rb/W5pMe2cO3qNXz7zbe4esX4+3Lv7j3Z9/nfZ/6N709+b3TOBmfOnEFtbW2HSxT37t7DyRMnjZaPN/x7Nt1ravX72tDQYNY4Op1+a46W/w7Xrl5DfV19q/8/Mvx/oOFWg1nn/2grNxwzUltbi6FDh2Ljxo2dGpdhbCnmlhsa7zTi+LHj+OHUD9DpTJcbGu804tT3p1D7r1r8+8y/H9zXpP85eee28TxF070m2XuLTqdDfV09DtcexskTJ03+TCSi7k3pOVGWG4iIbBzLDURElsFyQ9tZsWIFHB0dcffuXaP7du7cCUEQ8I9//MPovqtXr+LEiRPQ6UzvOa3T6XDq1CmcOnUKjY2ND93XhNu3b0tf37x5E9evXzd67MWLF2WPu3fvHi5dugRBEJCXl4eGhgbcv3/f5DmYU25obm5GQ0MD7ty5Y3RfY2OjVBLQ6Zqk52tubsbZs2dx+vTpVp9fP/Gs/97cv39fdp737t3DhQsXZMe0jOF5mpubWz1frbb1coMhKSkpEAQBX3/9tfR8rb22h283VW64c+cOjh8/1u1KLgzDMAxjrbz//vuYMWMGVqxYgStXrkjvyffv38fly5fx7rvvYsaMGWZtb2WpckNBQYF+Zaii3dJtt27eQkBAAIKDg6WL3sHBwXhn4TtITEiEg4OD9BfxUyOnygoAD29LMX/+fMycORMnjp+Av78/BEHA1StX0dDQgLi4ODg5OUEQBDg5OSEqKgpXLl8xea6bkjfB0dHRqHBQW1sLQRDwySefQKfTmTW2h4cHduXswnva9+Dp6Yng4GDodDrU1NRgyJAh0utzcHDA7NmzpYv5rW1L8fPZnxE5JVK2UkD4hHBZMaFarIYgCDh+/Dh8fX2l44YMGYKvvvpKOu6HH35AcHCwbKzRo0bj9A+n2/1dvaysDG5ubtLjAgMD8e0330Kn0+GTTz6BIAj48K8fyh5zu+E23NzcsCl5k1nj6HQ6FO8uRp8+fXDzxk1ETomEo6Mj4tfF63+///wfsvGb7jVhmPcwxMbGWvzzhjlZvHgxpk6d2uZnC4bpKWnvfePe3XtITU2Fq6ur9N9/UFAQCgsLjcoNe97bI/tZKQgCxo4di7q6OjTda8Lw4cMx+Y03jJ6jsqISgiDgzI9ncPPGTcTMjZG9pwwePBg1NTVdMr9BRJaj9Jwoyw1ERDaO5QYiIstguaHtJCcnQxAE/P3vfze67+7duzhz5kfZkst1dXWYOnWqNKnRr18/xMfHyy7wNzc3Y9euXejbt6903IABA1BUVCQdU1JSgj59+qChoQGRkfrJ1o8++ggAUFFRIW2x0bAnDwAAIABJREFUYJioNfxlZHx8vNHytYcPHzb5+sxduWHevHlwdnbGsWPHpNtOnToFV1dXrFmzBgDw0UcfQRAE1NTUYNiwYdLzu7u7o6qqSnrcnTvybSlOnToFQRDw7bffIjExEX369MGyZcvg4OCAjIwMo3OJjY2Fj4+PydKGVtt2uSE3NxeCIOCXX34BoC+wjBw50ui4FStWICAgQPr64XJDY2Mj1q1bJ7vg8Oabb+Lq1asmv48MwzAMYwu5ceMGLly4gCtX9BfZW0an0+Hy5cu4cOECbty40e5Y5pYb9uzZg3M/nzPyS/0v+mObdJg9ezb69u2LH0//CJ1Oh1WrVsGtn5vsgnpwcDCcnZ0RHByML/7xBS6cv4C/7P0LPDw8EBgYKP0VbmvlhvHjx8PPzw+LFy9GeVk5Gu80YsGCBfDy8sL+fftRV1eHz/72Gfz9/REaGir7i96WThw/AUEQUFJcIrt948aNGDRokLSagjlje3h4IGZuDAYMGIDkjcn4aP9HuHb1GpycnBAzNwZnzpzBpYuXIGpEuLi4YMuWLdDpjMsNN2/chJeXF4YNG4aP9n+Eugt1OPjJQfj5+cHT01NaxcFQbggICEC1WI3z587j448+hrf3yxg1apT0WsaPH4+AgAB8c+QbXLl8BV9+8SV8fHwQPiG8zX/vkpISODs7o6CgAOfPncfR745ixowZGDBgAP595t+4d/cehgwZgrffflv2uAMfH/i1dHHMrHF0On25wdXVFXPnzMXEiRORn5+PM2fOwN3dHStWrJCN/89//rPV0oMlPm+0l927d6N///64cuWKxcZkmMc57b1vpKamQhAEpKam4sfTP+LE8ROyz22GcsPJEyfh6OiImLkx+Prrr3H50mX89YO/wsnJCWq1GjqdDlmZWXBwcMDPZ3+WPcfUqVOl0sPmlM1wcXHBR/s/wpXLV3DyxElMmzYNLi4uuH7tuuIXa4nIfErPibLcQERk41huICKyDJYb2s6JEyfg7u4OJycnxMbG4i9/+QvOnTvX6rF37tzB8OHDER4ejm+++Qb19fWoqqqCm5sbEhMTpeMMKz5s3rwZp0+fxrFjx7B06VIIgoD9+/cD0JcbXF1dERMTg4iICBQWFqK+vh5lZWVwdnZGUVER6urqcPz4MURHR2PAgAE4e/Yszpw5g08//RSCICAhIQFffvllm/td+/j4YNy4cbhw4UKrDCtWXL9+HT4+Phg9ejTu3r2Lu3fvIjg4GCEhIdKqE4Zyg6urK3bs2IGffvoJx48fx+LFiyEIAvbu3St9n1orN7zzzjvw8fFBdnY2jh49ijfffBP+/v5G32M3N7dWSw+GaLWmyw2//PILAgMDMWbMGOm2zpYbFi5cCC8vL3z88ce4ePEiDh06hBEjRiA0NBQ6nc5oPIZhGIaxldy/fx86nc7kKkqG+9taPcoQc8sNpkREREjHXrl8BcO8hyEsLAx//eCvUimi5XjBwcFwcXEx2qbAcHH8Pe170OlaLzcIgoCcnTnSbYdrD0MQBPzt07/Jxjp+7DgEQcCBAwdMvq6xoWPlfw3cpMPw4cORmJjYobE9PDzg4OCAr7/+Wjrm5ImTEAQBubtyZY/dXbQbxbuLodMZlxuyMrOkla1aPubE8RNwdHSULvQZyg2GcQzSt6ZDEARpSwdPT0/MmjVLdszfPv0bNmzY0OqWEjqdfouNgQMHYvPmzUa3D/MehuSNydDp9CWQPn36yLaPWPbuMoSEhHRonOLdxRAEAbNnz5YVUeLi4tC/f3/ZNiTx8fHw8/ODrsnynzfayuXLl+Hu7o7s7GyLjMcwtpC23jeuXb2Gfv36YdE7i4zue+utt2Tlhn01+zBp0iSj4sLoUaMxZ84c6HQ61F2og5OTE3bu3CndX19XD0dHR1SL1dDpdHj77bfh6ekp2xbnzJkzSExIlG9zQUTdntJzoiw3EBHZOJYbiIgsg+WG9vPDDz9gyZIlsmVtfX19kZycLP31PwDk5OTAzc0NV6/K/6qquLgYLi4uuHpVv3TxgAEDsGjRItkxd+7cQVhYGDZs2ABAX24QBEGaVAGA27dvY+DAgdiyZYvssbdv38awYcOwadMmAPotHwRBQHFxcbuvzcfHp80LBi233KitrYWTkxM2bdqExMREuLm54cyZH6X7DeWGlkUOQL9Sxeuvvy4VFUyVG7y9X5b9hWdNzYcQBAFHjhxpcVsNHBwcTBZMgAflhrFjx2L69OmYPn06pk2bhtdffx3Ozs54++23ZVt8dKbccOTIEWmJ7JY5cUL/l5gHD1p2KWKGYRiGsdWYW27YuXMnDh36zMg3R76RHf/PL/8JR0dHODo6YuXKlUbjBQcHY/r06cbP1aSDu7s71q5ZC52u9XKDq6ur7OJV7q5cODg4oKK8AhqNRsbNzQ1r1641+bqKCovg4OCAugv6ksU3R77Rr2T167YJ5o7t4eGByCmRrb5OR0dHLFiwABqNBmd+PCO7/+Fyw8zomRg5cmSr5zp27FhMmjQJOt2DcoNhD3sDbbX+968LFy5Ap9MhYX0CBEHAxHD9igjfHPnG5EoWBobvQfLGZKPX/PrrryMwMBA6nQ7Hjx+DIAj44C8fQKfTofFOIwYMGIC83LwOjWMoN3z5xZey8zh2VD/+hx/qt764d/ceBg8ejMztmVb7vGEqq1atwtChQ2Xb1TFMT09b7xu1/6qVVhN8+L697+812pZCp9NvO3P6h9PYv28/EhP1Wxa99dZb0v0xc2MwevRo6evi3cVwc3OTClY1NR/CwcEBfn5+SN+ajkOHDqHhVoPZPy+IqPtQek6U5QYiIhvHcgMRkWWw3GB+dLomHDlyBAUFBYiKioKDgwP69++P77//HgDw1ltv6Zfora6W2bFjhzRB+u2338pWaDAVQ7nhq6++km47evQoBEHApk2bjJ5j/PjxCAwMBNDxcsPo0aPx+eeft+ratWuy47Ozs6W9RB/eR9tQbvj666+NnsewD/bFixdNlhsyMzNlj2lqasLgwYOxfv166ba3334bUVFRbb4mrVY/uR4ZGYnFixdL5syZA09PT4wYMULaxgPoXLkhLy8PDg4OqKqqMvq3cHd3x7p169o8R4ZhGIZh9DG33HDo0Gdm/Z7XcKtBKm8aLty3FBwcjHeXvtvqYwMCAqTVBlorNwQEBMiON1zA9/T0bNWyd5eZPM/Lly7DyckJu4t2S8/XclsHc8f28PDAmtVrjMa/dfMWsjKzMG7cODg6OkIQBIwePVq6kP9wuWH06NGIiopq9VznzpkLX19f6HQPyg2GUobBw+UGXZP+32769Ono06cPBEHAoEGDUFJSYvJ7UlNTI23X1tpr9vf3l44NDQ3FvHnzoNPpV4RwdHSUVuMwdxxDueHh16LT6bfViJkbA51Oh0OHDsHR0RHnfj5n9c8bLVNfr//r8O3bt1vgvzSGsZ209b5hKMjX/qvW6L4v/vGFrNzQ0NCAhPUJGDBgAPr374+wsDCsXbsWI0aMkJUbPj2oXxnx+LHj0Ol0mDhxIlatWiUb+59f/hOLFi2Cp6entJrhunXr0HinsUvmOIjIMpSeE2W5gYjIxrHcQERkGSw3mM79+/dRX1+PhoaGVu//4osv4OjoiDlz5gCAtIfzoEGDWlVVVYV9+/aZLAC0jKHc0HJliP3790sTta2NP2LECAAdLzdMnDjRrO8H8KCI4OjoiGPHjsnuM5Qbfv75Z6PHffDBBxAEAUePHjVZbvjggw+MHqdWqzFo0CDodE1oaGhAnz59pO0tTEWrbXtbCnd3d0yZMkW6rTPlhsTERGmSvjXLly9v8xwZhmEY5nFOc3OzpL1j2oulyw1xcXFwd3eXVlo4eeKk7P7g4OBWL+I33WuCm5ubVBRordwwduxY2WPy8/Ph4OAg276gI2LmxmDixInQ6XTw9/eXLXtu7tgeHh7SNgumXL92HXv27MEw72Fw6+eGhlsNxis3zJxpVN4wCA0NlbbQMLvc0ELjnUZ8/vfPMXHiRAiCgH/+85+tPs/R747++m99qN3vXWFhIVxdXXHj+g2sXLkSM2bM6PA4hnLDjes3jO6rqqqCs7Mzrl65ilWrVsnGt+TnjbaSm5sLQRBkK6UxDNP2+8bXX3+t/8OCv35odN+ePXtk5YYNGzbA1dUVBw4ckG2XEz4hXFZuuHf3Hnx8fJCyKQXnfj4HBwcHHK493Po5NOm381m2bJm+wN+BFV+ISHlKz4my3EBEZONYbiAisgyWG0xHp9OhX79+WLNmjcljXn/9dQwfPhwAMHfuXERERLQ55uHD+v2TP/74Y6P7jhw5gtraWgAPyg0tixWGJXhbbhXRWqxVbrh37x7GjBmD8ePHIyQkBIGBgbIlcg3lBsNraJn8/HyprGGq3NDaVg4//fSTfr/pv/0Ne/fuxYABA9DY2NjmeWq1pssNALBo0SK4urpKX5sqN8ybN89kuaGwsBAODg64e/dum+fCMAzDMLaYpqYm3LlzB01NTa0WGHS6B/e3F0uWGw58fACCIKCqqgo3b9yEr68vgoKCZAWB4OBgODk54ezZs/LHHtA/1rCHujnlBsP2B4btCwzO/nQWAQEB+PTgp22e7/59++Hg4IADHx+Ag4MDzp873+GxWys3fPLJJxg5cqTRPvJ5eXkQBAGnfzhtVG7YuXMnBEHAv776l+wxR787CgcHB2xN2wqdzrxyw6WLlzBy5Eijc//u2+8gCAIqyita/X40NDTA09MT8fHxstvvNt5F5JRIpKenS7dd/OUinJycoK3WwtPTE++//36Hx2mr3HDr5i24ubmheHcxBg4ciL9+8FerfN5oK6NHj0ZoaOgjj8Mwtpa23jdu3boFT09PaRWelmbMmCErN4wNHSsVzAxuXL8BDw8PWblBp9Mhc3smhnkPQ87OHNkqO4ZxNyVvkt127+49aTvKzs5bEFHXU3pOlOUGIiIbx3IDEZFlsNzQdiIjIzFkyBDZCgqGNDY2wsPDA3PnzgWg36rA1dUV9fX1suNqamoQGBiIS5cu4caNG+jbty8WL14sO+bq1avo27cv8vLyALRebmhsbMSgQYNk2zQA+gsIkZGRyMjIAGC9ckNycjJcXV1x+vRpHD9+DM7Ozli9erV0v6Hc0PI2QP+Xm+PHj4evry+am5s7VG4AgKioKCxevBizZ882a7sHrbbtcsO2bdtk39vk5GT07dtX9r1uaGjA4MGDTZYbDFuE1NTUyMY+d+4cRo4cic8++6zd82QYhmGYxzWfffYZEhMTkZmZiWvXrkkFh+bmZly/fh07duxAYmKiWe+H5pYbNmzYgKrKqladP3ce9XX1GDRoEGbOnCk99h+f/wMODg5YH79eui04OBguLi7w9/fH/n37cfqH09izZw88PDwwcuRI3G28C53OvHKDTqdDTEwM+vfvj/Kycvxw6gccOHAAEydOxPjx46Fravt30sY7jfD09IS398uYOnVqp8ZurdxQd6EO/fr1Q+SUSHz11Vc49/M5fPXVVxgbOhbe3i+j6V6TUbnh1q1b8PHxwZAhQ7Bnzx78ePpH/PWDv2KY9zAMGTIE169dh05n/soNY8aMwbBhw/DR/o9w9uxZHD9+DEuWLIGjoyNOfX/K5PekqLAIDg4O2JyyGUe/O4raf9Vi+fLlcHNzQ31dvezYOXPmwNv7Zbi5ueHWrVsdHqetcoNOp8PatWvRv39/eHh4dHh1jkctN1y+fFnajo5hGHnae98wFOtXrlyJI0eO4MiRI1ixYoW0RY6h3BAzNwZu/dzw0f6P8NO/f8Jnf/sM4RPC4erqitDQUPxS/4s05oULF+Dk5IT+/fsjd1eu7Pk2bNgAFxcX7C7ajTM/nsGZH89gV86uNstcRNQ9KT0nynIDEZGNY7mBiMgyWG5oO8ePH0Pfvn3h5+eHqqoqnDp1Cj///DMOHjyISZMmwcXFRVpJ4fbt2xg2bBgCAwPxySef4MyZH/Hee+/By8sLKSkp0pjp6ekQBAEpKSk4efIkPv74Y0ybNg0eHh7SBfbWyg0AUFxcDAcHB6jVahw/fgyHDx/GihUr4O7ujkuXLgHQrzjh7OyM2bNn48CBA7h27ZrJ1+fj44MRI0agqqqqVQcOHAAAfP7553BwcEBubq702O3bt0MQBOzbtw/Ag3KDq6srNm3ahGPHjuHIkSOIjY2FIAh4//33AaDD5YYPP/wQffv2hbOzM44ePdruv5lW23a5oaioSP9Xi6dPA4C0L/OKFStw/Phx1NbWYurUqfjzn/9sstwA6Fd26N+/PyorK/Hjjz/i4MGDiIiIQFhYmFnLcDMMwzDM45ovvvgCsbGxGD58OPLz83Hu3DnodDqcP38eBQUF8PPzQ2xsLL744ot2xzK33NCWg58cxIwZMzBgwACji+7x8fEQBAGffPIJdDp9uWHhgoVI3pgMFxcXCIIAJycnzJw5Exd/uSg9ztxyQ0NDA+Lj4+HWz03aPmzRokVG22GYkrA+QbZiREfHNrUtxaFDhzBq1CjZ92li+ETpsQ+XG3Q6Herr6jFnzhzp++Ls7IwZM2bIVpQwt9xw9uxZvPnmm7Ln9/d7xWg1h9aUl5Vj8ODB0jlMnz4dH3/0sdFxht/hli1b1qlx2is3GLa3SFifYNXPG63lyy+/hCAIEEXxkcZhGFtMe+8bOp0Ou4t2Y9CgQdLPn/AJ4XhP+56s3HDmxzMYPWq0dIyHhwcqyiukcsTDP1vmzJkDJycnWelBp9Phzu07WLVqFVxdXaWxBg4ciPSt6e2W3Iioe1F6TrTLyw0r4xKIiGye0oUGlhuIiCyP5Yb2880332DatGlGE+nh4eFGk/b19fWYMWMGnJ2dIQgChg8fjsTERNy6dUs65v79+8jJycGAAQOksXx9fWV/3Wiq3AAAlZWVsonaGTNm4JNPPpEdo1ar4e7uDkEQcPjwYZOvzcfHp82LBWFhYbh69Sq8vLwQHh4OnU4nPVana0JoaCg8PDxQX18vlRv+8pe/ICgoSBpjyJAheO+996THdbTccO/ePQwaNAghISEmX0fLaLVtlxsOHjwIQRCkosb9+/exdu1aODg4QBAEuLu7Izs7G1u2bGmz3NDY2Ij169fDze3BBYfFixfj1KlTZp0nwzAMwzyuuXLlCvbs2YOgoCD4+flh9+7d+Oqrr1BcXIwRI0YgKCgIe/bswZUrV9ody5yLVJYUHBwsLRN+69YtnP7hdIf/Kr81TfeacPbsWdy7e8/i59zpsZt0+KX+F/xw6gdcvXLV7MfdbbyLM2fO4M7tR//d/NrVa/jh1A/6MkQHL/LV1dWZLB50xThfffUVBEHA8WPHO/zYRy03GD4LHDly5JHGYRhbTEfeN879fE5aecbUz8nz587LSlw6nQ4Xzl9A451G2W1RUVGImRtjcqyGhgac+fEMzv501uixRPR4UHpOtMvLDURE1LVYbiAisgyWG8zP9evXpdUILl682Oax9+7dw/nz59sd88KFC9KKCx3NxYsXWy0/KBVDueHMmTMA9K/t4S06OpOGhga4u7tLZQhr5c6dO9L+2x3J/fv3cf78eeh07e8rzjAMwzC2khs3buDgwYMYPHgw/Pz8MGbMGPj5+WHw4ME4ePAgbty4YdY4SpYbiNoSMzcGEyZM6NRjH7XcwDCM6XT1+4ZOp8Oxo8cgCAI++9tniv9sIiLrUXpOlOUGIiIbZ6lyw/qMUkyPy4M6p1yxC4vpeRWYHpeHsspqqz9XwvZShMTuhNdbmfCNycKklbnIKapS/OIqESmH5QbGUnm43GCpFBUVoV+/fm1ur8EwDMMwTNfm/v37uHXrFg4ePIigoCA888wzCAoKwsGDB3Hr1i3cv3/frHFYbqDuJmF9AsaNGwcHBwd8/vfPOzUGP28wjPXSle8bR787iqioKAwcOBCRUyIV//lERNal9Jwoyw1ERDbOEuWG6motXN5Ih32IGt6zs7rkIuLbSYXwjZE/V2xKEexD1Mgv0VjteaurtQhcmA37EDUGTMvA6Hey8aeobbAPUcN+jBprtpYofoG1NaGxOzF1dZ7i50Fky1huYCwVS5cbNBoNIiMj4ezsjO3bt1tkTIZhGIZhLJf79+/jxo0b2LNnDzIzM7Fnzx7cuHHD7GID0PXlhj3v7cGnBz9VfPKcuq+qyiokrE/AoUOHOj0GP28wjPXSle8bF85fwLp167AjaweuXb2m+M8nIrIupedEWW4gIrJxlig3JGWWwj5EjdDYnbAPUXfJCgYRK3Pxh/Gpstu6otxgeI75SYWy23OLNfhDWCp6j0vtkpUjOmrAtAyMmL9D8fMgsmUsNzCWyk8//YSioiJcv37dIuP961//wrp166DRaDp0kYRhGIZhmK7NlStXcP78eVy5cqXDj1VieXEia+PnDYaxXvi+QUTWovScKMsNREQ2zhLlhlcXZqNvZDpKykU8H6pudYWACk01NJpq6X+n5VSgqMx0CaFKU4303HLklciLEtXVWpRXVSN8+S68MD4V5VXVqPh13JblBo1Yja27KrA9v0J63oeJ1dXIyK9AQanxeWjEB+NqtVqUVogoKRcRsli/akNlK2NGr8uHfYgaG7aXtvr6t+6qaLP4YDifjLwK2XO3dT7tvRaxuhrlVdXo/+Y2+M3LQnlVtcnvBxE9GpYbGIZhGIZhGKXCi1Rki/h5g2GsF75vEJG1KD0nynIDEZGNe9RyQ3G5iOdDt2BmfD60Wi1emb8DjhPTIFbLL6A7T9qKqavzMHHFLtiPUeu3cQhRI2hRtuzYCk01QpfkwD70wTGOEWlYn6EvDBSVaaTbDQxbYRjKDUs374ZDeJp0v0N4GjZll8nOZ8HGQvQelyod02dKOtJyKqT75ycV4PmxW1BWWY2hszJhH6LG6rRihC/fBfsQNRJaKTBUaqqRVVCB0gpR9nrGLc158JrHqPHyW5nY3aLYUV2txaz4AvQeu0U6nxfGp2JuYkG759Pea1mZWmz0/Ypel6/4RWAiW8RyA8MwDMMwDKNUeJGKbBE/bzCM9cL3DSKyFqXnRFluICKycY9abpiXVAD7EDVyi/UX61el6S+mx28rkR3nPGkrHMLT4BuThfTccuworNRf9A9RY2VqsXScb0wWng/dgpgNBcgt1iA1pxzes7NgH6LGxqxSaDTVSMoqxcgF2eg9LhVJWaVIzy2HVvug3PBieBpiU4qQV1yFtekleHFiGvpGpkvPMT+pEPahasxNLEBecRW27qrAsDmZeGF8Knb+uqXG/KQCPB+6Bf7zsuAZnYE5CQXIK6lCem45er++BfZj1Bj1TjaWqXe3uQ1HwIJsvBiehjVbS1BQqsH6jFL8cXI6+r+5TSp1RMfrV3yYtDIXmQUVSNtVgdHvZMsKDKbOp73XUlSmQVJWKfpMScfgmduRlFWKnN3W3zaEqCdiuYFhGIZhGIZRKrxIRbaInzcYxnrh+wYRWYvSc6IsNxAR2bhHLTf8KWobvGZlSl9Xaqrxwutb8Mr8HbLjnCdthePENNl2DmWV1eg9dgsmrcyFVqvFpuwy2IeoMWt9geyxFZpqOEVsxUszMqTbIlbm4g/jU2XHGcoN85Pkj5+6Og/2IWppC4s/jE/F5FW5Rs/hODENESv0t8//tbThG5NltArF9vwKjHonW7ZagvOkrZi4YhfySx6syKDeqX89hlUnDNJzy2EfokZcegnKKqvxwvhUBC7INjofj+kZmLA8x+T5mPtatFotBkzLwIiH/k2IyLJYbmAYhmEYhmGUCi9SkS3i5w2GsV74vkFE1qL0nCjLDURENu5Ryg2pOfqL9FFr8pBVUCHxjcmC/Rg1CltsveA8aavRBXzD7aGxO6HV6rdmsA9Ro6BUY3RcxIpc2IeoUfVrOaKtckNmQYXs9iWb9bfnlVRJ5xyxIheLU4pkBk7PQJ8p+hUeDGWCjVllJl+/RqyGemcZZicUwOst/VYRL7y+Bdvy9M//VoJ+jIXJRUbP1XtcKsYtzYH61/MxrNBgSmvnY+5r0WpZbiDqCiw3MAzDMAzDMEqFF6nIFvHzBsNYL3zfICJrUXpOlOUGIiIb9yjlhrFLcqSVC1ozK/7BCgrOk7YidEmO0Rgtyw1h7+bAfowa1dXGzzU3UX9xf9evWyq0VW5ouXqCVisvN6z+dduMF8anQggz9sfJ8nJDy7Gqq7XIK6lCWWV1q9+PpMxSaXUFrVaLsGX6709rzyOEpSJ40U5pG4/N2aZLFKbOx9zXotWy3EDUFVhuYBiGYRiGYZQKL1KRLeLnDYaxXvi+QUTWovScKMsNREQ2rrPlhgpNNXq/vgX+87KQkl1mxOWNdLhOTpeKCuaUG2atN76AbxC+fBfsx6ihMWPlhrbKDVt3VcA+RI3E7aVtvj5DmaBlkUGsrkbvcVuk823NgGkZcJ60FVqtFnN+Xbmh5VYcD0v5dSuONVtLjO5T79R/L02dj7mvxXBeLDcQWRfLDQzDMAzDMIxS4UUqskX8vMEw1gvfN4jIWpSeE2W5gYjIxnW23GAoEmwwcWE9ak0e7EPUSP51GwVzyg3qnfoL/dHr8mXHVGiq4TgxDYOit0u3dbbcUKGphhCWivHvys9FI1Zj6KxMRK3Jg1bbeplAq9ViyKztcAhPa7WAUaGpxh/CUuE3T79yg2HbiJWp8i0ncoqq4Do5HfEZJSipENF77Ba8ulC+ZUdRmQa9x27BWwkFJs/H3Nei1bLcQNQVemK5Ye++T9Hc3Kz0nAzDMAzDMEyPTnNzM/bu+1TxiWwiS9tbc5CfNxjGCmlubsZelhuIyEqUnhNluYGIyMZ1ttwwKHo7HCPSWt1CQqvVYkdhJexD1AhapL9ob065QavVIuDtHbAP1RccMgsqsDGrFJ7RGbAPUUurGGi1WkyP05cnYlOKpC0dzCk3aLVaxGzQFwXeWJmLrbsqkJJdhpDF2eg9LhUFpfrHmio3bN1Vgd5jt8DljXQA8/dLAAAgAElEQVS8k1yEjLwK7CyqQlx6CQZFb8fzofLCxyvzd+CF17dgwcZCZBZUIC69BJ7RGfCYniF976au1r+WiJW5SM+rwJqtJfCenYU/hKVKz2/qfMx5LVqtFi+/lYk/Tk7HqrRi7CisVPwiMJEt6onlhkNfHkZd/SWl52UYhmEYhmF6dOrqL+HQl4cVn8gmsjR+3mAY64TvG0RkTUrPibLcQERk4zpTbsgq0G+HELk6t83jPKZn4PmxW1BSIZpdbtBoqhGxMhe9X98C+xA17EPU6Be5DZtaFBsM59A3Mh32Y9Twnq1fKcHccoNWq8WCjYUQJqTpnyNUP8ba9AdbQ5gqE2i1Wqh3lsN7dpZ0fgaeMzKQlClfyaJCU43x7+ag97hU2Ieo8cL4VLy6MBsZ+RXSMdXVWsyMz8cL41OlsZwnbUV8hnnn095r0Wq1WJlajBfD01pdGYOILKMnlhvq6i/iwwN/R139Jf5FFcMwDMMwTBenubkZdfWXfv197KLiE9lElqb/vHGInzcYxkJ58L5xiO8bRGQ1Ss+JstxARGTjOrtyg7VVV2uRs7sKpRWiVZ+noFTTamHAHCXlItJ2VUC9s0y2SkJbr0esbvu5cos17Y5ljddCRI+uJ5YbdDr9hOOhLw9j775P8X7NQSIiIiLqInv3ffrrX7bzAhXZLunzRjf4b47ocbe35iDfN4jI6pSeE2W5gYjIxnWm3JCcVWa0agE9Ppwitip+EZjIFvXUcgMRERERERERERGRTsdyAxERWVl3XbmBiOhxw3IDERERERERERER9WRKz4my3EBEZONYbiAisgyWG4iIiIiIiIiIiKgnU3pOlOUGIiIbx3IDEZFlsNxAREREREREREREPZnSc6IsNxAR2TiWG4iILIPlBiIiIiIiIiIiIurJlJ4TZbmBiMjGsdxARGQZLDcQERERERERERFRT6b0nKhi5QaNRoP4+HhMnToVb0x6AytXroRGozE6LmdnDhYuXIjw8HAsWrQIu3J2ye5PS03D4kWLsXrVaqPHlhSXYPGixVi8aDGKioogiqL0tcHaNWuRk5Nj9Fi1Wo3FixYjZ6f8vvy8fKMx4tfFo7ysXP+cJSVG97eUkZHxyOdssD5+PURRxJrVaxAbG4uqyirZWHFxcYiLizPrnJS++EpE1sNyAxGRZbDcQERERERERERERD2Z0nOiipQbCgsK8dJLL0GlUuG5556DIAhQqVRwdnZG8e5i6bglsUvw5JNP4j/+4z/g5OSEJ554Ar/97W+x7N1l0jEREyOgUqnQq1cv5OXlyZ5nwYIFUKlUUKlUSEtNgyiK0te/+c1v8Jvf/Eb6eurUqbLHGs5pTMgY2e1JG5Kk52s5xhNPPIFJEZOQlZUljdmat956q9Pn/DAPDw+IoogXX3wRKpUKM2fOlI3Vp08f9O3b16xzUvriKxFZD8sNRESWwXIDERERERERERER9WRKz4kqUm7w9fXFf/7nfyIxIVG6bfXq1VCpVAgaHQRRFJGeng6VSgUfHx+Ul+tXRSgvK4eXlxd69eolrTbQsijw8EX6l156Cb169TIqCgQEBEjHlJWVwcfHByqVCtnZ2RBFEerNaqhUKvTr1w9PPfWU9Pyi+KDcsGDBAum28vJyBAQE4IknnkBhQSFKS0pRWlKKlJQUqFQqREVFSbdVVlR26pz9/f2lMQwMq0UYyg1PPvmkbBUKQ7lB1IjtnpPSF1+JyHpYbiAisgyWG4iIiIiIiIiIiKgnU3pOtMvLDRnbMqBSqRAREWF0X1RUFCIm6m/3HT4cTz75JHYX7ZYdU1BQgCeeeEIqKBiKAkOGDMEf//jHB8flF6BXr14YOnRom+UGUdRv+6BSqbAubh1EUURwUDCeeeYZpKWlQaVSYemSpdKxrZUbRFHE/PnzoVKpkJSUJN2WvlVf0IiOjpYda4lzbunFF1+Ek5MTfv/738Pb21u6XSo3tDjW1DkRke1iuYGIyDJYbiAiIiIiIiIiIqKeTOk50S4vNxiKBBuTNrZ53LN2z0rbLjzMzc0NL/R+AaL4oCiwdMlSqFQqZGVlQRRFxMTE4Le//a1UOjC5ckNpGV5++WXpsWVlZfjd736HsLAwiKII4QVBdh6GcsPMmTORl5uHvNw8JG9MhouLC55++mmUlJRIx7ZXbujIOb/44ouIjIyUSU9Phyjqyw0DBw7EktglUKlUWL1qNUSR5QYi0mO5gYjIMlhuICIiIiIiIiIiop5M6TnRLi83REdHQ6VSYVv6tjaPe/LJJ+Hj49PqfV5eXviv//oviOKDokBxcTGeeuopREZGQhRF/OlPf8Krr74qlSlaFgV69eqFp556Ck899ZS0BcTE8IkQRRGxi2OhUqmQuiUVoqhfTaLllhWGcsPDevXqhbi4ONl5tldu6Mg5/+53v0Pv3r1l1qxeA1F8UG4QRREeHh743//9X5SVlrHcQEQQRZYbiIgsheUGIiIiIiIiIiIi6smUnhPt8nLD6lWr9asLrF5tdN+CBQvwxqQ3IIoinJyc4OTk1OoYL/R+QbpobygKlJeXIygoCL2f741dObugUqmQkJDQalGgT58+mD9/PubPn49l7y7D9u3bpbEHDBgAlUoFT09PeHp6wsXFBSqVClMmT4EoPig3TJs2DVlZWcjKykJ8fDzs7Ozw9NNPo7KiUhqrvXJDR865vW0pDOWGzMxM/OY3v0FYWBjLDUQEUWS5gYjIUlhuICIiIiIiIiIiop5M6TnRLi83FBYU4ne/+x28vLxkt5eVleHpp5/G4MGDIYoiIiL0BQC1Wi07Ljk5GSqVSlrtoGVRIClJXzx45ZVX8Mwzz0Cj0XSoKLBjxw6oVCoMHToUkyImSez/nz3+7//+DxqNRio3LFiwQPZYw4oUhi0mRNG8csOjnrMoyssNoigickokevXqhd///vcsNxARyw1ERBbCcgMRERERERERERH1ZErPiXZ5uUEURcyaNQsqlQqvvvoqNiVvwuaUzRg6dChUKhWSNiRBFEWUFJfgmWeewdNPP40lsUuwLX0bFi9ajP/+7/+GnZ0dykrLIIryooCoEWFnZweVSoWwsDCIotihosDkNybLtqAwmD17NlQqFeLXxZssNyxduhQqlQobkzZKt5lTbjD3nPv0cUVMTIzM0qVLIYrG5YaK8grY/z97qFQqlhuIiOUGIiILYbmBiIiIiIiIiIiIejKl50QVKTeIooiFCxfi97//PVQqFVQqFZ5++mksX7ZcdkxeXh6GDBmCXr16QaVSoVevXvDy8kJBfoF0jKwoID5Y8SEtTV8MMLfcoNFo8D//8z9GZQBRFJGfl49evXrBz8/PZLnBsKLE9OnTpdvMKjeYec6tEV4QIIrG5QZRFJGwPoHlBiKCKLLcQERkKSw3EBERERERERERUU+m9JyoYuUGg53ZO5GdnQ1RY/qY8rJyZGzLkMoARERkPpYbiIgsg+UGIiIiIiIiIiIi6smUnhNVvNxARETWtTIugYiILIDlBiIiIiIiIiIiIurJlJ4TZbmBiMjGrYzjyg1ERJbAcgMRERERERERERH1ZErPibLcQERk41huICKyDJYbiIiIiIiIiIiIqCdTek6U5QYiIhvHcgMRkWWw3EBEREREREREREQ9mdJzoiw3EBHZOJYbiIgsg+UGIiIiIiIiIiIi6smUnhNluYGIyMax3EBEZBksNxAREREREREREVFPpvScKMsNREQ2juUGIiLLYLmBiIiIiIiIiIiIejKl50RZbiAisnEsNxARWQbLDURERERERERERNSTKT0nynIDEZGNY7mBiMgyWG4gIiIiIiIiIiKinkzpOVFFyg35BYVIStmCVXGJWBmXQET02FsVl4iklC3ILyhUvMzAcgMRkXWw3EBEREREREREREQ9mdJzol1ebsgvKMTa9UnIyyuAqFH+oh8RkUVoROTlFWDt+qRuV3BguYGIyDJYbiAiIiIiIiIiIqKeTOk50S4vNySlbNEXG7rBBT8iIkvLyytAUsoWxc+jJZYbiIgsg+UGIiIiIiIiIiIi6smUnhPt8nLDqrhErthARLZL8+vPOaXPowWWG4iILIPlBiIiIiIiIiIiIurJlJ4T7fJyw8q4BMUv9BERWVN3+znHcgMRkWWw3EBEREREREREREQ9mdJzoiw3EBFZWHf7OcdyAxGRZbDcQERERERERERERD2Z0nOiLDcQEVlYd/s5x3IDEZFlsNxAREREREREREREPZnSc6IsNxARWVh3+znHcgMRkWWw3EBEREREREREREQ9mdJzoiw3EBFZWHf7OcdyAxGRZbDcQERERETdVV39RRz68jD27vsU79ccJCIiIqIusnffpzj05WHU1V9U/HfCrqD0nCjLDUREFtbdfs6x3EBEZBksNxARERFRd1RXfxEfHvg76uovobm5GQzDMAzDMEzXpbm5GXX1l379fcz2Cw5Kz4my3EBE9JDSklLsLtqN0pLSTj2+u/2cY7mBiMgyWG4gIiIiou5I/5eCl5Se12cYhmEYhunRqau/hENfHlb8d0NrU3pOlOUGIiIDjYjKikpsTtmMtWvWYnPKZlRWVELUdGyc7vZzjuUGIiLLYLmBiIiIiLqjvfs+5YoNDMMwDMMwCqe5uRl7932q+O+G1qb0nCjLDUREv6qsqET61nQM9/GFnZ0dhvv4In1rur7g0IFxutvPOZYbiIgsg+UGIiIiIuqO3q85qPRcPsMwDMMwDAPg/ZqDiv9uaG1Kz4my3EBEJOq3oticshnDfXzRv39/uLm5oX///hju44vNKZs7tEVFd/s5x3IDEZFlsNxARERERN0Ryw0MwzAMwzDdIyw3sNxARGR1JcUl2JC4AaNHj8Yf//hHREZGYknsEkRGRsLFxQWjR4/GhsQNKCkuMWu87vZzjuUGIiLLYLmBiIiIiLojlhsYhmEYhmG6R1huYLmBiMjq0tLSEBERAUEQEBERge0Z21FVWYWMjAxMnDhRuj0tLc2s8brbzzmWG4iILIPlBiIiIiLqjlhuYBiGYRiG6R5huYHlBiIiq1uxfAUCAgIwfvx4FBYUQtTob9doNCgoKMC4ceMQEBCAFctXmDVed/s5x3IDEZFlsNxARERERN0Ryw0MwzAMwzDdIyw3sNxgMdnZ2Zg9ezYKCgq65Pny8/MRGxuLiIgI5Ofnt3nsrFmzsHjxYsUufGZkZCBwZCAqKyoVOwciJRUXFyN3Vy4KCwqhqdLI7tNU6QsOubtyUVxcbNZ4LDcQEdkmlhuIiIiIqDtiuYFhGIZhGKZ7hOUGlhssZkPiBtjZ2SFjW0aXPJ+HhwecnZ3x6quvIntHtsnjcnJy8PzzzyMnJ6fLvhflZeXw9fVFXFyc/jaNiJdeegnzYuYp8m9DpDSNRqMvNWjavl+j0Zg1HssNRES2ieUGIiIiIuqOWG5gGIZhGIbpHmG5geUGiykoKEBcXBxKikus/lzb0rfBzs4O6+PXt3vs6+NeR0hISJd+L8pKy2BnZ4d3Fr4j3bZ06VIIgoCy0jJF/n2IbAnLDUREtonlBiIiIiLqjlhuYBiGYRiG6R5huYHlBoii/q+ms3dkIysry2jJeNlxVRpsz9iOjIwMlJeXG91XVlYGjUaDqsoq6X+3PKasrAwV5RUmH2e4rbKiElmZWVCr1diZvVN2fHl5ORISEmBnZ4eUTSkoKzNdFsjcnolnn30WqampEEVROi/D/SXFJSjeXdzx70Mbx1VUVKAgvwB2dnaYP2++9NrKy8vh5OSEhQsWKn4hluhxx3IDEZFtYrmBiIiIiLojlhsYhmEYhmEsl4aGBly7dg0NDQ0dfmxHyw0HPj7Qqd//Ovs4S1B6TrTblxsWvbMIgiDAzs4OdnZ26N27t377hJbLx2tExMTEoHfv3tJxDg4OWLBggXRMy20pkpKSYGdnhzWr10j3l5WW4bnnnkP//v1lzx8TE4PnnntOWvFh5YqVcHFxkZ7Hzs4OQ4cORX5+PkRRhLe3t+w+e3t7k6/tzag30a9fP9lrff7551FWWgY/Xz88++yz0tYRZn0fzDhu0qRJsvOzs7ODWq2GKIqYMGEChgwZoviFWKIup2mhvWPMGI/lBiIi28RyAxERERF1Ryw3MAzDMAzDPHqam5vR1NSE2tpa1NTUoLa2Fk1NTWhubjZ7jI6UGw58fABvv/12h4sKnX2cpSg9J9qtyw3z58+HnZ0dIiIikJWVhewd2YiMjISdnR1mzZolHTd37lzY2dnhzag3kZWZhfSt6Rg3bhzs7OykckDLckNVZRVefPFFTJgwQRojaUMSnnvuOdjZ2SEvN0+63d/fHyMDRkIURWzP2I5nn30W/5+9e32Lql7cP/4XfJ99H3B926a/hYBb0PBQiaaZtlVU3IKmlaVkHjOPpabhWREUFUUkOSkggoDM7L3RDmYHKvY2Ld2lZtbOQ6WQClsTTwzcvwfE0mFmYFBwRnnf1/V6wJrPrFlrGJHrs24+K2xomDZt2qTs7GwtW7pMjzzyiCZOnCir1arNCZs1a2btcc+dO1fr1613eX6hoaF6tv+z5tdz35yrNm3aaOiQoXr66ac1e/ZsZWRkuP0+uDMuJTnFXFli7MtjFRcXZxY36t7H7B3ZHr8YC9xPuwt2Kz8vX7sLdjstMBTuLrz9uBv7o9wAAA8nyg0AAADwRpQbCCGEEELuPVVVVfruu+80btw4+fr6aty4cfruu+9UVVXl9j7uZuWGphQVPF1ssNkoN7iUtytPvr6+Cg0NdXhs+PDhatu2rXZm7zTHhQ8PtxuTn5evp556SuPGjpPVal9usFqtGvXcKAUGBprjJ06cqMGDB+vPf/6zFkUtqj2GvDz96U9/0oK3FshqtWrFihXq27evtqVvs3utx7s/riFDhphfx62Nk4+Pj3m7CVc6deqk0aNHm1/PfXOufHx8NGTIEPN2Ek19HxobV7dPHx8fvfnGm3bjlixeIh8fH8XGxHr8YixwP8WsjtHYsWM1derU2lvB1BUcLFbl5ORo2rRpGjt2rGJWx7i1P8oNAPBwotwAAAAAb9SUcsPJkyeVkpJiJzU1VZmZmdq3b5+uXr1qN/7LL7/U9u3b3d5/U3L27FmlpKTo0qVLLbJ/cm+x2aqUkpKio0ePeuT1W/Kz583h3wUhhHgmlZWVOnz4sMaNG6eBAweqX79+GjhwoMaNG6fDhw+7fYuKppYbbDb3CwveUGyw2Sg3uLRp0yb5+Pho6ZKlDo9FR0fLx8dHcWvjzHF1KzS4Ur/csGrVKvn4+GjrO1tltVr1dJ+nNWvWLI0YMcIsHMSsjtH//d//KSsry25fFotFKckpWrlipcaNGycfHx8NHjzYfNydckNdwWDaa9PMbXXlhjtXe2jq+9DYuDtfu365YWP8Rvn4+Cjq7SiPX4wF7qe4tXGKiIhQp06dNGvmLKWnp8tSaNG29G2aNWuWOnfurIiICK1du9at/VFuAICHE+UGAAAAeKOmlBv+/ve/yzAMde/eXb169VKvXr3Us2dPBQYGyjAM9evXT+fOnTPHb9y4UV26dGnyBQJ3UlLyhQzD0Pfff98i+2/uLFu2TImJiS22/+vXrysyMlL79+9vsdeQ3D+P69evyzAM7dy5s0WPx1Va8rPnzXnQ/l0QQsjDkN9//10lJV9o5syZ6tWrl+Li4lRYWKi1a9eqV69emjFjhkpKvtDvv//e6L7uptxgszVeXPCWYoPNRrnBpRUrlsvHx0cbNmxweGxL4pbai/BRUea4+Pj4BvdXv9yQn5+vdm3bafbs2crLy9MjjzyixMRELViwQJ06dZLValVkZKT69u1r7iM/P19jx46Vr6+vDMNQ7969NWbMGHXp0qXJ5YbU1FSHgkFduSEzI/Ou34fGxlmtrssNdcc0d+5cj1+MBe6nHVk7FBUVpccff1yPPfaY5syZo/Xr1uuNOW/oscce0+OPP66oqCjtyNrh1v4oNwDAw4lyAwAAALzR3ZQb/vWvf9ltt9ls2rdvn/z9/fX222+b2yk33M5zzz2nWbNmtdj+KysrZRiGcnJyWuw1JPfPw2az6aOPPtLZs2db9HhcpbWWGy5duqSPPvrIrQtohBBCmifHjh3TqlWr1KVLF61cuVI//vijbLYq/fDDD1qxYoWCg4O1atUqHT9+vNF93W25wWZzXWDwpmKDzUa5waWEhAT5+PhoyeIlDo/VrboQFxen+Ph4+fj4aOWKlQ7jNsZvVPyGeFmtjuUGq7X2dg2DBg5S3No4tW/fXhaLRelp6fLx8VF6Wrq6d++uOXPmmOMjIyPVpk0bRUdHy2KxmNv79O7T5HJDzs4c+fj4aPz48ea2unLDrtxdTX4f3B1ntbouN6xft14+Pj5as2aNxy/GAvdbTk6OoldFK8A/QI899phCeoToscceU4B/gKJXRSsnJ8ftfVFuAICHE+UGAAAAeKPmKDfUJTw8XIMGDTK/dnWBubq6WmfOnNGpU6dks9lcvp7NZtOPP/6oH3/8UTdu3LB7zFW54ebNm6qsrGxwv3WpqKjQ0aNHVVZW5nLMrVu39P333zsdU1NTY/daFRUV+u677+yWnrbZqlRZWakRI0Zo+vTpqqysdLj3dt15Xrhwwcl7UGW3v59//ln/+c9/7PZx69YtXbx4UYZhKCMjQ5WVlaqurnZ6PjZbla5du2Z+/fvvv+vy5cuNHktD53Ht2jXZbFXme1K3ekfte+N4n/Hr16/rxInvHJborqqqcnnsN27ccPgMXLp0SUePHtXx48cd9tWUckNjn8fr16+b53r9+nUdP35c5eXlbu37zn04O+dbt245fZ9sNpvde3zr1i3z+1Z3way0tNThdeqeV/ceOvt+X7x40eXy6Ddv3tT169ebdG6EENLas2fPHk2aNEmLFi1SeXm5ampqJNX+/3Lp0iUtXLhQkyZN0p49exrf1z2UG2w2xyKDtxUbbDbKDS7l5eWpffv2GjBggMNjYUPD1K5dO+XszFFOTo7atm2riIgIuzHZ2dlq27atZs2cJavVeblh6dKlevTRRzV+/HgNHTLU3N6pUydNmTKltuSQnm5u7xnSU08//bTd6+zK3aX27ds3udxgtVjVrm07DRs2zNzmrNzg7vvg7jir1XW54e2Fb8vHx0cZGRkevxgL3G8Wi0W5ubmKXhWtxx9/XP/zP/+jxx9/XNGropWbm2tXaGoM5QYAeDhRbgAAAIA3aq5yQ2Vlpbp06aK5c+ea25xdYM7NzVVwcLAMw5BhGOrUqZO2b99uXgiQai+Qb9u2TUFBQea4rl27Kjs72xzjrNzwz3/+U0FBQZo5c6Zu3rzp8jzOnj2r0aNHm/s2DEORkZE6f/68Oeb69etavny5AgICzDFPP/20SkpKzDHnzp2TYRj6+OOP9eqrr5rjAgICtGvXLknSvn377F7HMAylpaWZ+ygoKLB7P0JDQ+3+svMf//iHDMPQDz/8oH79+pnjQkJCdPjwYUnSqlWrHF7jyJEjTs89NzdXgYGBqqysVGRkpPz8/PTRRx81eiwNnUf37t21fft27dmzR08++aSGDx+u69cdb0tx48YNrVy5Uv7+/jIMQ/7+/nr11VdVUVEhSfrss89kGIb27dtnd8w3b95UcHCw1q9fL0m6cuWKpk6dancsgYGBdqtWuFtucOfz+MwzzygxMVFxcXF2n4eFCxfKZmu4RNPYOR87dkwBAQEOq2HMnz9fnTt31unTpyVJsbGx6tmzp9577z117NjRPIb+/fvr22+/NZ9X/9+Fs+93dHS0DMPQwYMH7V6zurpaffr00VtvvdXo+0YIIeR2rly5ovPnz6u8vNzh/wWbzaZLly7p/PnzunLlSqP7utdyg812u9CQlpbudcUGm41yQ4Pmzq292D9y5EglJCQoMTFRL7zwgnx8fDRjxgxz3OTJk81VEJKStmjlipX6y1/+ovbt2ytvV56sVuflhl25u/SnP/1J7dq2s1uhYfTo0WrXtp16hvS0O56woWFq17adVq1cpfS0dK2JXaM+vfuoTZs2CgkJUVZWlqxWN8sNVqsGDx5s9xrOyg1NeR/cHWcptOiRRx7R4MGDtWrlKrP0MGXKFBmG4fELsYCnWCwW5eTkKCoqSq9NfU1RUVHKyclpUrHBaqXcAAAPK8oNAAAA8EZ3U27Yu3evzp8/r/Pnz+vnn3/Wvn37NGfOHPXo0UPHjh0zx9e/wJyZmSnDMLRy5UqdPn1KZ86c0dq1a2UYhrZu3WqOS0tLk2EY2rBhg3766Sd99913WrBggQzD0P79+yU5XsT95JNP1KFDBy1ZskQ2m+sLzlevXtWTTz6pZ599ViUlX6i0tFTvvvuueVG+LtOmTVPHjh21c+dOnT9/XsePH9eECRPk6+urQ4cOSbpdbggJCdHmzZt19uxZffvtt4qMjFRAQIDKyspUXl6ugwcPKjQ0VGNfflkHDx40VzbIy8tTQECAsrOzVVpaqhMnvtPkyZPVtWtX/fzzz5JulxsGDRqkf/zjHyotLdWnn36q3r2f0pAhQyRJp0+fNosBq1ev1sGDB13eliA3N1cdO3bUjBkzNGbMGO3YsUNlZWWNHktD59G9e3fNnDlTXbt21bp16/TJJ584LTe88cYb6tWrlz7++GNduHBBJSUlGjBggCIiIv74PFYpJCREc+bMsTvm4uJiGYahkydPSpLmzp2rgIAAvf/++yotLdWZM2c0ZcoU+fv7mysSuFNucPfz+MwzzygkJESvv/66Tpw4oTNnzmjlypVOixj109g533kcdX/Ru3fvXvPfWV1iY2Pl7++v7t2767333lNZWZm++uorhYeHq0OHDubnxVm5of73+8yZMwoODtbixYvtjvXw4cNOSw+EEEIaTnV1tWw2m10xztnjrlZVujPNUW6w2WxmsSEtLd3jv2vW5+k5Ua8uN1itVkVFRSkwsKN8fHzk4+OjDh06aP78+Q4XJE+eEtIAACAASURBVGfMmCFfX19zXOfOnRWzOsYc46zcYLXWFgx8fHyUlLTF3LYoapF8fHz0+rTX7campqbq8e6Pm6/Rvn17vTX/Lc2ePVs+Pj4aNWqUrFb3yw1z585Vu3btVJBfUPu1i3KDu+9DU8ZNeHWC2rVrJx8fH8XHx8tqtWrYsGH6y1/+4vELsYCn7cjaoW3p27Qja8ddPZ9yAwA8nCg3AAAAwBvdTbnBlaysLLvxd15grqysVNeuXTV16lSH/b7xxhvq1KmTKioqzHF3rgAh1a6kMHr0aMXGxkqyv4j7/vvvKyAgQJs2bWr0HFJTU2UYhn766Se77YWFhRo0aJDOnj1rXuTdvn273ZgbN26ob9++ev755yXdLjfMnj3bbtyXX34pwzD0+eefm9uee+45u7/Ov3btmrp166aNGzfaPffatWvq06eP1q1bJ+l2uSE3N9du3JYtW2QYhnkxv7KyUoZh2K1e4Cy5ubkyDEOvv/66bDZbk47F2XlIteUGX19fHT161NxWv9zwzTffyDAMlZR8Yffc77//XoZhqLi49nMYFxdnrjRQl6ioKIWHh5tfv/baa3rnnXfs9lO3ssSJE99Jarzc4O7nUaotN/Tp08duNZDKykoFBQVpw4YNLl/D3XOuqanRlClT1LVrVx0+fFjBwcFasmSJ3XNiY2Ptyj11KS8vV2BgoFlUcFZuqP/9lqSVK1eqS5cuducUHR2t/v37u7w4RwghpOXDyg2UG+wuNmZmZjY6bvu27crKzGq5c7BYlbE9Qxnb7W/dkJGRod0Fu5u0r125u2QYhhYsWNDs74O74+pkZmTqkUceUdzauBb/DAAPO8oNAPBwotwAAAAAb3Q35Yb09HT961//Mn3yySdKSEhQx44d9dprr5nj77zAfPToURmGoffff99hv3V/mf/ll1+a4+pfxK2fuou4MTEx8vPzU0hIiK5fv97oOUyZMkXDhg1rcMz27dtlGIYuXLjg8Ni6devk5+enW7dumeWGgoICuzHnz5+XYRh69913zW31SwHHjx+XYRhat26d/va3v9kZNWqUQkNDJd0uN5w6dcruNYqKimQYhsrKyiQ1vdzw1VdfNflYnJ2HVFtuiIyMtNtWv9yQkZEhX19fFRYWOrxGcHCwVq5cKUk6efKkDMPQBx98IEmqqqpS165dlZmZ6XAuV65c0ZEjR1RQUKCwsDAZhmHeRqOxcoO7n0epttxQv2wjSf369dOyZctcvoa75yxJFRXl6tWrl/z8/DRs2DCHz3JsbKwCAwNlszmuSjJ9+nTze+Sq3HDn91uSTpw4YbfyhM1mU48ePZScnOzyfAghhLR87rXcUFdsqCs01P/aG3h6TvSBKTc8rF4d/6oef/xxWS2ePY6JEyeyagPQTLzt5xzlBgBoHpQbAAAA4I3uptzwr3/9y+nj2dnZdhfi77zA/OGHH8owDB0+fNjheXUXWouKisxx//73vxs8lrqLuAEBAYqLi5Ovr6/WrFnT6DmEhYVp0qRJDY5ZvXq1/P39nf4Fe905nj9/3iw3vPfee3Zj3Ck37N+/X4ZhqGvXrnryyScdDBgwQNLtcsNvv/1m9xr3Wm64c3/uHouz85Bqyw3Lly+321a/3BATEyPDMJzu/8knn1RUVJT53IiICPM1Skq+kJ+fn13R5ODBgxo9erT8/f01YMAAvfbaa1q8eHGTyg3ufh6l2nJD/fOTGi83NOWcpdoVIwzD0MyZMx32FRsbq759+zp9neXLlysoKEiS63JD/c+PJI0ePdp8rQMHDsjPz0/nz593eT6EEEKcp6amxtTYmMZyL+UGV0UGbys4eHpOlHKDh+Xm5Mrf319rYtd47Bjy8vLUvn17JSQkePz9AB4G3vZzjnIDADQPyg0AAADwRs1Zbvjss89kGIasVqsk+wvMx44dc1oEkKRPP/1UhmHo4MGDOnLkiAzD0Mcff+ww7ptvvjEvRtddxN2zZ48kacWKFfL19XV6sfrOTJw40e4WB3W5fPmyiouLVVFRbq7c4OyCcFxcnPz9/VVVVXVP5YYTJ76TYRg6cOBAg8fbUuWGO2/74O6xODsPqbbccOetKyTHcsOOHTvk6+trdxsEV9m5c6c6duyoyspKLVmyRJMnTzYf++233xQUFKTp06eroqLc3P7Pf/6zSeUGdz+P0t2XG5pyzvv2fSDDMLRo0SIZhqHCwkK7x2NjY9WhQwfZbFUOz502bZoGDRokyXW54c7vd10sFosCAgJ0+fJlLV261O59JoQQ4n6qqqp0/fp1VVVVOS0w2Gy3H28sd1tuaKzA4E0FB0/PiVJu8ALr16/X2jVrPfb66WnpWhS1yOPvA/Cw8Lafc5QbAKB5UG4AAACAN2rOcsPChQtlGIaOHDkiyf4Cc2Vlpbp3766JEyc6PG/mzJkKDg7W5cuXdeXKFQUFBWnevHl2YyoqKhQUFKSMjAxJjhdxKysr1bdvXw0YMEDXrl1zeQ4JCQny9fXV6dOn7LbHx8erR48eunbtmr755hsZhqG0tDS7MdeuXVOfPn300ksvSdI9lRtu3LihJ598UtHR0XbPtdmqFBkZqaSkJEn3p9zg7rE4Ow/JvXJD3a0v6m6DUJdff/1VgwYN0hdffGFuKy8vV0BAgIqKivTEE0/YvY91t4yoX8RITU1tUrnB3c+jdPflBnfP+fz58+ratasWLlwoSZo9e7Y6deqk06dPm8+JjY2VYRjau3ev3b4qKsrVsWNHcxWIppQbKisrFRwcrNzcXHXr1k379n3g8lwIIYS4zhdffKGYmBht3bpV//3vf82CQ01NjS5fvqyUlBTFxMTY/V/nKndTbnC3uOAtBQdPz4lSbgCAZuZtP+coNwBA86DcAAAAAG90N+WGtWvXqrCw0JSVlaVx48bJ19dXU6dONcfXv8C8a9cuGYahhQsX6vjx4zpx4jstW7ZMhmFo27Zt5rjExEQZhqH169fr5MmT+vjjjzVhwgR1797dvEhb/yLundtiYmJcnkNFRYW6du2qAQMGqLi4WCdPnlRqaqqCg4Ptygxz5sxRQECA0tLS9NNPP+nQoUMaM2aM/Pz8zPJGU8oNr776qgYMGKAPP/xQZ86ckSTl5OTI19dX8fHxOnHiOx05ckSLFi1ScHCwLl68KMn9coPNZlNAQICmTZumTz75RP/973+dnr+ri93uHIur83Cn3CDVlga6dOmi3bt369SpUyouLtaYMWM0evRoh790nT59unr3fkrBwcF2ZZXvv/9ehmHojTfe0OnTp3Ty5EmlpaWpa9euMgxDf//731VVVdVouUFy//N4t+UGd87ZZrMpMjJSvXs/pStXrkiqLSz06NFDI0eONP/KNzY2VgEBAQoODlZ+fr5OnTqlkpISjRgxQh06dNDZs2clNa3cIEkrV65Uly5d1L17d7dWmCCEEOKYL7/8UvPnz9czzzyjzMxM/frrr7LZbDp37pyysrLUv39/zZ8/X19++WWj+2pquaGphQVvKDh4ek6UcgMANDNv+zlHuQEAmgflBgAAAHijuyk31Ofn56chQ4YoISHB7gKpswvMRUVF6t37KfO5ISEh2r17t92Y6upqpaenmxesDcNQv3797P7i0Vm5QZKioqLk6+urr7/+2uV5nD59Si+++KL8/PzM41+0aJHdBeCqqiqtX79ewcHB5jEMHTrU7rYXTSk37Nu3Tz179pSvr69diWL37t3q0aOHDMNQQECAJk2apE8//dR83N1yg1S7+kTd8dYVMOqnoYvdjR2Lq/Nwt9xw48YNRUdHq3PnzjIMQ127dtW8efP0448/OhzL/v37zds01E9SUpI6dOhgfu8mTJigX375xTz2c+fOuVVukNz7PN5LuaGxc05LS5NhGPr888/tnrdv3z4ZhqENGzZIqi039OzZU3v37jXP0zAMDRs2zFytQmp6uaHuliQNFYIIIYQ0nPLychUVFSksLEz9+/fXzp079dVXXyknJ0cDBgxQWFiYioqKVF5e3ui+mlJuuNuigqcLDp6eE6XcAADNzNt+zlFuAIDmQbkBAAAA3qgp5YbmTHl5uS5cuNDouPPnz9utHNCcuXbtms6ePdvgX6zX1NTo3Llzunr1aoscQ10uXLjg8gL0/U5LH0t1dbXOnTsnm63xe4+7SmVlpc6cOaPr16+b265fv37XnxV3P493m3s957pyg1S7SseZM2fMlR7uJYcPH3ZaEiKEENK0XLlyRcXFxerRo4f69++v8PBw9e/fXz169FBxcbHbP7PvZuWGu/n9j5UbKDcAQLPxtp9zlBsAoHlQbgAAAIA38lS5gRDifu4sNzRnZs6cqeeff77Z90sIIa0t1dXVunr1qoqLixUWFqb//d//VVhYmIqLi3X16lVVV1e7tZ+mlhseRJ6eE6XcAADNzNt+zlFuAIDmQbkBAAAA3ohyAyHen+YuN8TExOi5556Tr6+vW/eAJ4QQ0niqq6t15coVFRUVaevWrSoqKtKVK1fcLjZIlBseynLDkhUxslo8f7EPAFqE5Y+fc54+jjtQbgCA5kG5AQAAAN6IcgMh3p9Dhw6psLCw2fZXWFiomJgYHThwoNn2SQghpDbl5eU6d+6cysvLm/xcyg0PYblhzfqNysjI8vjFPgBoCRkZWVqzfqPHj+NOS1as1t/+9jePXxQEgAcd5QYAAAB4I8oNhBBCCCHeEcoND2G5ITNrh5ZHr6ktOLCCA4CHhaW22LA8eo0ys3Z4/njusGb9RmVmZXv8oiAAPOgoNwAAAMAbUW4ghBBCCPGOUG54CMsNVmttwWHN+o1asiJGi1esBoAH3pIVMX+UCLyr2FD3M7e2dJHNCg4AcA8oNwAAAMAbUW4ghBBCCPGOUG54SMsNAID763apzPNFEAB4UFFuAAAAgDei3EAIIYQQ4h2h3EC5AQAAAPAKlBsAAADgjSg3EEIIIYR4Ryg3UG4AAAAAvALlBgAAAHgjyg2EEEIIId4Ryg2UGwAAAACvQLkBAAAA3ohyAyGEEEKId4RyA+UGAAAAwCtQbgAAAIA32ruvWDU1NZ6eyyeEEEIIadWpqanRXsoNlBsAAAAAb0C5AQAAAN6o5OARlZZd9PR8PiGEEEJIq05p2UWVHDzi8d8NW5qn50QpNwAAAABuoNwAAAAAb1RadkEffFKi0rKLrOBACCGEEHKfU1NTo9Kyi3/8PnbB478btjRPz4lSbgAAAADcQLkBAAAA3qq07IJKDh7R3n3F2gMAAID7Zu++4j9W0nr4iw02G+UGAAAA4IFAuQEAAAAAAABAa+bpOVHKDQAAAIAbKDcAAAAAAAAAaM08PSdKuQEAAABwA+UGAAAAAAAAAK2Zp+dEKTcAAAAAbqDcAAAAAAAAAKA18/ScKOUGAAAAwA2UGwAAAAAAAAC0Zp6eE6XcAAAAALiBcgMAAAAAAACA1szTc6KUGwAAAAA3UG4AAAAAAAAA0Jp5ek6UcgMAAADgBsoNAAAAAAAAAFozT8+JUm4AAAAA3EC5AQAAAAAAAEBr5uk5UcoNAAAAgBsoNwAAAAAAAABozTw9J0q5AQAAAHAD5QYAAAAAAAAArZmn50QpNwAAAABuoNwAAAAAAAAAoDXz9Jwo5QYAAADADZQbAAAAAAAAALRmnp4TpdwAAAAAuIFyAwAAAAAAAIDWzNNzopQbAAAAADdQbgAAAAAAAADQmnl6TpRyAwAAAOAGyg0AAAAAAAAAWjNPz4lSbgAAAADcQLkBAAAAAAAAQGvm6TlRyg0AAACAGyg3AAAAAAAAAGjNPD0nSrkBAAAAcAPlBgAAAAAAAACtmafnRCk3AAAAAG6g3AAAAAAAAACgNfP0nCjlBgAAAMANlBsAAAAAAAAAtGaenhOl3AAAAAC4gXIDAAAAAAAAgNbM03OilBsAAAAAN1BuAAAAAAAAANCaeXpOlHIDAAAA4AbKDQAAAAAAAABaM0/PiVJuAAAAANxAuQEAAAAAAABAa+bpOVHKDQAAAIAbKDcAAAAAAAAAaM08PSdKuQEAAABwA+UGAAAAAAAAAK2Zp+dEKTcAAAAAbqDcAAAAAAAAAKA18/ScKOUGAAAAwA2UGwAAAAAAAAC0Zp6eE6XcAAAAALiBcgMAAAAAAACA1szTc6KUGwAAAAA3UG4AAAAAAAAA0Jp5ek6UcgMAAADgBsoNAAAAAAAAAFozT8+JUm4AAAAA3EC5AQAAAAAAAEBr5uk5UcoNAAAAgBsoNwAAAAAAAABozTw9J0q5AQAAAHAD5QYAAAB4q9KyCyo5eER79xVrDwAAAO6bvfuKVXLwiErLLnj8d8L7wdNzopQbAAAAADdQbgAAAIA3Ki27oA8+KVFp2UXV1NSIEEIIIYTcv9TU1Ki07OIfv489/AUHT8+JUm4AAAAA3EC5AQAAAN6o9i8FL3p6Xp8QQgghpFWntOyiSg4e8fjvhi3N03OilBsAAAAAN1BuAAAAgDfau6+YFRsIIYQQQjycmpoa7d1X7PHfDVuap+dEKTcAAAAAbqDcAAAAAG+0Z1+xp+fyCSGEEEKIpD2UGyg3AAAAAN6AcgMAAAC8EeUGQgghhBDvCOUGyg0AAACAV6DcAAAAAG9EuYEQQgghxDtCuYFyAwAAAOAVKDcAAADAG1FuIIQQQgjxjlBuoNwAAAAAeAXKDQAAAPBGlBsIIYQQQrwjlBsoNwAAAABegXIDAAAAvBHlBkIIIYQQ95OcnKzx48c3OGb8+PFKTk5u8r4pN1BuAAAAALwC5QYAAAB4I8oNhBBCCCHOU1RUpPHjx9vp37+/unXr5rD9Tt26dVP//v0dthcVFTX4epQbKDcAAAAAXoFyAwAAALwR5QZCCCGEEOdJTk5Wv379lJycbKorONy5rb66YsOd2+r201AoN1BuAAAAALwC5QYAAAB4o+YqN5w6dUopKSnat++DZtlfU/Lrr79q//79+vTTT1VaWnpP+7p165aOHTumvXv36uuvv9atW7ecjqusrNShQ4f07rvv6tixY7LZbE7HlZWVqbi4WPv379cvv/zi8nVPnTqlffv26fPPP9eFCxeafNwnTpzQ559/7vJxd4+jfmy2Kh09elTvvvuuDh06pMrKSqfj3H0/XOXatWtKSUnR9u3bXe4/JSVFKSkp+vXXXxs83tTUVKWkpOinn35q0jEQQggh9ZOcnKxXXnnFYdvd3JbilVdeodxgo9wAAAAAPBAoNwAAAMAbNVe5YdGiRTIMQ126dNH169ebZZ+N5datW1q2bJkMw1BgYKD8/PwUEBCgtLS0u9rfyZMnNXjwYBmGoc6dO8swDPXr10///ve/7cYdOHBAISEhMgxDQUFBMgxDo0aNUllZmTmmurpaCQkJ8vPzU4cOHRQQECBfX18tX75c1dXV5riqqirNmzdPhmGoY8eO5vicnBy3j7u6ulovvviiJk+e7PQxd47DWc6fP6+RI0fanWevXr106NChJr8fjaWoqEiGYcgwDB05csTh8YsXL5qPb9iwweV+iouLzXH79u1z+/UJIYQQZ3FWbrjbUG6o5ek5UcoNAAAAgBsoNwAAAMAbNUe54erVq+rUqZNZNGjsftLNlYSEBPn7+2vPnj2y2apUWVmpmJgYGYahAwcONGlfNluVBg4cqNDQUJ0+fUqS9OOPP2rQoEHq1auXuWLB5cuX1aNHD4WHh+vcuXOqqanRgQMH1KVLF02ZMsXc39///ncZhqH09HTdvHlTt27d0jvvvCPDMJSZmWmOS01NlWEY2rVrl2y2Kl29elXz5s2Tr6+vvvnmmwaPuaysTF9++aWmTZsmwzCclhvcPQ5nmTBhgrp27apDhw6ppqZGP//8s4YNG6aQkBBdvXq1Se9HYxn78suaOnWq+vTpo0WLFjk8Xldu6Ny5s3r27CmbrcrpfmbNmmUWUyg3EEIIuddQbmh+np4TpdwAAAAAuIFyAwAAALxRc5QbCgsL5efnpwsXLmjUqFEa+/LLDmNu3bqla9euSaotEvzwww9ObyFhs1WZ4yTp999/1+XLlx3G1dTUqEuXLnrzzTfrPd+m0NDQRpeLrp+6v/gvKSmx275//34ZhqGDBw9Kul0WOHz4sN24pKQkGYZhntPIkSP1/PPPO7zO8OHDNW7cOPPrvn376tVXX7Ubc/XqVXXu3FlLly5t8JgDAgLMVQpclRvcPY6qqtpySF1p4JdffpFhGEpJSbF73sGDB2UYhvbu3SvJ/fejoZw+fdosI2zYsEGdOnVyuP1FXbmhboUQZ7fgqKioUEBAgDmGcgMhhJB7TXJysrp166bx48ffs27dulFusFFuAAAAAB4IlBsAAADgjZqj3DB69GjzwnpOTo4MwzBXP6hLbGysevbsqffee08dO3Y0L8j3799f3377rTkuNzdXgYGBqqysVGRkpPz8/PTRRx85vOZvv/0mwzC0fft2h8cWLlyorl27Nukc8vPz5e/v73BR/fDhwzIMQ/v375ckLV++XJ06dZLNZnM6ru6CekhIiNPbJ4wfP17Dhg1r9BwmTJigoUOHNnjMv/32m8rKylRWVqYXXnjBabnBneOQpA0bNsgwDFksFknSe++9J8MwdPToUbvn2WxV6tixo6Kjo5v0fjSU+Ph4denSRTdu3NDJkydlGIYKCwvtxtSVG7Zt26YXX3xRb7zxhsN+cnJyFBQUpJKSLyg3EEIIaZYkJyerX79+Sk5Ovmd1+2kolBsoNwAAAABegXIDAAAAvNG9lht++OEHu7/kv3Tpkvz9/R0uqMfGxsrf31/du3fXe++9p7KyMn311VcKDw9Xhw4d9PPPP0uqLTd07NhRM2bM0JgxY7Rjxw6VlZU5vO7Nmzfl5+fn9ML9pEmTZBiGQ1HhbhIfHy9fX1/98ssvkqQpU6YoNDTUYVxpaakMw1B2drbLfV26dEnBwcHmbReOHj0qwzD0wQcfOIxdsmSJgoOD3T7OyMhIp+UGd45DklJTU9WnTx+9//77kqTt27fLMAxdvHjR4fnPPvusZsyYIene3g+ptiwREhJit0pFWFiYRo0aZTfuznJDYWGhOnTo4LCiR0REhBYsWKB///vflBsIIYQ0S7gtRfPz9Jwo5QYAAADADZQbAAAA4I3utdwQGxurzp072xUJJk+erB49eqiqqspu3J0rINSlvLxcgYGBWrx4saTacoNhGHr99ddls9mvBlA/Y8aMUffu3XX+/Hlz2+HDh+Xn5yfDMHT27Nl7Orc9e/YoICBAK1euNLdFRkYqIiLCYWxFRYUMw1BaWprTfVVUVOill15S586dzSLHV199JcMw9OmnnzqMX716tfz9/d0+VnfLDc6Ow1m2bt0qwzD0+++/OzwWFhamiRMnmq97N+9HXT766CMZhqGvv/7a3LZt2zYZhqGTJ0+a2+4sN1y9elWBgYHKy8szH69b8eHAgQOUGwghhDRbKDc0P0/PiVJuAAAAANxAuQEAAADe6F7KDTdv3lT37t01efJknT59ypSSkuJQZIiNjVVgYKBsNsfCwvTp082//q8rN3z11VeNvv7x48cVHBysJ554QkuXLtW8efPUpUsXLVq0SIZhqKKi/K7O68qVK+Y+lixZIpvtdknjlVde0fDhwx2ec+nSJZcX8z/77DM9/fTTCgkJsbsFx9dffy3DMJzedmPlypUKCAhw+5jdKTe4Og5nSU5OlmEY+u9//+vw2ODBgzVp0iRJd/d+3JnXXntNTzzxhH766Sfz81NSUiLDMBQTE2OOu7PcIEnz58+3W91h7dq16tu3r6qrqyk3EEIIabZQbmh+np4TpdwAAAAAuIFyAwAAALzRvZQb3n//fRmG4dKUKVPMsbGxserbt6/T/SxfvlxBQUGSbpcbfvvtN7eO4fz589qwYYOmTJmimJgYHTt2TOnp6fL391d1dXWTz+nzzz9Xr1691KdPH4dVJiTp9ddfV79+/Ry2nz17VoZhKCcnx9x29epVLVy4UIZhaMGCBaqoqLB7znfffSfDMFRUVOSwvwULFqhbt25uH3dD5YbGjsNZsrKyZBiG3aoYdenTp49mzZolqWnvR/2UlZWZq2w4061bN924cUOSY7nhwIEDMgxD//nPf1RVVaUePXooMTFRkig3EEIIabZQbmh+np4TpdwAAAAAuIFyAwAAALzRvZQbJkyYoL59++rIkSMOZs+eLT8/P5WWlkqqLTd06NBBd66CUJdp06Zp0KBBkm6XG+68zUVTM2/ePHMliKakqKhIfn5+WrZsmcvXX716tfz8/HT9+nW77Z999pkMw1Bxce37+fvvv+u5557T008/rQMHDjjdV92tGxISEhwee+655zRixAi3j91VucGd43CWDz/8UIZh6J///Kfd9srKShmGobi4OEnuvx/OkpqaKsMw9Mknnzh8fupW/3j33XclOZYbqqur9fTTT2vDhg365JNP7G5DQrmBEEJIc4VyQ/Pz9Jwo5QYAAADADZQbAAAA4I3uttzwyy+/yNfX1/xr+fo5ePCgDMMwJ/FjY2NlGIb27t1rN66iolwdO3ZUVFSUpKaVGyIjIzV06FDZbLdvdXH58mV16tRJW7dubdL5lJaWKigoSBs3bmxw3P79+2UYhv7xj3/YbX/rrbfk7++vy5cvS5JiYmIUEhKic+fONbi/YcOGKTQ0VFVVt0sfp06dUkBAgFkgcCeuyg3uHkf9VFSUy8/PT4sWLbLbXlhYaFdacPf9qJ+amhr1799fL730ktPHKysrFRQUZF5Qql9ukKTNmzerZ8+eeu211zT25ZfN7ZQbCCGENFcoNzQ/T8+J3tdyQ3x8vHr16uXgT3/6k9PtqSmp92Wi+p2kd2QYhtNjuFNSUpKi3o7S/Pnzzec+9dRTdvvKyMiQ1eL5yXcAAAA0L8oNAAAA8EZ3W25ITEyUYRg6c+aM08fr/rK+b9++qq6uVmxsrAICAhQcHKz8/HydOnVKJSUlGjFihDp06GD+1X1Tyg27U9hszgAAIABJREFUd++WYRhatmyZvv32Wx06dEjPP/+8nnzySbvbKWzZskVdunTRnj17XO4rKSlJfn5+evfdd/Xpp586qLuVw82bNzV48GD16NFDu3fv1okTJ7R582YZhqHly5ebYwICAjRz5kyn+zp8+LD5ukVFRTIMQ2+++aYOHz6s/fv3KyIiQkFBQeZ74k6clRuachzO3qNFixbJ19dXSUlJOnHihPLz8/XEE08oLCzMLGO48344S91tJQoLC12Oeeutt8wVGZyVG86cOWPewsJqtZrbKTcQQghprlBuaH6enhO9r+UGp5PEuwsVGNjRoxPV7yS9o2effdatsW8vfNuu3NCrVy+7x/v366/8vHyPT74DAACgeVFuAAAAgDe623JDnz599OKLLzY4ZuPGjeatDWJjY9WzZ0/t3btXPXr0MC9KDxs2TMePHzef09TbUuTk5GjMmDHy8/OTr6+vwsPD9eOPP9qN2bBhg8MF8PqZPHmyeUzO3HlLh7Nnz2rcuHHmYwEBAXa3svj2228b3Ff91QoyMzMVHBxsPt6/f/8m3UJCcl5uaMpx1L1HFovF3FZZWanFixcrICDAfE5kZKR++eUXu9dp7P1wlnnz5ikwMFBXr151Oaak5Avzth3Oyg2SNGbMGAUFBdm9FuUGQgghzRXKDc3P03OilBusTSs35ObkKicnx/yacgMAAEDrQLkBAAAA3uhuyw1NTV25QZJsNpvOnDmjK1euNNv+KyoqGrxQHh0drWPHjjXb60m1F//Pnj1rd0uJu011dbXOnTunioryZjiy5k1VVZXOnj3baOGkOd8PQgghxBtCuaH5eXpO9IEpN1gKLW7tz2Jxb9ydmlJuqO+uyg33eNsKd98LAAAANB/KDQAAAPBGnig33O989dVXeumll2Sz2Tzy+oQQQgh5MJOcnKz+/fsrOTn5ntXtp6FQbmjl5YbExESFhoaa9wELHRSqkSNHKiMjw2HsihXLNWTIEIWFhSkiIkKRkZFKSU5RSnKKZsyY0eAxNKXcEB0drRUrVphf15UbJk+erLChYfL39689jqFhWrNmjTlu/fr1Ch8errCwMIWFhWnokKGKWR1jt+/169YrKipKlkKL3l74tkJDQzVx4kRZrVbFxsQqNDRUYUPD9Ne//lUDBw7U+PHjlZuT6/GJfqAlbUncoqCgII8fBwAAlBsAAADgjVpDueHEiROsJkAIIYSQJqeoqEivvPJKsykqKmrw9Sg3tOJyQ1pqmnr16qWEhAS7lQ7iN8Srf7/+dmOnT5+uF194UYW7C81t2dnZGjlypNasWaMxY8Y0eAxNKTe8vfBtzZ8/3/zanZUbFi9arPDh4dqVu8vclpeXp4iICM2dO9fctnLFSr0+7XUNHTJUU6dONcfHx8crdFCo8nbl2e13xYoVGjJkiMcn+oGWRLkBAOAtKDcAAADAG92vcsOhQ4dUWFh4X16LEEIIIeRBDOWGVlxumPDqBK2JXeP0OUOGDFF2drasVqvS09I1cOBAp+Py8vIUEhLiVrnhqaeeUlLSFpdydubIam16uSFnZ4769u3r9FYSFotFvXv3VlZWlqzW2nJDly5dHM574sSJWrtmrdNjHzpkqDIzMj0+2Q+0FMoNAABvQbkBAAAA3uh+lRsIIYQQQkjDodzQissNixctVl5entPnDB48WOnp6bJaay/8r1692uX+p0yZ4la5ITCwo1584UWX4uPjZbU2vdwwY8YMLVu6zOVrR70dpVmzZslqrS03OFtBYvHixXpjzhtOn79p0yazHAF4i9h3cjV5pePtY+pLzSrQhOUZyti52+WY5io3JP/xWpk5hfe8LwBA60S5AQAAAN6IcgMhhBBCiHeEckMrLjfUtyt3l5KSkvTmG2+qbdu2ZrkhbGiYsjJdX9xfsWKFR29LEREeoYztri/yJiUl6YUXXpDVWltumDhxosOY3Nxc9evXT6+Of1WJmxOdrgIBeJOxi7er7ciNjY6L3pKrNsPjtSnNeZHJam2+csOqxBy1GR6vzemuXwsAgIZQbgAAAIA3otxACCGEEOIdodzQissN+fn5mjFjhsLCwhQ+PFxjxozR9Nena82aNQofHm6WG/o984wK8gtc7n9d3DqPlht69+6tsKFhDZo6daqs1tpyw4wZM5y+rsVi0fJlyzV69Gg98cQTGjhwoObMmaPc3FyPT/QD9VFuAAA8jCg3AAAAwBtRbiCEEEII8Y5QbmjF5YYhQ4ZoxYoVslocnxMRHmGWG0aOHKmU5BSX+1+4cKFHyw2hg0KVnZ3t1r4bKjfUl5mRqSlTpigkJETZO9zbP9BUuXkWJaTnaUPKrgZv55CbZ9GG1F3anl17ewlX5YaCQqs2p+fpnYzafyPNXW6wWKzasi1fidvylV9gv8JJQ+WG7F2F2pyep92FrvedmlWg9cm7lLgtT5Z6P5cKCiwquOP1tmXvVqGTn10AgAcb5QYAAAB4o737ilVTU+PpuXxCCCGEkFadmpoa7aXc0DrLDakpqXpu5HMun9PvmWfMcsPcN+dq9uzZLscOHTLUo+WGsS+P1fr1613uLz4+XitWLJfV6rrc0FDhYerUqZr75lyPT/bjIWOx6sWodD06YqPaDI83DX0z1a4AkJ1XqH4zku3GPDszWaMXpNuVGywWq8Yt2a5HI27vr9MriXp9dVbzlBssVk1emaG2dxxvu1EbNW317VvWOCs3pGcXqOfUd8zntB25USMXpNmVFxLS89TplUS7c/R9IUFxW2+vmjJgVrL6vr5Vidvy9eeXa8dm73JdBgEAPJgoNwAAAMAblRw8otKyi56ezyeEEEIIadUpLbuokoNHPP67YUvz9JyoV5Yb4tbG6cUXXnQ6Pj0tXY888ohZbsjPy1dISIgyMjIcxq5Zs0YjRoy4r+WGgQMHKjfn9kXPTZs2KXx4uPP9Wazq2bOn4uPjZbW6Ljf079dfWZlZTvcRszpGU6ZM8fhkPx4us9bUlg4il27XOxn5yti5W2MXb1eb4fFalXj78/3E5CS1HblR8+J2KD27QHHJueoxOUltwuPtyg3jltQ+d9yS7dqaWbuywsgFaWoTHt8s5YZJKzLUZni8xizapqTt+dqUlqchb6aqzfB4Ld5Uu7JJ/XJDXoFFAWM26/GJSdqQUrvqxJw1WWo7cqNGL6j9+WKxWNX+hQQFjk3U6qRcZeUWakPKLgWM2azuE5PM1x8wK1ndJiapw0ubNXhOqmavyVJBA6tAAAAeTJQbAAAA4I1Kyy7og09KVFp2kRUcCCGEEELuc2pqalRadvGP38cuePx3w5bm6TlRryw3ZGdny9/f364kYLValZWZpbCwMIWFhSl5a7K5fXPCZj311FNasGCBtr6zVfHx8Zo6darGjBmjLYlb7mu54eWXX9aa2DV22yIiIjR3ruPqCvPnz9fw4cPNr12VG6JXRSt0UKjdihBWq1W7C3YrLCxMG+Mdl/8H7kXk0u16dmay3QoGWbmFajM8XtOiM2W1WrU6qfaWErPX2Bdv8gosMkZvMssNOXmFajtyo0LnON4+5pnpyfdcbsjNt6jdqI0aVG//eQUWdZuYpNELa4sK9csNk1dkqO3IjcrKtV9hYfrqLD0aUbvyQuqOAj0xOUlLE3bajXluQZrajtxkfj1gVu15TFnpWLICADw8KDcAAADAW5WWXVDJwSPau69YewAAAHDf7N1X/MdKWg9/scFmo9zgtNxgtdZe0A8LC9PIkSM1depUDR48WCNHjlRmRqaWLV2mPr37KGZ1jDk+JydHK1Ys1+RJkzV37lwlJ9eWHxI3J2rs2LENHkNzlhsyMzM1cOBAhQ4K1bq4dbJarbIUWjRhwgSFDgrVhAkTNHnyZIWGhuqVV15RXt7ti7quyg1Wq1WLFy9Wn959NG7sOM2cMVORkZEaMGCAli1d5vGJfjy8CgosSkjP04L12WYRYeqq2nLDxD9WS3B2+4WI+almuWFd8i67FRTutHBD9j2XGzakut7/neqXG/pO36o/j03U3LgddiYsrz2vt+Pt97c9e7eit+Rq0ooMu/KG1Vpbbng0YqPyCywe/54BAFoO5QYAAAAAAAAArZmn50Q9Xm5oTN6uPCVuTlR2tvMLl7m5ueYtKpyJXhXtsjBwv1ksFiUnJyt5a7Ly8/Pv6vnb0rdp08ZNSktNk9XSMscJpO4o0LMzk/VoRLzav5CgkKnvaOzibXblhlEL0tUmPN7p88cv3W5e/F+8sbbAsC55l8O4Ne/k3nO5oW7/653s/071yw2dXklUm4h4GaM3OTXnjxUpZsZmKWDMZj0asVGdXklU6JwU9Z621aHc0HFsose/bwCAlkW5AQAAAAAAAEBr5uk5Ua8vNzQmKzNLAwcOdPn4qFGjFB8f7/HjBB4kj41P1J/HJmrLttslnIICi125YcrK2hUO6t/WwWq1avi82ys31K2sEBW/02HcgvX3vnJD3coQSzc57n99yi7FJdfe3qZ+uaHfjGQ9MTmpwfdhacJOtRker1eXbVfeHasyjF283aHc0OXVLR7/vgEAWhblBgAAAAAAAACtmafnRB/4coPVatXgwYO1cOFCh+3z58/XkCFDPH58wIMkJ69QbYbHK3LJdrvtccm5duWGDSm77L6uk5tvsbttQ15B7dd9p291eK3e07Y2Wm5I2pKkzp07u3x8Z16h2o7YqNA5KXbbd+TuVtsRG83jq19umLoqU49GbNS27N12z4uK36nAcYnKyNmtF6LS1WZ4vArq3W6i92uOKzdQbgCAhx/lBgAAAAAAAACtmafnRB+KckPerjyNGztO/Z55RqNGjVJEeIRCQ0M1edJkFe52/KtyAA2wWPX/Rm1Sp8hEbUjdpa2Z+Zq/PlsBYzarTXi8IuanKTev9mJ/vxnJahNeW3BI2p6v1Um5enxikh4dsdHu4v+06Ey1GR6v4fNSFZ+ap/jUPP11bqoeHbGx0XKDOyKXbleb4fEaE5WuzdvytHTTTj312lb9v9GblJtfe6z1yw15BRb5vZigwHGJWpqwU+9k5Gte3A61fyFBY6Jqb3Xz+uostRker0krMpS6o0DrU3Zp2NxUPRpRe9zvZNSubEG5AQBaB8oNAAAAAAAAAFozT8+JPhTlhjvl5uQqPz/f48cBPMiWJuyUMXqT2gyPV5vh8Qocm6i45Fz1n5GsNsPjNS9uh6xWq/ILLAqfX3sLijbD49UmPF5/nZuqMYu22ZUbrFarZqzOstvn4xOTNN+N21K4w2KxavKKDLUbtdHcf8BLm7UyMcccU7/cYLVatS17d+3qEeF/PGfMZo1ekG6WN/ILLLUFjj/2+eiIjRq5IE1xW3PVJrx2vNVKuQEAWgvKDQAAAAAAAABaM0/PiT505QYAzWN3oVXJWQXK3nV79ROLxar07AJZLfZjLRarUrIKVLDb0uh+07MLzPJAS0jPLlBGzu4mPadgt0WpOwpcPp69q1DJWQUqvOO8d+TubtHzAAB4H8oNAAAAAAAAAFozT8+JUm4AYGfg7BRzpYL7acqqjLs63vYvJHjkeBsUHu/x7yMAoPlRbgAAAAAAAADQmnl6TpRyAwAAAOAGyg0AAAAAAAAAWjNPz4lSbgAAAADcQLkBAAAAAAAAQGvm6TlRyg0AAACAGyg3AAAAAAAAAGjNPD0nSrkBAAAAcAPlBgAAAAAAAACtmafnRCk3AAAAAG6g3AAAAAAAAACgNfP0nCjlBgAAAMANlBsAAAAAAAAAtGaenhOl3AAAAAC4gXIDAAAAAAAAgNbM03OilBsAAAAAN1BuAAAAAAAAANCaeXpOlHIDAAAA4AbKDQAAAAAAAABaM0/PiVJuAAAAANxQWFioc+fOAQAAAAAAAAA8jHIDAAAA4EJhYaHHm9EAAAAAAAAAABvlBgAAAMAVyg0AAAAAAAAA4B0oNwAAAAAuUG4AAAAAAAAAAO9AuQEAAABwgXIDAAAAAAAAAHiH+1JuWLxiNQA89Dx9AQ4A0PwoNwAAAAAAAACAd2DlBgAAAMAFyg0AAAAAAAAA4B0oNwAAAAAuUG4AAAAAAAAAAO9AuQEAAABwgXIDAAAAAAAAAHgHyg0AAACAC5QbAAAAAAAAAMA7UG4AAAAAXKDcAAAAAAAAAADegXIDAAAA4ALlBgAAAAAAAADwDpQbAAAAABcoNwAAAAAAAACAd6DcAAAAALhAuQEAAAAAAAAAvAPlBgAAAMAFbyw3fHisQn/d/L06vnFYHed8jdbqjcP66+bv9eGxCo9/JgEAAAAAAID7gXIDAAAA4IK3lRs+PFbh+Yvq8DoUHAAAAAAAANAaUG4AAAAAXPC2csNfN3/v8Qvp8D5/3fy9xz+bAAAAAAAAQEuj3AAAAAC44G3lBm5FAafeOOzxzyYAAAAAAADQ0ig3AAAAAC54XbnB0xfR4bU8/dkEAAAAAAAAWhrlBgAAAMAFyg14UHj6swkAAAAAAAC0NMoNAAAAgAuUG/Cg8PRnEwAAAAAAAGhplBsAAAAAFyg34EHh6c8mAAAAAAAA0NIoNwAAAAAuUG7Ag8LTn00AAAAAAACgpVFuAAAAAFyg3IAHhac/mwAAAAAAAEBLo9wAAAAAuEC5AQ8KT382AQAAAAAAgJZGuQEAAABwgXIDHhSe/mwCAAAAAAAALY1yAwAAAOAC5QY8KDz92QQAAAAAAABaGuUGAAAAwIWHstww97Be33laaZ+X6Z8/XtF731Zo/Qfn1XXJNx6/QN8cuiz+RnHvn9MHx/6rL0/9rr8dLtes3DPq+OZhjx/bg15uuHHTJuvXl7Ts7z9r1Ds/aGLmT9rwwTn99t+bHv+34Y7/lF3Thg/OqbTiwTheAAAAAAAA2KPc4AaLxaLY2FjNnzdfSUlblJSUpDVr1shqtSo3N1eLFy1Wfn6+x4+zJcX///bu/C+KO98X//172sTJ5E5OMjdntjN3cjNzZ87cuXPPzLnfq6hEY9naIoi0jSyyiTTIJogii4qCsrbGbVwiBlGDkX0H2RdZpAHpbroLfX1/KKro6g1MVDDzyuPxfDzsru1TVZ9q8/DzqvcnJRXp6ekwmUzIOZmDuLi4H7S/zMxMJB9JXvXzIiIiIvLlxxZu+CS2GfWDFgBA/6Qd15rM6J+0AwBsjhfYdqbnrQ7I/zmjE4965/Cv8S2vZX9/Su+A1fECc/MvcLN1GrdaZ/B8/gUAoLbfgnUh9aseQnAVbhpEZfvsmg83DE7a8Me0dmiCavHpoRZ8eaZHuW/v7a/HtYapVX8+lvN1qxmaoFo0D86teluIiIiIiIiIiOjVvfPhhqioKISFhb3RYxiNRmzduhVJSUkoKChAeHg4YmKiYTKZcOzYMfj7+7/V9qyGXTt34UjSEZhMJsTGxCLswA87x5CQkB8ckCAiIiJ6035M4Yb39PUYnbFjxrqA/zjepVr2q4RWPJ1xYF58gd8mtb61gf0t+U8AAJ8lt72W/Q2bHeidnMcH4Q1L3++rQ1blGAAg7dboqocZXOVUjWHW9sODK2+y31lsIv4lugk/CWvAg64Z1bKupxZ8FNWEdfp6tA9bVv0Z8YXhBiIiIiIiIiKid9s7H27YvXs3EhMT3/wxjJ6PERcbh3379r3V9rxtpaWl2LhxI/Ly8l7bPrdt24asrKxVPzciIiIiX35M4YaEa8MAgP/M7va4/MuCXgBATtWY9N3eWrxvaIBmr7R8XUg9PopuUm3z87gW/NroPZiwLqQO/5bYir9kdrpVZ3hvfz2Es9Ix/z2jQzqWy/Y/jWjE/0hph2bf8lNK/DyuBQCQ+fVTt2XrQ+sxY11Abf+c+7bBdfjvSW34KKrJ5/5/GtGIPx3twMcxzW7L3tvfsNTGvbX4b3Ety5/H4vU9VT2OWdsC3jc04D39968s8Sb7XeZtKRRS1THjcfnVhmfQBNUi+tKg6nubfQEdwxbUPJlFz5jVbbs5qwibfenP9f3PMeZjigt5ne6nVjgcntdxOBbQNmTByNS82zKGG4iIiIiIiIiI3m1vLdxw9OhRGI1GZGVlQa/XIyAgAIfjD6vWOXfuHKKiorB7924EBgYi0ZiIivIKj/vLzcnFfv1++Pn5ISAgAPGH4mEymZCTkwO9Xo+dO3diz549SEpKUm1XUFCAyMhI6HQ67N+/HwUFBYiNiUXOyRy3Y+SczMF+/X5s3LhR2VfxhWLs1+/HhfMXYDKZEBQUhPhD8V7bU15WjvhD8dizZw/27NmDw/GHUV5WrhwjNiYWJ7NPIjU1FcHBwcjNyUX2iWzs27cPO3fuxP79+3H61Gmv17W0tBTxh+IREBCAnTt3wmAw4OzZs8rymJgYHM86jujoaOzevRt79+5FZmamsrystAz79+9Hfl4+DAYDdLt0MOw34PTppWPm5OTAz88P5WXlKC8rx/79+3G2YOkYqamp2LdvH3bv3o2IiAjl2ij3Pv0oDAYDdu7cifDwcJw+fRobNmzA+fPnV33AgoiIiMiXH1O4YWzWgeYhq891/k9WF/6wOPXA7460AQD+dLQDZ+5PYF58gdPVE9AE1eKvx7owNCVNZwEAk3Mi9KUDqn0Fnu/H5JwI5/9ahi1KiODJ+Lxq2cKLl8q2n8Q249ue58oym+MFzj2cVIIWnnwQ3oCXL4Ga3udYF+Iehvg4phm/OKyuShFWMQiL/YVynN7JefzPxfOX/eJwK5qGrKq2Puqdw8+dAgwz1gUcvjaMoAt9MFsW0PnUtux5/NeDjXD9737395+e4k32u4+imvB5SpvPdR50zaCh/7nyufTRJD6MbFS18bPkNlXo4JOYZhivDePgxUFogpfuma6wVxVemLE4oD3bq1rn07gW3G2fVrXhdPWYKiTzy8MtqHdqE8MNRERERERERETvtrcWbtDr9di+fTv27duHzMxMGI1GbNiwQakGkJuTC39/fxwIPYBjx44hKSkJW7ZswaG4Qx73d/r0aRw8eBB+fn44cuQITmafRE5ODjZt2oT4+HhkZ2cjKSkJfn5+yM7OhslkQl5eHvz9/REWFobMzExERkRCEAT4+/vjVP4pt2Pk5+Urx0g+koy83DxkZWVh8+bNMFWYYKowYcuWLcjKyvLYnvKyciWokZmRicyMTOzYsQNGo1E6RoUJmzdvhsFgwJ49e5CQkICcnBxs3rwZyUeSkZWVBYPBAH9/f5SUlHi8DnKoIDMzE8ezjiMwMBB79uyByWRCRUUFNm/ejG3btiEqKgrHMo8hMjISfn5+OHH8hHRNcvOwceNGaHdoYTQakXE0A/v27cOWLVuUkEJiYiJ2796tXJONGzeitKQUJpM0Dcf27duRmpKKrKwshOwLQXBwsNK+yMhIbN26Vdl3UFAQvvzyS3z55ZerPlhBREREtJwfS7hhfWg9ACC/enzF28jhhmtNZozO2HHkxgj+Z1o7Pktuw8KLlyj57hl+bWzDLw63IvfeGF6+BISzvdAE1eK/J7XhxUvgVusM/nS0Az+NaMTOwj4svHiJ43elyhD/ntGBpH+MAAD2lw3g7ye6F6sg1GPEbEf9oAX/ntGBf4luhqF8AFbHC5y5P+Gzzaa6KQBA3+Q8Um+O4q/HuvDefs/VECIuDkJceImYy8P4JLYZv09tx73OWczaFpQqE+sPNMBsWcDglB1+ed34JLYZAUX9qgCDHG641TqDWdsCcu+NYduZnmXPY11IHf7zRDeuNZlhsb/Af57oxucp7Su+P28r3DAz54AmqBaRFwdXvE3bkAWavbXYkt+Nx72zmJiZx8W6Z9AE1+HQlSFlvU9imvFhZCP8crvRNDCHrqcW6Ev6oQmqxaW6KWW9v5/ownv6ehQ+GEffhA2VbdP4fWo73ttfj4FJGxYWFpB/bwyafXXIvjuGwUkbGgfm8J/ZXVh/oF6pGsFwAxERERERERHRu+2thRu2bt0Kg8EghQIWv9u+fTtSU1NRUVGBnTt34uDBg6ptjEYjtm/f7nWfSUlJ2LVrl/I5LS0NyUeSVets27YNaWlpMFWYlMoCzsv37t2LTZs2ea0QYTQaERAQoHyOj49HUFAQTCapCsSGDRuUEIBre4xGI3Q6nWrf2Seylf0VnJG2j4qKUpanpqZi69atSnigpKQE0dHRKDxX6Na2kpIShIWF4XzRedX28jWTKyS4XpPg4GDpXiy22c/PT1WpobysHJs3b0ZKcgpMJhMMBoNyb5KTk7Fz506YTFJYZPPmzaq2lZaUYvPmzSgpKcHx48exefNmVZWH0tJSJdCx2oMVRERERMv5sYQbPk9pBwDEXhl+5XDD+KwDPwlbehv+XucsGgYtblUUbrXOoGXYAk2QNMXF4z51dQNNUC26x234um1G+bwl/wkA4LPkpaktEq+PwOp44fbWf9RXQ3CIL/HTiEbv7Q6uQ+TFIXSN2ZRqCA7xJe53z2J7Qa/S5vf2N2DWtoATi0EL2Xv7GzA260DuPen7Izek8MW/JaorPoSWD6B/0o5fLlaCmLEu4OVLqcrFq55HTtUYZm0/rCrHmww3NA1IU3mcqHy64m2uNjzDnzM60L8YPJD9OqEVm/K6lc+fxDTjo6gmWG2i8t2MxYH39PWI+UoKQXzbLfWXU9Vjqn01D87hX+NbUP7dJJ5bRfzkQAPiLg+p1nluFfFRVBOiFqfLYLiBiIiIiIiIiOjd9lbCDUVFRdiwYQPOnDmz9A/FZeXw8/NDXm4eck5K0x4UXyhWbadUSfCy39DQUFVYobysHDknc5CUlISYmBgEBgZiw4YNOH36NE7ln8LGjRtRVFSk2kdsbKwqvODKsN+A6Oho5fO+ffsQGxMLk0mabsE5fOHaHu0OLfbs2YOoqCjFgdAD2LhxI0pKSpCelo4tW7agtLRU2ab4QjG0O7TYtm0bjAlGFBcXe22byWRCUWERjqYfxeHDhxERHgF/f3/s1++HyWRCakoqBEFARYU6uBEXG6dUVwgNDUVYWJjbfgMCAmBMkCpMCIKAtNQ0mExILHbHAAAgAElEQVQmhIeFK+tHRkZi+/btqvOLiorCpk2bkJWVheDgYFVwQ7Z79+6l6hVEREREa9iPJdzwi8OtAICMr5++crgh7dbo0vd7a2F1vEBl+yz2lfSrXKyXqib8bHHaCXn9Xxlbse1MD05Vj+PlS6CyfWnqBU/hhsqOWfRP2t32n3xjFACwq7BvRe3/KLoJ2nO9OPdwEhPPHQCA0sfPoAmqxR/TOwAAuffG3I7TPGRF7+Q8NEG1+KZzFl1jtmWPNWNdQE3vc9V3Kz2PtR5ueDImTWWSeG34lbcVxQV0jlpwrWEKERUD0OytxcacbmX5JzHN2F7Q47bdJ7HNCC7uw8LCAjJvS/1vctbu9Th1fdK1j7o0iPMPJ1Q+T2nDLw+3YGGB4QYiIiIiIiIionfdWwk3HMs8hi+++EL1XV5eHvz8/FBWWqaqBuAsMTEROp3O634FQUBqaipMJmmQf8eOHdi5cyeio6ORlJQEo9GILVu2wFRhQnp6uscqEHq93uMAvGzbtm04evSo8vmLL75AZmYmTCZpSgbnCgTO7akor4Cfnx/Cw8MRFxvnpqK8AgcPHoRer3f/R/SycqSmpmLXrl3w9/fHyeyTHtuWkJCgVEGIj49HZkYmdLt0SExMhMlkQkREBMLDw92226/fr5yzIAhIT09XLa+oqMAXX3yBY5nHUFxcrAqm7Ny5E8nJUiWIwMBA7N271+P5nS04i61btyIzI9Pt3DZv3oycnJxVH6wgIiIiWs6PJdyg2VeHhRcv8VX9lM/1TlWPo+jbSVW4YXfRUpjgpxGNAACb4wXMlgWPfpvUivf09ThzfwKztgU8n3+BxkErir6dRP+kfdlwQ9eYDeLCS6/7N5QPeGz7T8Ia8C/RzR6Xvbe/AZUdswCAP6S1Y3tBLwBg1ub5GAPP7EpbqrtmfV/bxXDD+ZpJ1XcrPY+1Hm6Yty9AE1wH7dlen+tFmgahL+nHwsICLDYRYeUDWH+gHutD6/GH1HboS/rx6aEWt3DDvsUQgzPncMOB8gFogut8HvtKgxRaWX+gHh+EN7j5NI7hBiIiIiIiIiKiH4O3Em6Ii41DyL4Q1XdJSUnYrdsNk0mqMODv76+avqGivALaHVrEH4r3uE950F2eTuHw4cPYvXu3qkpBZGQk9u3bB5PJhMyMTOkYTsvPnTsHPz8/VXjBmVxx4ty5czCZTCg8V4gNGzagqFCq/hAQEKBUIHBtT2lpKTZs2IC83DzVPrOyjiEvT/rOtYLBuXPnlHCEyWSCqcKEiPAIj5Ul5JBAVlaWqr1+fn7K/nft2oX9+/ertis8Vwg/Pz/k5OQobT6SdES1ztH0o/D390dJSQmyT2Rj8+bNqKioQGlJKTZu3Ij8vHyP7TeZTMjPy8exY8dgMpng7++vTG0hO3LkCDZu3KhMu0FERES0lv1owg1BtagftMDmeIEPwhs8Ln9vfz3mxRcor51ShRv8Tz1RrTc3/wLH7oz5PNap6nHYxRfStnvVbVgu3PB12wxq+y2vfH7G68MA4DXgIB9rb3E/fp8qTdPx/53s8rnP+92z6Hhqdfv+g/AG+J96okw5MWNdUKayeNXzWOvhhoWFBfwxrR3v7a/3Wj1hzipinb4ee4qkQEKkaRDrQupxo8kMUVTv51XDDWk3R6AJqsWz5y7HFhdwq9mMzlELGhenzrjbPu3zPBhuICIiIiIiIiJ6t72VcENQUBDi49UhBYPBgIMHD8JkkgbcN23ahLi4OFw4fwFFRUUwGAz48ssvvQ6C55zMUcIEpaWliI2NxY4dO1B8oRilpaVITUmFn58fYmOlKSTOnz+PzZs3IyYmBkVFRcg+kQ3tDi02bNiAgoICj8fIzMxUVZzIzFj6XFFegU2bNkGuQODaHpNJqmywb98+qU0lUps2btyIvNw8pbJDzsmlCganT5/Gxo0bcTzrOEwmKSCh1+tV1SFkpaVS0OBI0hFUVFTg7Nmz2LNnDzZs2ICy0jKUlpbCz89vMQBxDOVl5cjLy8OOHTsQagiFyWRC9ols+Pn5YefOncjLy0NZaRkyMzKxefNmJZRw+PBhBAUFSeeYI00fUl5WDpPJhPj4eGzfvh1nTp9BRUUFcnJy4O/vrwQeDAYDdut241T+KZSWliItLQ2bNm3yWKWDiIiIaC36MYUbNuZ2AwDKHk9BE1zntvzE3TEAwKa8Jz7DDZUds+h8alOFFjRBtci7N46qzllo9taidcTqNrC/PrQeM9aFZcMN8VeHYRdf4OMYdUhBe64XvZPz6mkvnPz9RLfPqTcOX5PCD79Pbcd7+nqYLQs4+2BCvd6+OtT0PsfR29I+sirH8PIl8Gtjm2q97G/GMTUn4r39DV7DDSs9j3ch3HCndRqaoFoEFvXB4XBfHnd5CJqgWtxuMWNhYQGfHWnDn452qNaZmXPgJ2ENrxxuqGyTjl1QPa5a53aLFFSo7XsOi03EB+ENCC3rV60zb1/A/z7WicTr0pQaDDcQEREREREREb3b3ny4ocKELVu24Pjx46rvt2/fjrS0NOVz1rEsbNu2DRs3bsSmTZsQsi8EF85f8Lrf80XnsW3bNmzYsAEpySk4d+4ctm/fjo0bN8LPzw8GgwER4RHYsmULzp2VKi9kZWVhx44d8PPzw65duxAfHy+FFSo8HyMmJkZVccL586n8U6oKBK7tMZmk0MaePXuUNm3btg0ZRzM8bi+Lj4/H5s2bsWnTJvj5+SEwMBDni857bF9cXJyy761btyI1VQp0HDx4EDk5OdiyZQtSU1KVfX3xxReIiYlRqlccPnwY+hA9wsPDlf0IgoCj6UuVLPQhesTGSAGRxMRE7N69W1lWVlqG8LBw+Pn5KUGKuLg45XqeLzqPwMBAbNiwQTmXsLAwj1NlEBEREa1FP6ZwgyaoFmWPpwAA97tnsbuoD782tuFvx7tQXit9X7FYtcFXuOH3qe1YePESle2z+I/jXfgsuQ0J14bx8iWwJV9a91brDKyOF9h2pgefxrdgY2436gctsIsv0DZixX89KA3s//VYFwDgxN0xfHGqB5ogaQqJsVkHeifnsfV0D35tbMPe4n5MPHcgp8p3xYjLDWYlwPG341349FAL/kdKO47cGIFDfIn73bNKKCPqqyG8fAlkfzOO36e24y+ZnSh7PAWL/YUSPPhpRCNmbdI0Ff6nnuCz5DYcuTECi/0FEq+PKMf1FG5Y6Xkk3xjFi5dAcEk//ldm55oMNywsLCBwcXqSvx/vQsXjZ+gcteB+1wz2LH4fULgUUtiS34339tfjeuMUesetuNM6jT+mtWNdSD1+d6QNT81SFYaVhBsWFhbw54wOvKevR0H1ODqGLTh7fxz/Gt+Cv5/oUtbJ+WYMmr21iP1qCI0Dc6h5MovAoj68b2jAqHkeCwsMNxARERERERERveveSuWGV3G+6LxqegqfKkwoKSlRBtMrKipQVFikVBYwVUj7M1WYcDL7pLTu4vcmk1RZICws7PW136U9stLSUqUdK/pH9LJyFJ4rRElxybLrlhSX4Pz586rPpaWlSExMVCoulJWWSVNpuBxfH6JXKmoUFxf7DJP4UlEuXXdv962kuGRF50JERES01vzYwg2aoFqElg9gxGyH83/P518g7sowNPuWKjp4Czdogmrxv4914sn4vLJ9y7AFCdeGleW/PNyK7nGbsnzGuoDQ8gHEXpGqJ8hTX6zT1+NB9yzs4gssvHipbP9xTDOqu2ax8OIlAGDEbMeZ+xNYf8DzlBpKoEBfj5Sbo5ixLrid36nqcbynr1etf6BiEM/mRACAuPAS1V2z2Hq6R7XOr41tqBuwYLEpePFSav/7oUv78hRuWOl5/NrYhp6JeSy8WAxfrNFww8LCAgqqx/GJSyWK9aH1OF75FPP2pfW6n1rx64RWZZ2fhDWgoHocJyqlihjy9BUrDTeY5+zYVdiLdSFL1/zPGR3oempRbXemehw/jZCmCtHsq8PfT3TheuOUspzhBiIiIiIiIiKid9uaCze8KTt27EBkZKQyiG80GrFt2zZp0H8NtO91MxgMiImJ8bnO1q1bkZWVteptJSIiIlqrfozhBtlPIxrxl8xO/Le4FrcpJlZq/YEGr9NEaPbW4pPYZnwSqx4M/zimGetC3KfF8GRdSL3Uvldt2746fBrfgv+T1YV/S2zFOpdQg6uPopqwPtT3Ou/tb8AvDy+/r9d6Hmss3CCbnLWj5sks+iZsEEUv64kLGJy0YXDSpvp+aHIeNvv3O67dsYAnY1aY5+w+1xuZmsfMnGPVn1ciIiIiIiIiInq9/mnCDafyT0G3S4cNGzZg06ZNCAwMRF5u3qq3603ZvXs3MjMzvS4/X3Qe/v7+qqoPRERERKT2Yw430I/Lm+hv5jn7qp/Xm1JSM7nqzzMREREREREREb2af5pwg6y0pHTl014QERER0T81hhvoXbHafZOIiIiIiIiIiOhN+6cLNxARERERrRTDDfSuWO2+SURERERERERE9KYx3EBERERE5AXDDfSuWO2+SURERERERERE9KYx3EBERERE5AXDDfSuWO2+SURERERERERE9KYx3EBERERE5AXDDfSuWO2+SURERERERERE9KYx3EBERERE5AXDDfSuWO2+SURERERERERE9KYx3EBERERE5MWaCzfsrVv1QXRag/bWrXrfJCIiIiIiIiIietMYbiAiIiIi8mKthRv+nNGx+gPptOb8OaNj1fsmERERERERERHRm8ZwAxERERGRF2st3HCrxbzqA+m09txqMa963yQiIiIiIiIiInrTGG4gIiIiIvJirYUbFhakgMOfMzo4RcU/u711+HNGB4MNRERERERERET0T4PhBiIiIiIiL9ZiuIGIiIiIiIiIiIjonxHDDUREREREXjDcQERERERERERERLQ2MNxAREREROQFww1EREREREREREREawPDDUREREREXjDcQERERERERERERLQ2MNxAREREROQFww1EREREREREREREawPDDUREREREXjDcQERERERERERERLQ2MNxAREREROQFww1EREREREREREREawPDDUREREREXjDcQERERERERERERLQ2MNxAREREROQFww1EREREREREREREawPDDUREREREXjDcQERERERERERERLQ2MNxAREREROQFww1EREREREREREREawPDDUREREREXjDcQERERERERERERLQ2MNxAREREROQFww1EREREREREREREa8N/uXLzGxARERERERERERERERERERGtVf9FFEUQERERERERERERERERERERrVUMNxAREREREREREREREREREdGaxnADERERERERERERERERERERrWkMNxAREREREREREREREREREdGaxnADERERERERERERERERERERrWkMNxAREREREREREREREREREdGaxnADERERERERERERERERERERrWkMNxAREREREREREREREREREdGaxnADERERERERERERERERERERrWkMNxAREREREREREREREREREdGaxnADERERERERERERERERERERrWkMNxAREREREREREREREREREdGaxnDDazQxM4+v6p9hbNq26m15XQYmrbjfNfNa9jVjmYfp8SSs845VP683xeEQYbHZX+s+ZyzzuN0yhTmr+37X2jV9MjaHi3WTsDtWvy1ERERERERERERE9PY5HA7YbKs7TtLZ2Yn+/v4VrdvX14eBgYFVba/FYvG5fLnr+UO398Vut8Nuf73jHp60tbVhcnJyVe9DX18fBgcHVd+ZzVPo7Oz8wft+/PgxzOapN34Oo6Oj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" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" width="1113" /></font></p><h2 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px; text-align: left;"><font size="4">自動化</font></h2><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><span style="font-size: small;">自動化は秘密情報の管理をスケールさせるうえで中心的な役割を果たします。この点について、OCI Vaultは秘密情報の管理およびローテーションをプログラマブルにすることでサポートしています。OCI VaultはコンソールだけでなくAPI、CLIからも利用可能であり、したがってマウスクリックからTerraformスクリプトまでお好きな方法で秘密情報管理を行えるということです。どのような秘密データであれOCI Vaultに格納し、APIを用いてプログラムで管理することができます。オンプレミスの秘密情報をOCI Vaultで管理したいり、また、既存の秘密情報管理インフラと連携させることも可能です。</span></p><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><span style="font-size: small;">この自動化についてより詳しく知りたい場合は、<a href="https://www.ateam-oracle.com/secure-way-of-managing-secrets-in-oci" target="_blank">A-Teamのブログポスト</a>をご覧ください。</span></p><h2 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px; text-align: left;"><font size="4">そして追加費用なし</font></h2><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><span style="font-size: small;">効率的な秘密情報管理ははモダンなクラウドインフラの鍵となるパーツです。扱う情報の重要性だけでなく、複雑性も高いことが特徴です。わたしたちはすべてのOCIをご利用のお客様がこの自動化され、スケーラブルな秘密情報管理の機能を活用していただきたいと考えております。そのため、このサービスを無償でリリースしました。すべてのクラウドテナントはOCI Vaultに追加費用なしでアクセスし、秘密情報を保持させることができます。</span></p><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><font size="2">サービスの仕様、挙動についてもっと詳細が知りたければ、<a href="https://docs.cloud.oracle.com/en-us/iaas/Content/KeyManagement/Concepts/keyoverview.htm" target="_blank">テクニカルドキュメント</a>をご覧ください。でも、OCI Vaultを学ぶために一番良い方法は、実際に試してみることです!OCIのコンソールのメニューバーから、Securityのセクションを選ぶとOCI Vaultにアクセスできますよ。</font></p><p class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin: 0px 0px 1em; padding: 0px;"><font size="2"><img alt="Screenshot of the main navigation menu in the Console, showing the Security option and the Vault option." src="data:image/png;base64,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" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></font></p>Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-28016043127932553452020-02-28T11:34:00.001+09:002020-02-28T11:37:12.493+09:00[Functions] NotificationsとFunctionsで新しくできるようになったこと/What's New With Notifications And Functions?<span style="background-color: white; color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif;">原文はこちら</span><br />
<a href="https://blogs.oracle.com/developers/whats-new-with-notifications-and-functions">https://blogs.oracle.com/developers/whats-new-with-notifications-and-functions</a><br />
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;" />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
これまでに何度か素晴らしいサービスであるOracle Notification Service(<b>ONS</b>)とOracle Functionsについてブログを書いてきましたが、本日お伝えするのは我らが開発チームの大きな努力によりあなたの人生をもっと楽にするためにこのふたつのサービスに加えられた新機能についてです。以前もCustom URL、PagerDutyとEメールがONSのサブスクリプションに設定できました。また、Oracle Functionsは、Cloud EventsやAPI Gateway、Oracle Integration Cloudからトリガーできました。しかし今回追加された新機能では、<a href="https://orablogs-jp.blogspot.com/2020/02/announcing-notifications-triggers-for-serverless-functions.html" target="_blank">このふたつの素晴らしいサービスを組み合わせること、また、サーバレスファンクションをONSの通知トピックにサブスクリプション設定することができるようになった</a>のです。これにより、さまざまなかたちのインテグレーションが可能になったというだけでなく、Oracle Cloud上で利用可能な様々なプロダクトを組み合わせて使ってみる理由が新たにひとつ加わりました。</div>
</div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
このふたつのサービスのインテグレーションについて詳しくみていきましょう。以下に挙げる図は<a href="https://docs.cloud.oracle.com/en-us/iaas/Content/Notification/Concepts/notificationoverview.htm" target="_blank">ドキュメント</a>から抜粋したダイアグラムで、新機能を説明するために手を加えています。ひとつめのダイアグラムは、あるモニタリングメトリックルールがなにがしかの状況を検知して発報したアラームにより、ONSの通知をトリガーするやり方を表しています。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/c9f2be2b535e12692a39dc87ec6f8769/2020_02_07_09_17_03.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以前であれば、このようなことが起きた場合にオンコールエンジニアであるあなたが朝4時にベッドで起こされることになる通知というのは、あなたのWebサイトが急にバズった結果、多くのトラフィックでボコボコになっているということを意味する知らせだったかもしれません。なるほど確かにそれはいいニュースかもしれませんが、それでもあなたは多大に必要であろう睡眠を諦め、起きてなんらかの対応をしなければなりませんよね。そうやってあなたが眠い目をこすりながら対応するのではなく、必要な対応が自動的に行われるとしたら素敵じゃないですか?まさしくそれをやれるのがファンクションのサブスクリプションなんです。あなたのファンクションがサーバー追加が必要か識別し、<a href="https://docs.cloud.oracle.com/en-us/iaas/Content/API/Concepts/sdks.htm" target="_blank">OCI SDK</a>を利用して自動化され、スクリプト化されたアクションを実行してくれるんです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
次のダイアグラムは、あなたのサービスやアプリケーションがONSを直接利用することでなんらかのアクションを実行するやり方を表しています。もしかするとあなたは巨大なEコマースアプリケーションがお客様の注文対して受け取り確認のEメールを返信する必要があり、あなたはこのEメールの返信にONSを使おうとしているかもしれません。しかし同時に、あなたは世界初の完全自動化工場も構築しており、お客様の注文に対応するロボットを起動するシーケンスをサーバレスファンクションで実行したいとも思っているかもしれません。そんなことにも対応できちゃうんです!</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/fbf58ef956e11dc38e3f80b9823e55c5/2020_02_07_09_13_37.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="success selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: #dff2bf; border-radius: 2px; border: 1px solid; color: #4f8a10; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 10px; margin-top: 10px; padding: 15px 10px;">
<b>おことわり:</b>もしかしてサーバレスファンクションで起動されるロボットが働く完全自動化工場というのはちょっとありそうもない話だとお考えかもしれませんが、まあでもユースケースの例としてはわかりやすいと思います。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ここからONSの通知トピックへのファンクションのサブスクリプション方法についてご説明させてください。</div>
<h2 class="selectionShareable" style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">"Hello World"サーバレスファンクションの作成</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Oracle Functionsをご存知でない場合は、こちらの動画を見てテナンシーのセットアップ方法について学んでください(あるいは<a href="https://www.oracle.com/webfolder/technetwork/tutorials/infographics/oci_faas_gettingstarted_quickview/functions_quickview_top/functions_quickview/index.html#" target="_blank">こちらにクイックスタートガイドもあります</a>)。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="fluid-width-video-wrapper" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 418.163px 0px 0px; position: relative; width: 743.4px;">
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" name="fitvid0" src="https://www.youtube.com/embed/9hu1L7ptuog" style="-webkit-font-smoothing: antialiased; height: 418.163px; left: 0px; list-style: none; margin: 0px; padding: 0px; position: absolute; top: 0px; width: 743.4px;"></iframe></div>
<br />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
テナンシーの設定が済んだら、"Hello World"のファンクションを作成してデプロイしましょう。今度の動画はあなたの最初のOracle Functionを作成し、デプロイし、起動するやり方を説明してくれます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="fluid-width-video-wrapper" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 418.163px 0px 0px; position: relative; width: 743.4px;">
<iframe allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" name="fitvid1" src="https://www.youtube.com/embed/LCDDH4q6TsA" style="-webkit-font-smoothing: antialiased; height: 418.163px; left: 0px; list-style: none; margin: 0px; padding: 0px; position: absolute; top: 0px; width: 743.4px;"></iframe></div>
<br />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
最初のファンクションが作成できたら次に進みましょう。</div>
<h2 class="selectionShareable" style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">サーバレスファンクションをトリガーするためのサブスクリプションの設定</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
最初のステップは新しい通知トピックを作成する、または既存のトピックを選択することです。そうしたらトピック詳細のページに行って'Create Subscription'をクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/3ecb3a157117d6e56f97de40870a57f8/2020_02_07_09_18_48.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
'Protocol'の選択欄で'Function'を選択しましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/0cbb1f49ae2c0700504d495540a5f6a1/2020_02_07_09_19_34.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
'Function'プロトコルを選択すると、追加の入力欄が表示されます。起動したいファンクションの所在するコンパートメントと、アプリケーションおよびファンクションIDを選択しましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/0c73a176fc8acb428e3b70a55d00df89/2020_02_07_09_20_41.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
サブスクリプションが作成されたら、'Publish Message'をクリックしてテストしてみましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/96482fe94c6103b49fbeb844c747c7a1/2020_02_07_09_21_35.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
なんらかの内容を入力して'Publish'をクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/eced9b73953201b7ecfa79c0ffba78d5/2020_02_07_10_57_53.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
そうしたら選んだファンクションの詳細ページに行き、メトリックを見てそのファンクションが起動されたことを確認しましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/c1a45e84c472f8b2a5981974629dd332/2020_02_07_09_23_53.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ファンクションのObject Storageへのログ出力を有効にしている場合は;</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/c2a5d4cc43494239776414bfbda66b3a/2020_02_07_10_58_57.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
設定したバケットにログが出力されていることも確認できるはずです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/49322ba05a31029c2f316659ffef7c24/2020_02_07_10_59_21.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
それをダウンロードして見てみると:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/ccd39009cb65f17660a723fe1b7524a7/2020_02_07_11_20_47.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
というわけでこれがONSの通知でOracle Cloud上のサーバレスファンクションをトリガーする方法でした。他の例やAPIやCLIのドキュメントへのリンクについては<a href="https://orablogs-jp.blogspot.com/2020/02/announcing-notifications-triggers-for-serverless-functions.html" target="_blank">こちらのリリースのお知らせ</a>を見てみてくださいね。</div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-1666874522139486312020-02-28T11:34:00.000+09:002020-02-28T11:34:11.909+09:00[Functions] サーバレスファンクションをNotificationsからトリガーする新機能/Announcing Notifications Triggers for Serverless Functions<br />
<br />
<div class="cb11 cb11v2" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 2em; padding: 0px; position: relative; width: 826px;">
<div class="cb11w1 cb11v2" style="-webkit-font-smoothing: antialiased; box-sizing: border-box; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 743.4px;">
<div class="cb11v2-cover" style="-webkit-font-smoothing: antialiased; float: left; list-style: none; margin: 0px 0px 20px; padding: 0px; width: 743.4px;">
<img alt="" class="cb11splash" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/211f80a6-5f1b-4459-9268-9903fb8e93c1/File/7a6518d9db208ff586144e7e49b9d31c/0_oracle_notification_service_functions_serverless_hero_image.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="cb11v2-posturltracking" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="color: #100f0e;">Oracle Cloud Infrastructure NotificationsサービスからOracle Functionsをトリガーできるようになりました。</span><br />
<br />
Oracle Functionsはfunctions as a service(FaaS)プラットフォームで、これを使うことで開発者はインフラについて心配することなくビジネス上の要求に見合ったコードを書くことができます。Oracle Functionsが下回りのインフラをマネージし、エラスティックにスケールして受け取ったリクエストをさばきます。Oracle Functionsを使う際にかかる料金は、そのファンクションが実行している間だけのリソースに対してです。</div>
<span style="color: #404040;">Notificationsはクラウドネイティブなメッセージングサービスで、Eメール、PagerDutyおよびHTTPSエンドポイントに対してのプッシュベースのメッセージングをサポートしてきました。NotificationsはEventsやMonitoringのような他のOracle Cloud Infrastructure 上のサービスとの最上級のインテグレーションを提供します。こうしたインテグレーションを使い、ある通知トピックからイベント通知やアラーム通知をEメールやPagerDutyといった複数のエンドポイントに発出できます。</span><br />
<h1 class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-weight: 400; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;"><br /></span></h1>
<h2 style="line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">一般的なユースケース</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
今日のクラウドが普及した世界では、あなたは自身のサービスが常に利用可能であることを期待するでしょう。クラウドインフラ上で起きた問題を迅速に解決することは、この目標を実現するうえで鍵であり、また、成熟したDevOpsのカルチャーの一部です。あなたがオンコールエンジニアで、あなたのサービスに対して必要なごくシンプルなタスク、例えばコンピュートインスタンスのシェイプにメモリを追加してやるといったようなタスクのために早朝3時に起こされるような場面を想像してみてください。我々はこのようなシナリオを自動化することで、カスタマーエクスペリエンスを向上し、また、お客様がもっと多くの時間を生産的な仕事に使うことができるようになると信じています。Notificationsによってコンピュートインスタンスをリサイズするように書いておいたコードのファンクションをトリガーすることで、このシナリオを自動化することができるんです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以下はこのインテグレーションによって実現できる、その他のサンプルユースケースです:</div>
<ul style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Monitoringサービスのストレージ使用率メトリックからあがったアラームをきっかけに、Oracle Autonomous Databaseのストレージをスケールアップする</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Automatic Volume Healingを使い、あるブロックボリューム上の利用率がしきい値を越えたことをきっかけに追加ボリュームを作成し、アタッチすることでボリュームを拡張する。また、その新しいディスク容量の詳細について通知を発出する。</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">サービスやファンクションにカスタムメッセージを発出しつつ、別のファンクションをトリガーする</li>
</ul>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-weight: 500; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;"><img alt="Diagram that shows creating a function as part of the notifications process." src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/211f80a6-5f1b-4459-9268-9903fb8e93c1/Image/7a6518d9db208ff586144e7e49b9d31c/0_oracle_notification_service_functions_serverless_hero_image.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: 229px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 600px;" /></span></h2>
<h2 style="line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">始めてみよう</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Oracle Cloud Infrastructure Notificationsを使っているなら、この新機能はコンソール、SDK、CLIおよびAPIを通じてサブスクリプションを作成するときに利用可能です。以下はいくつかのやり方のサンプルです。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-weight: 500; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">コンソール:トピックへのサブスクリプションの作成</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
トピックにサブスクリプションを作成する際に、プロトコルタイプとして<b>Function</b>を選んでください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="Screenshot that shows the Create Subscription button on the topic details page in the console." src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/211f80a6-5f1b-4459-9268-9903fb8e93c1/Image/7a20e1eef0cec02ed934c9db9615ac03/1_create_subscription_button.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: 553px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 600px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="Screenshot that shows the Create Subscription dialog box with Function selected as the protocol." src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/211f80a6-5f1b-4459-9268-9903fb8e93c1/Image/d9198c400b71ceed53afb1c0e3fa709b/2_select_function_create_subscription.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: 280px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 600px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
トリガーしたいファンクションとそのコンパートメントを選択します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="Screenshot that shows the Create Subscription dialog box with values in the function compartment, function application, and function fields." src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/211f80a6-5f1b-4459-9268-9903fb8e93c1/Image/64b7ffebee8b8af8ccf9de990b35fb2c/3_select_functions.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: 483px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 600px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
サブスクリプションが作成されると、コンソールに表示されます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="Screenshot that shows the subscription details page on the console." src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/211f80a6-5f1b-4459-9268-9903fb8e93c1/Image/338bf54f579bc8bd12fd188ea1e1c2e5/4_function_subscription_view.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: 378px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 600px;" /></div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-weight: 500; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">コンソール:アラームの作成</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
コンソールのMonitoringのページから、<b>Alarm Definitions</b>をクリックし、<b>Create Alarm</b>をクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="Screenshot that shows the Create Alarm button on the alarm definitions page in the console." src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/211f80a6-5f1b-4459-9268-9903fb8e93c1/Image/78dda7fcbc93527866f4a3f843451b8b/5_create_alarm.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: 172px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 600px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
アラームの必要情報を入力します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="Screenshot that shows the Create Alarm dialog box with the Define alarm area in focus." src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/211f80a6-5f1b-4459-9268-9903fb8e93c1/Image/53951a1de97f68c4fcc2fc8c695ad4d3/6_creating_alarm_definition.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: 297px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 600px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Notificationsの欄では既存のトピックを選択するか、ここから新しくトピックを作成することもできます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="Screenshot that shows the Create Alarm dialog box with the Notifications area in focus and the Create a topic link highlighted." src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/211f80a6-5f1b-4459-9268-9903fb8e93c1/Image/19c31abd4033d319270e3d4f65243363/7_alarm_notification.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: 267px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 600px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="Screenshot that shows the Create Alarm dialog box with the Notifications area in focus and the Create a new topic and subscription fields highlighted." src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/211f80a6-5f1b-4459-9268-9903fb8e93c1/Image/7eebe453fc5675248ea9dbf94a8f4db2/8_creating_alarm_function.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: 366px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 600px;" /></div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-weight: 500; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">CLI</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ファンクションのサブスクリプションの作成:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 669.05px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 669.05px;">oci ons subscription create \
--compartment-id "<compartment-ocid>" \
--topic-id "<topic-ocid>" \
--protocol "ORACLE_FUNCTIONS" \
--subscription-endpoint "<function_ocid>"
</code></pre>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-weight: 500; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Java SDK</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ファンクションのサブスクリプションの作成:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 669.05px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 669.05px;">subscription = client.createSubscription(CreateSubscriptionRequest.builder()
.createSubscriptionDetails(CreateSubscriptionDetails.builder()
.compartmentId(compartmentId)
.topicId(topicId)
.protocol("ORACLE_FUNCTIONS")
.endpoint(functionId)
.build())
.build()).getSubscription();</code></pre>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-weight: 500; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Terraform</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Provider Configurationで以下のようにプロトコルを設定します。</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 669.05px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 669.05px;">variable "subscription_protocol" {
...
default = "ORACLE_FUNCTIONS"
...
...
}</code></pre>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Oracle_Functionsのタイプでサブスクリプションが作成できます。</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 669.05px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 669.05px;">resource "oci_ons_subscription" "test_subscription" {
#Required
compartment_id = "${var.compartment_OCID}"
endpoint = "${var.function_OCID}"
protocol = "${var.subscription_protocol}"
topic_id = "${oci_ons_notification_topic.test_notification_topic.id}"
#Optional
defined_tags = "${map("${oci_identity_tag_namespace.tag_namespace1.name}.${oci_identity_tag.tag1.name}", "${var.subscription_defined_tags_value}")}"
freeform_tags = "${var.subscription_freeform_tags}"
}
data "oci_ons_subscriptions" "test_subscriptions" {
#Required
compartment_id = "${var.compartment_ocid}"
#Optional
topic_id = "${oci_ons_subscription.test_subscription.topic_id}"
}</code></pre>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://gist.github.com/recursivecodes/ebbf72adbaa8b80845b2aab5fc3a101a#file-userrepository-java" target="_blank">こちらのGitHubでNotificationsサービスのTerraformの一覧</a>が確認できます。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-weight: 500; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">REST API</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ファンクションのサブスクリプションの作成:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 669.05px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 669.05px;">POST /20181201/subscriptions
Host: notification.<oracle-cloud-infrastructure-region>.oraclecloud.com
<authorization and other headers>
{
"topicId": "<topic_OCID>",
"compartmentId": "<compartment_OCID>",
"protocol": "ORACLE_FUNCTIONS",
"endpoint": "<function_OCID>"
}</code></pre>
<h2 style="line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">課金について</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Notificationsサービスからファンクションをトリガーするのに追加の料金は必要ありません。Oracle Functionsの課金については<a href="https://www.oracle.com/cloud/cloud-native/functions/" target="_blank">こちらの製品ページ</a>を確認ください。</div>
<h2 style="line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">より詳しい情報</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
この新機能のより詳しい情報や、Notificationsサービスについて詳しいことを知りたければ以下のリンクをたどってみてください。</div>
<ul style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://docs.cloud.oracle.com/iaas/Content/Notification/Tasks/managingtopicsandsubscriptions.htm#FunctionProtocol" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Notifications-Functions integration documentation</a></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://blogs.oracle.com/developers/whats-new-with-notifications-and-functions" name="cta=Internal Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Notifications-Functions developer walkthrough blog post</a></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://docs.cloud.oracle.com/iaas/Content/Notification/Tasks/scenarioa.htm" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Example: Automated VM resize scenario</a></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://www.ateam-oracle.com/oci-increases-notifications-fan-out-by-adding-functions-support" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Example: E-Commerce application order processing system using Notifications and Functions</a></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://docs.cloud.oracle.com/en-us/iaas/Content/Notification/Concepts/notificationoverview.htm" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Notifications documentation</a></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://docs.cloud.oracle.com/en-us/iaas/api/#/en/notification/20181201/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Notifications REST API reference</a></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://docs.cloud.oracle.com/en-us/iaas/tools/oci-cli/2.8.0/oci_cli_docs/cmdref/ons.html" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Notifications CLI reference</a></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://www.oracle.com/cloud/systems-management/notifications/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Notifications product page</a></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://www.oracle.com/cloud/systems-management/notifications/pricing.html" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Notifications pricing</a></li>
</ul>
</div>
</div>
</div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-23396424311059034222020-02-23T13:09:00.007+09:002023-04-21T10:32:04.710+09:00[Cloud] Kubernetes CronJobsを使ってOCI CLIコマンドをスケジュール実行/Scheduling OCI CLI commands to run via a Kubernetes CronJob<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span face="arial, tahoma, helvetica, freesans, sans-serif" style="color: #444444;">原文はこちら</span></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://blogs.oracle.com/cloudnative/scheduling-oci-cli-commands-to-run-via-a-kubernetes-cronjob">https://blogs.oracle.com/cloudnative/scheduling-oci-cli-commands-to-run-via-a-kubernetes-cronjob</a></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;" />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" class="cb11splash" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/c55ac495-6bbf-45b8-b9ae-878cb013c8e9/File/e416c6da8ab1b70208038a86cae007b8/kube_sched_oci_cli_v0_01.png" style="-webkit-font-smoothing: antialiased; border: 0px; color: #100f0e; height: auto; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
</div>
</div>
</div>
<div class="cb11 cb11v2" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 2em; padding: 0px; position: relative; width: 826px;">
<div class="cb11w1 cb11v2" style="-webkit-font-smoothing: antialiased; box-sizing: border-box; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 743.4px;">
<div class="cb11v2-posturltracking" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
このブログポストではKubernetes CronJobでOracle Cloud InfrastructureのCLIコマンドをスケジュールで定期的に自動的に実行する方法についてご説明します。</div>
<div class="adwcsengine" data-adgroupid="NONE PROVIDED" data-id="NONE PROVIDED" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
</div>
<br />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
例として使うソリューションでは、Oracle Serverless Functionの呼び出しをスケジュール化します。</div>
<h3 style="-webkit-font-smoothing: antialiased; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Kubernetes CronJobsとは</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
バックグラウンドで様々なタスクをスケジュール実行するのは、開発者、また、運用オペレーターにとってよくあるニーズです。典型的には、"CronJobs"というスケジュール実行方法が知られています。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Kubernetesは<a href="https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/" target="_blank">CronJobs</a>をサポートしており、これはKubernetesがタスクをコンテナ化された環境でスケジュール実行するように設定するというものです。この自動化されたジョブは、UNIXやLinuxシステム上でのCronタスクのように実行されます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Cronジョブは、たとえばバックアップを取ったりメールを送るなどの周期、定期実行されるタスクを作成するのに便利です。Cronジョブはまた、たまにしか行わないようなアクションを指定した時間に一度だけ実行する、というようなことにも使えます。</div>
<h3 style="-webkit-font-smoothing: antialiased; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">OCI CLIとは</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Oracle Cloud Infrastructure CLIは多機能で簡単に使えるツールで、Oracle Cloud Infrastructureのコンソールと同様の機能を提供している他、コンソールではできない機能もいくつかコマンドとして提供されています。このCLIは開発者にとって、また、GUIよりもコマンドラインインターフェースを好むひとにとって、便利です。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
このCLIは多くのOCIサービスの構成やオーケストレーションをサポートしており、コアサービス(ネットワーク、コンピュート、ブロックボリューム)やデータベース、ロードバランシング、サーバレスファンクションなどなどに対応しています。全サポート状況は<a href="https://docs.cloud.oracle.com/iaas/Content/API/Concepts/cliconcepts.htm" target="_blank">こちらのリスト</a>をご覧ください。</div>
<h3 style="-webkit-font-smoothing: antialiased; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Oracle Functionsとは</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://docs.cloud.oracle.com/iaas/Content/Functions/Concepts/functionsoverview.htm" target="_blank">Oracle Functions</a>はフルマネージドで高いスケーラビリティを備えた、オンデマンドのFunction as a Service(FaaS)プラットフォームです。オープンソースのエンジンであるFnプロジェクトをベースとしてエンタープライズグレードのOracle Cloud Infrastructure上に構築されています。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Oracle Functionsを使って、あなたのコードをデプロイし、それを直接呼び出したりなにかのイベントをトリガーとして起動したりできます。そして費用がかかるのは実行されている時間についてだけです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Oracle Functionsはコンテナネイティブです。これはすなわち、各ファンクションは完全に自己充足したOCIR Dockerレジストリ上のDockerイメージであり、ファンクションを呼び出したときにプルされ、デプロイされて実行されるということです。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">チュートリアルの概要</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
まず、OCI CLIを含んだコンテナイメージを構築します。その後CLIの設定パラメータと認証情報を格納するKubernetes Secretを構成します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
そしてそのコンテナイメージをOCI Registryにプッシュします。その後、Kubernetes CronJobsでコンテナ化されたOCI CLIコマンドでServerless Functionを呼び出すようにスケジュールを定義します。</div>
<h2 style="-webkit-font-smoothing: antialiased; line-height: 1.2; list-style: none; margin: 0px auto 2em; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="font-size: small;">事前準備</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
まず、OCI CLIコマンドをOracle Container Engine for Kubernetes(OKE)上のスケジュール化されたCronJobとして実行するために必要となるコンポーネントの実装と設定を行っていきます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
必要となるのは:</div>
<ul style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://docs.cloud.oracle.com/iaas/Content/ContEng/Tasks/contengcreatingclusterusingoke.htm" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Oracle Container Engine for Kubernetes</a>クラスターが起動されていること</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://www.oracle.com/webfolder/technetwork/tutorials/infographics/oci_faas_gettingstarted_quickview/functions_quickview_top/functions_quickview/index.html#" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Oracle Cloud Function</a>がOCIテナンシー内でプロビジョニングされていること</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://docs.cloud.oracle.com/iaas/Content/API/SDKDocs/cliinstall.htm" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Oracle Cloud Infrastructure CLI</a>とkubectlコマンドラインがあなたの開発端末にインストールされ、構成されていること</li>
</ul>
<h2 style="-webkit-font-smoothing: antialiased; line-height: 1.2; list-style: none; margin: 0px auto 2em; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="font-size: small;">デプロイ手順</span></h2>
<h3 style="-webkit-font-smoothing: antialiased; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<b><span style="font-size: small;">1. Kubernetes Secretの設定</span></b></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
この事前準備の前提として、あなたの開発端末にOCI CLIがインストールされ構成されていることが必要です。このプロセスではそのCLI設定ファイルとOCI API秘密鍵の構成が必要になります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
そしてこれらのアーティファクトをKuberenetes Secretの中にコピーしていきます。これはスケジュールされたタスクが実行されるたびに、CLIがあなたのOCIテナンシーにアクセスするのに使われます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
あなたの開発端末から、以下のコマンドを実行しましょう:</div>
<div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_837941" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 804px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 776.8px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">kubectl create secret generic oci-cli-config --from-file=<oci-config-file> --from-file=<rsa-private-key></code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<oci-config-file>の値と<rsa-private-key>の値はあなたの開発端末の適切なパスに置き換えてくださいね。例えば以下のようになります:</div>
<div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_751978" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 832.8px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 805.6px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">kubectl create secret generic oci-cli-config --from-file=./.oci/config --from-file=./.oci/ssh/id_rsa_pri.pem</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
OCI CLI設定ファイルとRSA秘密鍵が、コンテナの実行環境ファイルシステム内でパス/root/.ociへ自動的にマウントされます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
これはOCI CLI設定ファイルのデフォルトのファイルシステム格納位置なので、特に設定をしなくてもCLIはスケジュールタスクが起動されるたびにこれらのファイルを使ってあなたのOCIテナンシーに認証をしにいきます。</div>
<h3 style="-webkit-font-smoothing: antialiased; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<b><span style="font-size: small;">2. CLIコンテナイメージのビルド</span></b></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
あなたの開発端末でoci-fn-cronというディレクトリを作成し、そこにDockerfileという名前のファイルを以下の内容で作成してください:</div>
<div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_403905" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 999.2px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
<div class="line number2 index1 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
2</div>
<div class="line number3 index2 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
3</div>
<div class="line number4 index3 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
4</div>
<div class="line number5 index4 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
5</div>
<div class="line number6 index5 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
6</div>
<div class="line number7 index6 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
7</div>
<div class="line number8 index7 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
8</div>
<div class="line number9 index8 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
9</div>
<div class="line number10 index9 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
10</div>
<div class="line number11 index10 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
11</div>
<div class="line number12 index11 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
12</div>
<div class="line number13 index12 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
13</div>
<div class="line number14 index13 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
14</div>
<div class="line number15 index14 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
15</div>
<div class="line number16 index15 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
16</div>
<div class="line number17 index16 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
17</div>
<div class="line number18 index17 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
18</div>
<div class="line number19 index18 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
19</div>
<div class="line number20 index19 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
20</div>
<div class="line number21 index20 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
21</div>
<div class="line number22 index21 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
22</div>
<div class="line number23 index22 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
23</div>
<div class="line number24 index23 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
24</div>
<div class="line number25 index24 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
25</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 960.8px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">FROM oraclelinux:7-slim</code></div>
<div class="line number2 index1 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">ENV OCI_CLI_SUPPRESS_FILE_PERMISSIONS_WARNING=True</code></div>
<div class="line number3 index2 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">ENV PATH=</code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/rh/rh-python36/root/usr/bin:${PATH}"</code></div>
<div class="line number4 index3 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">ENV LC_ALL=en_US.utf8</code></div>
<div class="line number5 index4 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">ENV LANG=en_US.utf8</code></div>
<div class="line number6 index5 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">ARG CLI_VERSION=2.6.14</code></div>
<div class="line number7 index6 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">RUN mkdir /oci-cli</code></div>
<div class="line number8 index7 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">WORKDIR /oci-cli</code></div>
<div class="line number9 index8 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">RUN yum -y install oracle-release-el7 && \</code></div>
<div class="line number10 index9 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">yum -y install oracle-softwarecollection-release-el7 && \</code></div>
<div class="line number11 index10 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">yum-config-manager --enable software_collections && \</code></div>
<div class="line number12 index11 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">yum-config-manager --enable ol7_latest ol7_optional_latest ol7_addons && \</code></div>
<div class="line number13 index12 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">yum-config-manager --disable ol7_ociyum_config && \</code></div>
<div class="line number14 index13 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">yum -y install scl-utils && \</code></div>
<div class="line number15 index14 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">yum -y install rh-python36 && \</code></div>
<div class="line number16 index15 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">yum -y install gcc && \</code></div>
<div class="line number17 index16 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">yum -y install wget && \</code></div>
<div class="line number18 index17 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">yum -y install unzip && \</code></div>
<div class="line number19 index18 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">rm -rf /</code><code class="js keyword" style="-webkit-font-smoothing: antialiased; color: #006699; display: inline; font-weight: bold; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">var</code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">/cache/yum</code></div>
<div class="line number20 index19 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">RUN wget -qO- -O oci-cli.zip </code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"<a href="https://github.com/oracle/oci-cli/releases/download/v" style="-webkit-font-smoothing: antialiased; color: blue; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">https://github.com/oracle/oci-cli/releases/download/v</a>${CLI_VERSION}/oci-cli-${CLI_VERSION}.zip"</code> <code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">&& \</code></div>
<div class="line number21 index20 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">unzip -q oci-cli.zip -d .. && \</code></div>
<div class="line number22 index21 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">rm oci-cli.zip && \</code></div>
<div class="line number23 index22 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">pip3 install oci_cli-*-py2.py3-none-any.whl && \</code></div>
<div class="line number24 index23 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">yes | oci setup autocomplete</code></div>
<div class="line number25 index24 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">ENTRYPOINT [</code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"/opt/rh/rh-python36/root/usr/bin/oci"</code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">]</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
oci-fn-cronディレクトリに移動し、以下のコマンドを実行してCLIコンテナイメージをビルドしましょう。</div>
<div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_419040" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 743.2px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 716px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">docker build -t oci-fn-cron .</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<h3 style="-webkit-font-smoothing: antialiased; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">3. コンテナイメージをOCIレジストリにプッシュ</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<em style="-webkit-font-smoothing: antialiased; font-weight: inherit; list-style: none; margin: 0px; padding: 0px;">次のステップでは、ビルドしたコンテナイメージを</em><span style="-webkit-font-smoothing: antialiased; font-weight: inherit; list-style: none; margin: 0px; padding: 0px;">クラウドにプッシュします。OCIレジストリサービスの使い方の一連のガイドについては、<a href="https://www.oracle.com/webfolder/technetwork/tutorials/obe/oci/registry/index.html" target="_blank">こちらの記事</a>をチェックしてくださいね。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Oracle Cloud Infrastructureのコンソールにログインしていただく必要があります。また、その際のユーザーは、テナンシーの管理者グループに所属しているか、REPOSITORY_CREATEの権限が付与されたグループに所属している必要があります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<em style="-webkit-font-smoothing: antialiased; font-weight: inherit; list-style: none; margin: 0px; padding: 0px;">適切な権限があることを確認いただき、ユーザーの認証トークンを生成してください。あとで使うので、このトークンはどこかにコピーしておいてください。</em></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
OCIコンソールで、Developer Servies -> Registry(OCIR)タブへと移動し、イメージをプッシュしたいOCIリージョンを選択してください。このリージョンはあなたのOKEクラスターがプロビジョニングされているリージョンと同一のものを選びます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;">OCIレジストリへのログイン</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
あなたの開発端末からdocker loginコマンドでOCIレジストリにログインします。</div>
<div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_352129" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 743.2px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 716px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">docker login <region-key>.ocir.io</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<region-key>はお使いのOCIリージョンごとのコードを表しています。使用可能なリージョンと対応するコードは<a href="https://docs.cloud.oracle.com/iaas/Content/General/Concepts/regions.htm" target="_blank">こちら</a>をご覧ください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
プロンプトが出るので、<テナンシー名>/<ユーザー名>のフォーマットでユーザー名を入力します。パスワードのプロンプトが出たら、先程コピーしておいた認証トークンを入力してください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;">コンテナイメージのタグ付け</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
OCIレジストリにプッシュするOCI CLIイメージにタグを付けます。</div>
<div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_856043" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 743.2px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 716px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">docker tag oci-fn-cron:latest <region-code>.ocir.io/<tenancy-name>/oci-cron/oci-fn-cron:latest</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<b>OCIレジストリへのイメージのプッシュ</b></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
docker pushコマンドを使ってコンテナイメージをOCIレジストリにプッシュします。</div>
<div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_315931" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 743.2px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 716px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">docker push <region-code>.ocir.io/<tenancy-name>/oci-cron/oci-fn-cron:latest</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
OCIコンソールから、新たに作成されたリポジトリとイメージが見えるようになっているはずです。</div>
<h3 style="-webkit-font-smoothing: antialiased; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;"><span style="font-weight: 500;">4. </span>Kubernetes CronJobのスケジュール</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
あなたの開発端末でoci-fn-cron.yamlというの名前のファイルを以下の内容で作成してください:</div>
<div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_222869" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 952px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
<div class="line number2 index1 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
2</div>
<div class="line number3 index2 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
3</div>
<div class="line number4 index3 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
4</div>
<div class="line number5 index4 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
5</div>
<div class="line number6 index5 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
6</div>
<div class="line number7 index6 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
7</div>
<div class="line number8 index7 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
8</div>
<div class="line number9 index8 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
9</div>
<div class="line number10 index9 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
10</div>
<div class="line number11 index10 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
11</div>
<div class="line number12 index11 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
12</div>
<div class="line number13 index12 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
13</div>
<div class="line number14 index13 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
14</div>
<div class="line number15 index14 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
15</div>
<div class="line number16 index15 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
16</div>
<div class="line number17 index16 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
17</div>
<div class="line number18 index17 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
18</div>
<div class="line number19 index18 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
19</div>
<div class="line number20 index19 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
20</div>
<div class="line number21 index20 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
21</div>
<div class="line number22 index21 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
22</div>
<div class="line number23 index22 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
23</div>
<div class="line number24 index23 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
24</div>
<div class="line number25 index24 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
25</div>
<div class="line number26 index25 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
26</div>
<div class="line number27 index26 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
27</div>
<div class="line number28 index27 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
28</div>
<div class="line number29 index28 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
29</div>
<div class="line number30 index29 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
30</div>
<div class="line number31 index30 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
31</div>
<div class="line number32 index31 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
32</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 913.6px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">kind: CronJob</code></div>
<div class="line number2 index1 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">apiVersion: batch/v1beta1</code></div>
<div class="line number3 index2 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">metadata:</code></div>
<div class="line number4 index3 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">name: oci-functions-cron</code></div>
<div class="line number5 index4 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">spec:</code></div>
<div class="line number6 index5 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">schedule: </code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"*/5 * * * *"</code></div>
<div class="line number7 index6 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">jobTemplate:</code></div>
<div class="line number8 index7 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">spec:</code></div>
<div class="line number9 index8 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">template:</code></div>
<div class="line number10 index9 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">spec:</code></div>
<div class="line number11 index10 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">containers:</code></div>
<div class="line number12 index11 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">- name: oci-functions-cron</code></div>
<div class="line number13 index12 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">image: <region-code>.ocir.io/<tenancy-name>/oci-cron/oci-fn-cron:latest</code></div>
<div class="line number14 index13 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">command: [</code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"/opt/rh/rh-python36/root/usr/bin/oci"</code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">]</code></div>
<div class="line number15 index14 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">args: [</code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"--debug"</code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">, </code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"fn"</code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">, </code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"function"</code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">, </code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"invoke"</code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">, </code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"--function-id"</code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">, </code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"<function-ocid>"</code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">, </code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"--file"</code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">, </code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"-"</code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">, </code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"--body"</code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">, </code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"-"</code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">]</code></div>
<div class="line number16 index15 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">imagePullPolicy: Always</code></div>
<div class="line number17 index16 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">volumeMounts:</code></div>
<div class="line number18 index17 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">- name: oci-cli-config</code></div>
<div class="line number19 index18 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">mountPath: </code><code class="js string" style="-webkit-font-smoothing: antialiased; color: blue; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">"/root/.oci"</code></div>
<div class="line number20 index19 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">readOnly: </code><code class="js keyword" style="-webkit-font-smoothing: antialiased; color: #006699; display: inline; font-weight: bold; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">true</code></div>
<div class="line number21 index20 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">ports:</code></div>
<div class="line number22 index21 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">- containerPort: 9081</code></div>
<div class="line number23 index22 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">restartPolicy: Never</code></div>
<div class="line number24 index23 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">volumes:</code></div>
<div class="line number25 index24 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">- name: oci-cli-config</code></div>
<div class="line number26 index25 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">secret:</code></div>
<div class="line number27 index26 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">secretName: oci-cli-config</code></div>
<div class="line number28 index27 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">items:</code></div>
<div class="line number29 index28 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">- key: config</code></div>
<div class="line number30 index29 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">path: config</code></div>
<div class="line number31 index30 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">- key: id_rsa_pri.pem</code></div>
<div class="line number32 index31 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js spaces" style="-webkit-font-smoothing: antialiased; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;"> </code><code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">path: ssh/id_rsa_pri.pem</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以下の置き換えが必要です:</div>
<ul style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">13行目ではあなたのOCIリージョンコードとテナンシー名</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">15行目では起動したいあなたのOracle FunctionのOCID</li>
</ul>
</div>
<div class="cb11v2-posturltracking" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
ファイルを保存して、以下のコマンドでこのCronJobを送信しましょう:<br /><div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_589982" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 743.2px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 716px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">kubectl apply -f oci-fn-cron.yaml</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;">CronJobオペレーションの確認</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以下の手順でCronJobが正しく機能していることを確認できます:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
1. ジョブ実行履歴を以下のコマンドで確認:</div>
<div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_765819" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 743.2px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 716px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">kubectl get jobs --watch</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以下のような出力になります:</div>
<div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_773066" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 743.2px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
<div class="line number2 index1 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
2</div>
<div class="line number3 index2 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
3</div>
<div class="line number4 index3 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
4</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 712.8px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">NAME COMPLETIONS DURATION AGE</code></div>
<div class="line number2 index1 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">oci-functions-cron-1575886560 1/1 43s 4m45s</code></div>
<div class="line number3 index2 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">oci-functions-cron-1575886680 1/1 34s 2m44s</code></div>
<div class="line number4 index3 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">oci-functions-cron-1575886800 1/1 35s 44s</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
2. 以下のコマンドでスケジュールジョブに関連したPod名称を取得します。<job-name>は前述のコマンドの出力から持ってきましょう:</div>
<div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_405839" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 743.2px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 716px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">kubectl get pods --selector=job-name=<job-name> --output=jsonpath={.items[*].metadata.name}</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
3. 以下のコマンドで実行されたCLIコマンドのログを取得できます。<pod-name>は前述のコマンドの出力から持ってきましょう:</div>
<div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_230336" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 743.2px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 716px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">kubectl logs <pod-name></code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
あなたのファンクションが正しく実行されていれば、以下のような出力になります。これはKuberenetes CronJobとして定義したfn function invokeコマンドをCLIが実行した結果生成されたデータです:</div>
<div style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="syntaxhighlighter js" id="highlighter_125766" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 1em 0px; overflow: auto; padding: 0px; position: relative; width: 743.4px;">
<div class="toolbar" style="-webkit-font-smoothing: antialiased; border: none; color: white; height: 11px; list-style: none; margin: 0px; padding: 0px; position: absolute; right: 1px; top: 1px; width: 11px; z-index: 10;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"></span></div>
<table border="0" cellpadding="0" cellspacing="0" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; list-style: none; margin: 0px auto; padding: 10px 0px; width: 1907.2px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="gutter" style="-webkit-font-smoothing: antialiased; color: #999999; line-height: 1.3; list-style: none; margin: 0px; padding: 18px 0px 15px;"><div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
1</div>
<div class="line number2 index1 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
2</div>
<div class="line number3 index2 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
3</div>
<div class="line number4 index3 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
4</div>
<div class="line number5 index4 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
5</div>
<div class="line number6 index5 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
6</div>
<div class="line number7 index6 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
7</div>
<div class="line number8 index7 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
8</div>
<div class="line number9 index8 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
9</div>
<div class="line number10 index9 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
10</div>
<div class="line number11 index10 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
11</div>
<div class="line number12 index11 alt1" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
12</div>
<div class="line number13 index12 alt2" style="-webkit-font-smoothing: antialiased; border-right: 1px solid rgb(153, 153, 153); list-style: none; margin: 0px; padding: 0px 0.5em 0px 1em; text-align: right; white-space: pre;">
13</div>
</td><td class="code" style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 15px 0px; width: 1871.2px;"><div class="container" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="line number1 index0 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">INFO:oci.base_client.140263433586560: 2019-12-09 21:54:04.502876: Request: GET https:</code><code class="js comments" style="-webkit-font-smoothing: antialiased; color: #008200; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">//...</code></div>
<div class="line number2 index1 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">DEBUG:oci.base_client.140263433586560: 2019-12-09 21:54:04.601030: time elapsed </code><code class="js keyword" style="-webkit-font-smoothing: antialiased; color: #006699; display: inline; font-weight: bold; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">for</code> <code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">request 4AFF967835C440009D15F3CFAAC404D2: 0.0978535171598196</code></div>
<div class="line number3 index2 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">DEBUG:oci.base_client.140263433586560: 2019-12-09 21:54:04.601216: time elapsed </code><code class="js keyword" style="-webkit-font-smoothing: antialiased; color: #006699; display: inline; font-weight: bold; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">in</code> <code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">response: 0:00:00.092832</code></div>
<div class="line number4 index3 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">DEBUG:oci.base_client.140263433586560: 2019-12-09 21:54:04.601319: Response status: 200</code></div>
<div class="line number5 index4 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">DEBUG:oci.base_client.140263433586560: 2019-12-09 21:54:04.603549: python SDK time elapsed </code><code class="js keyword" style="-webkit-font-smoothing: antialiased; color: #006699; display: inline; font-weight: bold; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">for</code> <code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">deserializing: 0.0020453811157494783</code></div>
<div class="line number6 index5 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">DEBUG:oci.base_client.140263433586560: 2019-12-09 21:54:04.603681: Response returned</code></div>
<div class="line number7 index6 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">DEBUG:oci.base_client.140263433586560:time elapsed </code><code class="js keyword" style="-webkit-font-smoothing: antialiased; color: #006699; display: inline; font-weight: bold; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">for</code> <code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">request: 0.1009602730628103</code></div>
<div class="line number8 index7 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">INFO:oci.base_client.140263433271056: 2019-12-09 21:54:04.608421: Request: POST https:</code><code class="js comments" style="-webkit-font-smoothing: antialiased; color: #008200; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">//...</code></div>
<div class="line number9 index8 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">DEBUG:oci.base_client.140263433271056: 2019-12-09 21:54:37.288483: time elapsed </code><code class="js keyword" style="-webkit-font-smoothing: antialiased; color: #006699; display: inline; font-weight: bold; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">for</code> <code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">request 7C625DE5724D4C3B8E26A771D3F7F87B: 32.679952513892204</code></div>
<div class="line number10 index9 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">DEBUG:oci.base_client.140263433271056: 2019-12-09 21:54:37.288662: time elapsed </code><code class="js keyword" style="-webkit-font-smoothing: antialiased; color: #006699; display: inline; font-weight: bold; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">in</code> <code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">response: 0:00:32.676453</code></div>
<div class="line number11 index10 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">DEBUG:oci.base_client.140263433271056: 2019-12-09 21:54:37.288778: Response status: 200</code></div>
<div class="line number12 index11 alt1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">DEBUG:oci.base_client.140263433271056: 2019-12-09 21:54:37.288893: Response returned</code></div>
<div class="line number13 index12 alt2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px 1em; white-space: pre;">
<code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">DEBUG:oci.base_client.140263433271056:time elapsed </code><code class="js keyword" style="-webkit-font-smoothing: antialiased; color: #006699; display: inline; font-weight: bold; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">for</code> <code class="js plain" style="-webkit-font-smoothing: antialiased; display: inline; line-height: 1.3em; list-style: none; margin: 0px 0px 30px 0%; overflow-wrap: break-word; padding: 0px; width: 100%;">request: 32.68057371187024</code></div>
</div>
</td></tr>
</tbody></table>
</div>
</div>
<h2 style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">CronJobスケジュールの変更</span></span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Kuberenetesでは、ひとつのCronJobオブジェクトはctontabにおける一行のようなものです。CronJobは<a href="https://en.wikipedia.org/wiki/Cron" target="_blank">Cron</a>のフォーマットで指定されたスケジュールでジョブを実行します。例として、上の例のCronオブジェクトはOracle Functionを5分ごとに実行します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
違うスケジュールであなたのファンクションを実行するには、単純にあなたのoci-fn-cron.yamlファイルのscheduleの部分を修正し、そのCronJobを再送信すればOKです。</div>
<h2 style="-webkit-font-smoothing: antialiased; line-height: 1.2; list-style: none; margin: 0px auto 2em; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="font-size: small;">別のCLIオペレーションのスケジュール化</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ここでの例では、OCI CLIにOracle Serverless Functionを周期的に実行させました。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ここまでで使い方はわかったと思うので、別のCLIコマンドをKubernetes CronJobsにスケジュール実行させるのはとても簡単でしょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
別のCronJob定義yamlファイルを作成し、ジョブname(前述のoci-fn-cron.yamlでは4行目)とargs(15行目)のOCI CLIコマンドを要件に応じて修正するだけでOKです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
OCI CLIがサポートしているすべてのサービスのリストは<a href="https://docs.cloud.oracle.com/iaas/Content/API/Concepts/cliconcepts.htm" target="_blank">こちらで確認</a>できます。ユースケースはほとんど無限大です!</div>
</div>
</div>
</div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-69168682931228116822020-02-21T16:40:00.001+09:002020-02-21T16:40:08.987+09:00[Streaming] Oracle Streaming ServiceでObject Storageにメッセージを送信/Publishing To Object Storage From Oracle Streaming Service<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif;">原文はこちら</span></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://blogs.oracle.com/developers/publishing-to-object-storage-from-oracle-streaming-service">https://blogs.oracle.com/developers/publishing-to-object-storage-from-oracle-streaming-service</a></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;" />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Oracle Streaming Serviceに関する<a href="https://orablogs-jp.blogspot.com/2020/02/using-kafka-connect-with-oracle-streaming-service-and-autonomous-db.html" target="_blank">前回のポスト</a>では、Oracle Streaming Serviceの持つKafka Connectとの組み合わせ機能を使ってAutonomous DBインスタンス上での更新内容を直接StreamにPublishする方法についてご紹介しました。このポストでは、前回と同じくらいすごいことをお見せします。それは何かというと、Streamの内容を直接Object Storageバケットに書き込む方法です。手順は前回のものと似ているところもあるんですが、いくつか明らかな違いもあります。今回は、Kafka ConnectのS3 Sink Connectorを使って目的を実現していきます。Oracle Object StorageはS3と完全互換のエンドポイントを持っているため、このS3 Sink Connectorを使って簡単にStreamのデータをOCIバケットに入れられちゃうんです。以下のチュートリアルを読めばやり方は全部わかるようになってますよ、ということで始めましょう!</div>
</div>
</div>
</div>
<div class="adwcsengine" data-adgroupid="NONE PROVIDED" data-id="NONE PROVIDED" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
</div>
<br />
<h2 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">S3 Sink Connectorのための準備</span></h2>
<h3 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">ユーザーのセットアップ</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
始める前に、あなたのマシンのどこかに、いくつかの必要なファイルを置くためのプロジェクトディレクトリを作っておくとよいでしょう。ここではそのディレクトリを <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">/projects/object-storage-demo</code> と参照することにしますが、あなたの実際のディレクトリで読み替えるようにしてください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
秘密鍵と適切なポリシーの用意の他に、認証トークンを付与した専用ユーザーが必要になります。これについては<a href="https://blogs.oracle.com/developers/migrate-your-kafka-workloads-to-oracle-cloud-streaming#create-user" target="_blank">このポストで説明しているステップ</a>に従ってください。ユーザーが用意できたら、そのユーザーについて以下の手順でいくつか設定をいじっていきます。</div>
<h3 style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px auto 2em; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="font-size: small;">秘密鍵の生成</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Streamのユーザーのために秘密鍵の生成が必要になります。ここでの手順では、アクセスキーと、Kafka S3 Sink Connectorが必要とするS3互換認証のために使う秘密鍵が生成されます。用意したユーザーの詳細ベージに行って、サイドバーメニューから'Customer Secret Keys'をクリックし、そして'Generate Secret Key'をクリックしてください:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/81de14bd947979e71009a7ecd05adc91/2019_12_20_13_19_16.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
鍵に名前をつけて'Generate Secret Key'をクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/ea87f6ab7310d72010a63d4288684ea2/oss_os_aws_compatible_key.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
生成された鍵をコピーしてください。これがあなたのS3互換の秘密鍵の値になります。後で使うのでどこかに保存しておきましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/a17fc5c2cdcec4b3f7021ad605637001/oss_os_aws_compatible_secret_key.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Closeをクリックいsて、次に'Access Key'の値をコピーしましょう。これも保存しておきましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/feda7f5525af86930ef1f890e4f36599/oss_os_aws_compatible_access_key.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
次に進む前に、 <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">/projects/object-storage-demo/aws_credentials</code> のファイルを作って以下の内容を記載しておきます。Secret KeyとAccess Keyは実際のものに置き換えてください。</div>
<div class="gist" id="gist100166534" style="-webkit-font-smoothing: antialiased; border-left: none !important; color: #333333; direction: ltr; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; background-color: white; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-aws_credentials" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-text " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-aws_credentials-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-aws_credentials-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">[default]</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-aws_credentials-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-aws_credentials-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">aws_access_key_id=[generated access key]</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-aws_credentials-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-aws_credentials-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">aws_secret_access_key=[generated secret key]</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/6589e6d14b5614900bf6945af67d3693/raw/71726449719aba045e15259ff9f188bb0360cc04/aws_credentials" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/6589e6d14b5614900bf6945af67d3693#file-aws_credentials" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">aws_credentials</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<h3 style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px auto 2em; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="font-size: small;">ポリシーの修正</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
次に、専用ユーザー用に作成されたポリシーを、Object Storageにアクセスできるように修正していきます。以下のようにふたつのポリシーを追加してください:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/4494329ece85b07d4bd15f0d78752c44/oss_os_object_storage_policy_statements.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<h2 class="selectionShareable" style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">依存モジュールのダウンロード</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
S3 Connectorを持ってこなければなりませんので、<a href="https://www.confluent.io/hub/confluentinc/kafka-connect-s3" target="_blank">Confluentからダウンロード</a>してプロジェクトディレクトリの <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">/projects/object-storage-demo/confluentinc-kafka-connect-s3-5.3.2</code> にUnzipした中身を配置しましょう。</div>
<h2 style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Oracle Streamingのアセット準備</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Stream PoolとStream、そしてConnect Configurationが必要になります。以下でそれぞれ作っていきます。コンソールのハンバーガーメニューから'Analytics' -> 'Streaming'を選択。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/d9df26f13901e6d31adeae56e47b476f/oss_os_streaming_burger.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<h3 style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Stream PoolとStreamの作成</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Streamingのページから、'Stream Pools'を選択し、'Create Stream Pool'をクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/213fd6950196331502f98a112a8f6061/oss_os_stream_pools_sidebar_and_btn.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Stream Poolに名前をつけて、'Create Stream Pool'をクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/8d6b019d2c4e0e98e3b9eb16f8b08620/oss_os_creat_stream_pool.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Stream Poolがアクティブになったら、Stream Pool OCIDをコピーしてどこかに保存しておいてください。次に'View Kafka Connection Settings'ボタンをクリックします。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/bbe03fc9f82dcb3ac7766b9881ea9ec7/oss_os_stream_pool_connection_settings_btn.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Bootstrap Serverの値をコピーします。これもあとで使います。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/e9bcab2e8e143d14ca9ffd43a461c4be/oss_os_connection_settings_dialog.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Stream Poolの詳細ページで、'Create Stream'をクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/836b15a61b805c9ce6f10d56e310f190/oss_os_stream_pool_details_create_stream_btn.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Streamに名前をつけて、'Create Stream'をクリック。ここで付けた名前もあとで使います。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/dc1fe832b499b38f7a72dde9c72170f7/oss_os_create_stream_2.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<h3 style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Connect Configurationの作成</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
次はサイドバーメニューの'Kafka Connect Configurations'をクリックし、'Create Kafka Connect Configuration'をクリックします。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/19ce268882e2d7c6a5075bcdc5903684/oss_os_connect_config_sidebar_and_btn.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
名称を入力して、'Create Kafka Connect Configuration'をクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/8396d440463dd7a977206156fa9ef82b/oss_os_connect_config_dialog.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Connect Configurationの詳細ページで、OCIDをコピーしてどこかに保存しておきます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/fbdbb5e79ef3c3ca47819daee248a6a9/oss_os_connect_config_details.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<h3 style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Object Storageの準備</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
最終的にメッセージが格納されることになるバケットを作成しておく必要があります。コンソールのハンバーガーメニューからObject Storageに行きましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/17ca2282155042c58ad2a11bb2d1f67b/oss_os_object_storage_burger_menu.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
'Create Bucket'をクリックし、出てきたダイアログでバケットの名前を入力して作成しましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/2512e48b2a14af0abf2d1993f1cba39d/oss_os_create_bucket.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
これでKafka Connectの構成と起動の準備ができました。</div>
<h2 style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Kafka Connectの構成と起動</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ここまででKafka Connectを起動し、S3 Sink Connectorを作成してメッセージをObject StorageにPublishする準備ができました。<span style="font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif; font-size: 14.5px;">ここでは</span><a href="https://hub.docker.com/r/debezium/connect" style="color: #4d469c; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; font-size: 14.5px; text-decoration-line: none;" target="_blank">Devezium Connect Dockerイメージ</a><span style="font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif; font-size: 14.5px;">を使ってシンプルかつコンテナ化されたやり方を取りますが、公式のKafka Connect Dockerイメージを使ってもいいですし、バイナリ版を使ってもいいです。Dockerイメージを起動する前に、Connectを設定するためのプロパティファイルのセットアップが必要です。前述したステップで集めておいた情報が必要になるので手元に置いといてくださいね。また、Stream Poolから取ってきたStreamingのusername(SASL Connection Stringを参照)と認証トークンも必要です。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以下の内容で <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">/projects/object-storage-demo/connect-distributed.properties</code> のファイルを作成しましょう。<括弧>の部分は実際の値で置き換えてください。</div>
<div class="gist" id="gist100166737" style="-webkit-font-smoothing: antialiased; border-left: none !important; color: #333333; direction: ltr; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; background-color: white; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-connect-distributed-properties" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-ini " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-connect-distributed-properties-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">bootstrap.servers</span>=<bootstrap server from stream pool connection settings></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-connect-distributed-properties-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">sasl.mechanism</span>=PLAIN</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-connect-distributed-properties-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">security.protocol</span>=SASL_SSL</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-connect-distributed-properties-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">sasl.jaas.config</span>=org.apache.kafka.common.security.plain.PlainLoginModule required <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">username</span>=<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><tenancy>/<username>/<stream pool OCID><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">password</span>=<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><auth token><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span><span class="pl-c" style="color: #6a737d; list-style: none; margin: 0px; padding: 0px;">;</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-connect-distributed-properties-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-connect-distributed-properties-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">producer.sasl.mechanism</span>=PLAIN</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-connect-distributed-properties-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">producer.security.protocol</span>=SASL_SSL</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-connect-distributed-properties-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">producer.sasl.jaas.config</span>=org.apache.kafka.common.security.plain.PlainLoginModule required <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">username</span>=<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><tenancy>/<username>/<stream pool OCID><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">password</span>=<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><auth token><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span><span class="pl-c" style="color: #6a737d; list-style: none; margin: 0px; padding: 0px;">;</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-connect-distributed-properties-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-connect-distributed-properties-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">consumer.sasl.mechanism</span>=PLAIN</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-connect-distributed-properties-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">consumer.security.protocol</span>=SASL_SSL</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-connect-distributed-properties-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">consumer.sasl.jaas.config</span>=org.apache.kafka.common.security.plain.PlainLoginModule required <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">username</span>=<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><tenancy>/<username>/<stream pool OCID><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">password</span>=<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><auth token><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span><span class="pl-c" style="color: #6a737d; list-style: none; margin: 0px; padding: 0px;">;</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-connect-distributed-properties-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-connect-distributed-properties-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">database.history.producer.sasl.mechanism</span>=PLAIN</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-connect-distributed-properties-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">database.history.producer.security.protocol</span>=SASL_SSL</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="16" id="file-connect-distributed-properties-L16" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC16" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">database.history.producer.sasl.jaas.config</span>=org.apache.kafka.common.security.plain.PlainLoginModule required <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">username</span>=<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><tenancy>/<username>/<stream pool OCID><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">password</span>=<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><auth token><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span><span class="pl-c" style="color: #6a737d; list-style: none; margin: 0px; padding: 0px;">;</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="17" id="file-connect-distributed-properties-L17" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC17" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="18" id="file-connect-distributed-properties-L18" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC18" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">database.history.consumer.sasl.mechanism</span>=PLAIN</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="19" id="file-connect-distributed-properties-L19" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC19" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">database.history.consumer.security.protocol</span>=SASL_SSL</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="20" id="file-connect-distributed-properties-L20" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC20" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">database.history.consumer.sasl.jaas.config</span>=org.apache.kafka.common.security.plain.PlainLoginModule required <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">username</span>=<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><tenancy>/<username>/<stream pool OCID><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">password</span>=<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><auth token><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span><span class="pl-c" style="color: #6a737d; list-style: none; margin: 0px; padding: 0px;">;</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="21" id="file-connect-distributed-properties-L21" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC21" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="22" id="file-connect-distributed-properties-L22" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC22" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">retries</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="23" id="file-connect-distributed-properties-L23" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC23" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">max.in.flight.requests.per.connection</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="24" id="file-connect-distributed-properties-L24" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC24" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="25" id="file-connect-distributed-properties-L25" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC25" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">config.storage.replication.factor</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="26" id="file-connect-distributed-properties-L26" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC26" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">status.storage.replication.factor</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="27" id="file-connect-distributed-properties-L27" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC27" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">offset.storage.replication.factor</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="28" id="file-connect-distributed-properties-L28" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC28" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="29" id="file-connect-distributed-properties-L29" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC29" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">config.storage.partitions</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="30" id="file-connect-distributed-properties-L30" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC30" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">status.storage.partitions</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="31" id="file-connect-distributed-properties-L31" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC31" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">offset.storage.partitions</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="32" id="file-connect-distributed-properties-L32" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC32" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="33" id="file-connect-distributed-properties-L33" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC33" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">offset.flush.interval.ms</span>=10000</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="34" id="file-connect-distributed-properties-L34" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC34" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">offset.flush.timeout.ms</span>=5000</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="35" id="file-connect-distributed-properties-L35" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC35" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="36" id="file-connect-distributed-properties-L36" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC36" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">key.converter</span>=org.apache.kafka.connect.json.JsonConverter</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="37" id="file-connect-distributed-properties-L37" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC37" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">value.converter</span>=org.apache.kafka.connect.json.JsonConverter</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="38" id="file-connect-distributed-properties-L38" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC38" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">internal.key.converter</span>=org.apache.kafka.connect.json.JsonConverter</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="39" id="file-connect-distributed-properties-L39" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC39" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">internal.value.converter</span>=org.apache.kafka.connect.json.JsonConverter</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="40" id="file-connect-distributed-properties-L40" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC40" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">key.converter.schemas.enable</span>=false</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="41" id="file-connect-distributed-properties-L41" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC41" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">value.converter.schemas.enable</span>=false</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="42" id="file-connect-distributed-properties-L42" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC42" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="43" id="file-connect-distributed-properties-L43" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC43" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">task.shutdown.graceful.timeout.ms</span>=10000</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/2639dddfb7dc6be017454762f774ffd1/raw/19e445bbd85069f83a0a189d2a1f7e833255fccf/connect-distributed.properties" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/2639dddfb7dc6be017454762f774ffd1#file-connect-distributed-properties" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">connect-distributed.properties</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
前のステップで保存しておいたConnect ConfigurationのOCIDをあなたのシェルに環境変数としてセットしましょう。</div>
<div class="gist" id="gist100166756" style="-webkit-font-smoothing: antialiased; border-left: none !important; color: #333333; direction: ltr; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; background-color: white; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-config_id-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-config_id-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-config_id-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">export</span> CONFIG_ID=<span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;"><</span>connect config id<span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">></span></td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/81d6a78785affdd5ff09efd7fd52c7af/raw/8c242d437addbaa6526d92962cbfa5d7a78a0637/config_id.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/81d6a78785affdd5ff09efd7fd52c7af#file-config_id-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">config_id.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
それではDockerイメージを以下のように起動します:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100166765" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-docker-run-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-docker-run-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-docker-run-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">docker run -it --rm --name connect-demo -p 8083:8083 -e GROUP_ID=1 <span class="pl-cce" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">\ </span> </td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-docker-run-sh-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-docker-run-sh-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> -e BOOTSTRAP_SERVERS=<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>cell-1.streaming.us-phoenix-1.oci.oraclecloud.com:9092<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-docker-run-sh-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-docker-run-sh-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> -e CONFIG_STORAGE_TOPIC=<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">$CONFIG_ID</span>-config \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-docker-run-sh-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-docker-run-sh-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> -e OFFSET_STORAGE_TOPIC=<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">$CONFIG_ID</span>-offset \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-docker-run-sh-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-docker-run-sh-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> -e STATUS_STORAGE_TOPIC=<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">$CONFIG_ID</span>-status \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-docker-run-sh-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-docker-run-sh-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> -v <span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">$(</span>pwd -L<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">)</span></span>/connect-distributed.properties:/kafka/config.orig/connect-distributed.properties \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-docker-run-sh-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-docker-run-sh-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> -v <span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">$(</span>pwd -L<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">)</span></span>/confluentinc-kafka-connect-s3-5.3.2/:/kafka/connect/confluentinc-kafka-connect-s3-5.3.2 \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-docker-run-sh-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-docker-run-sh-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> -v <span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">$(</span>pwd -L<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">)</span></span>/aws_credentials:/kafka/.aws/credentials \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-docker-run-sh-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-docker-run-sh-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> debezium/connect:latest</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/5622dbf4552bda8b02733a1f279924d8/raw/a16419ca05de966e2410b901feb189d49e404bc0/docker-run.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/5622dbf4552bda8b02733a1f279924d8#file-docker-run-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">docker-run.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Kafka Connectが起動したら、Connectorの設定を記述するJSONファイルを作りましょう。以下の内容で <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">/projects/object-storage-demo/connector-config.json</code> にファイルを作ってください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100166804" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-connector-config-json" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-json " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-connector-config-json-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">{</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-connector-config-json-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>name<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>oss-object-storage-demo<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-connector-config-json-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>config<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-connector-config-json-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>name<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>oss-object-storage-demo<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-connector-config-json-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>connector.class<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>io.confluent.connect.s3.S3SinkConnector<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-connector-config-json-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>tasks.max<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>1<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-connector-config-json-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>topics<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><your stream name><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-connector-config-json-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>format.class<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>io.confluent.connect.s3.format.json.JsonFormat<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-connector-config-json-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>storage.class<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>io.confluent.connect.s3.storage.S3Storage<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-connector-config-json-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>flush.size<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>1<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-connector-config-json-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>s3.bucket.name<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><your object storage bucket name><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-connector-config-json-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>store.url<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>https://<namespace (usually your tenancy name)>.compat.objectstorage.us-phoenix-1.oraclecloud.com<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-connector-config-json-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>s3.region<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>us-phoenix-1<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-connector-config-json-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-connector-config-json-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/000579748c53cb481f86a499a73b3e39/raw/bd0639964875ca480232916a6ca82b4d67b9e522/connector-config.json" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/000579748c53cb481f86a499a73b3e39#file-connector-config-json" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">connector-config.json</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">topic</code> と <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">s3.bucket.name</code> および <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">store.url</code> の値は適切に置き換えてください(URLの中のリージョン部分と、s3.regionの値も変更が必要かも)。Object Storageに生成されるファイルにひとつ以上のメッセー意jが書かれるようにしたいなら、 <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">flush.size</code> の値も適切に更新しましょう。他のカスタマイズについては<a href="https://docs.confluent.io/current/connect/kafka-connect-s3/index.html" target="_blank">S3 Sinkのドキュメント</a>を参照ください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif; font-size: 14.5px;">では、REST APIでこの設定を </span><code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; font-size: 14.5px; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">POST</code><span style="font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif; font-size: 14.5px;"> してSource Connectorを作成しましょう:</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100015632" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-create-connector-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-create-connector-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-connector-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">curl -iX POST -H <span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Accept:application/json<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> -H <span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Content-Type:application/json<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> -d @connector-config.json http://localhost:8083/connectors</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/14b987fdb2b8f945c8ca239495271066/raw/e981676215e4473d3819b36eb03191fd91d435e6/create-connector.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/14b987fdb2b8f945c8ca239495271066#file-create-connector-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">create-connector.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif; font-size: 14.5px;">すべてのConnectorの一覧の取得には </span><code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; font-size: 14.5px; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">GET</code><span style="font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif; font-size: 14.5px;"> リクエストしましょう。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100015641" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-list-connectors-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-list-connectors-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-list-connectors-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">curl -i http://localhost:8083/connectors</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/369f40a5209f857ec6d4199b7ca96977/raw/342787002d0d258483bb41a9c09c984d459aba5e/list-connectors.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/369f40a5209f857ec6d4199b7ca96977#file-list-connectors-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">list-connectors.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif; font-size: 14.5px;">Connectorを削除したければ </span><code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; font-size: 14.5px; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">DELETE</code><span style="font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif; font-size: 14.5px;"> リクエストです。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100015662" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-delete-connector-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-delete-connector-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-delete-connector-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">curl -i -X DELETE http://localhost:8083/connectors/[connector-name]</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/56335dcb3da4c5ab938152fecfbefa1b/raw/a7dddca96730ae1244d3ea5504b71d4356503f0b/delete-connector.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/56335dcb3da4c5ab938152fecfbefa1b#file-delete-connector-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">delete-connector.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<h1 class="selectionShareable" style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">インテグレーションを試してみる</span></h1>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ここまででインテグレーションを試せるようになっています。OCIコンソールのStreamの詳細ページに行って、'Produce Test Message'をクリックしてTopicにJSON文字列のメッセージをポストしてみましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/ddb3ae4ccae571b9c79cae3e79060a38/oss_os_test_message.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Connect Dockerコンソールでいくつかアクションが表示されるでしょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100166853" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-console-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-console-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-console-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">2019-12-20 17:49:58,664 INFO <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">||</span> Starting commit and rotation <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">for</span> topic partition oss-demo-stream-0 with start offset {partition=0=0} [io.confluent.connect.s3.TopicPartitionWriter]</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-console-sh-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-console-sh-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">2019-12-20 17:49:59,127 INFO <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">||</span> Files committed to S3. Target commit offset <span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">for</span> oss-demo-stream-0 is 1 [io.confluent.connect.s3.TopicPartitionWriter]</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/39655bf3ba15633747cf21a6047d2b78/raw/bbbc0e73e04b82ffeabd9a18c28a99931844b50b/console.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/39655bf3ba15633747cf21a6047d2b78#file-console-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">console.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
バケットに移動してファイルが書き込まれているか見てみましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/38c964eb44bd1d5b70100b049bd3bdba/oss_os_bucket_objects.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
"Pre-Authenticated Request"を作成すると、ファイルをダウンロードして内容を見られるようになります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/084d37fc6d5c4547995dc9b58ad0ecb9/2019_12_20_14_01_56.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<h1 class="selectionShareable" style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">まとめ</span></h1>
<span class="gist-ph" style="background-color: white; color: #100f0e; font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif; list-style: none; margin: 0px; padding: 0px;"></span><span style="background-color: white; color: #100f0e; font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif;"></span><span class="gist-ph" style="background-color: white; color: #100f0e; font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif; list-style: none; margin: 0px; padding: 0px;"></span><span style="background-color: white; color: #100f0e; font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif;"></span><span class="gist-ph" style="background-color: white; color: #100f0e; font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif; list-style: none; margin: 0px; padding: 0px;"></span><span style="background-color: white; color: #100f0e; font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif;"></span><br />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
このポストではStream PoolとStreamおよびConnect Configurationを作成、設定し、これらのアセットを使ってStreamからObject Storageへとメッセージをファイルとしてパブリッシュしました。</div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-91582659057731204152020-02-20T15:24:00.001+09:002020-02-20T15:24:56.367+09:00[Streaming] Oracle Streaming ServiceとAutonomous DBでKafka Connectを使ってみる/Using Kafka Connect With Oracle Streaming Service And Autonomous DB<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;">原文はこちら</span></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://blogs.oracle.com/developers/using-kafka-connect-with-oracle-streaming-service-and-autonomous-db">https://blogs.oracle.com/developers/using-kafka-connect-with-oracle-streaming-service-and-autonomous-db</a></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;" />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
メッセージのConsumeとProduceにいまお使いなのが<a href="https://blogs.oracle.com/developers/easy-messaging-with-micronauts-kafka-support-and-oracle-streaming-service" target="_blank">Micronautのようなフレームワーク</a>であれ、<a href="https://blogs.oracle.com/developers/migrate-your-kafka-workloads-to-oracle-cloud-streaming">Kafka SDK</a>そのものであれ、あなたのアプリケーションの中でメッセージングを扱うのに、<b>Oracle Streaming Service(OSS)</b>はかんたんでより安価な方法です。Kafkaクラスターを手で組み上げてそのコストと保守作業に気をもむ…といったことが必要なくなります。ただStreamを作成して、あとはそれを使ってメッセージをProduce、Consumeするだけでよいのです。</div>
</div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
とはいえ、それだけでは足りない場合もありますよね。マイクロサービスアーキテクチャではメッセージングは実に重要で、今まではOracle Streaming Serviceではそのうち輸送の部分、ProduceとConsumeのみを扱っていました。つまり、やり取りの受信元と送信先は両方ともアプリケーション側の責務の範囲でした。しかしそれも過去の話、というのもOracle Streaming Serviceで<a href="https://docs.confluent.io/current/connect/index.html" target="_blank">Kafka Connect</a>を使えるようになったのです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">Kafka Connectがなにかって?いい質問ですね!Kafka Connectは外部ソースをKafkaに(あるいは、わたしたちの場合はOracle Streaming Serviceに)つなげるためのオープンソースフレームワークです。外部ソースとはたとえばオブジェクトストレージやデータベース、Key-Valueストアなどがあたります。Kafka Connectについて知っておいたほうがいい用語がふたつあります。ひとつはSource Connector、もうひとつがSink Connectorです。Source Connectorを使うと外部ソースからデータを取ってくることができ、Sink Connectorでは外部ソースにデータを送ることができます。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
実際イケてるフレームワークですよこれは。考えてみてください、データベーステーブルにレコードがインサートされるたびにメッセージを受け取るStreamを作ることもできるんですよ!TopicにメッセージをProduceするだけでレコードをテーブルにインサートすることだってできる!でもお喋りはここまでにして、実際こういうことをどうやって実現するのか見ていきましょう。ぜんぜん難しくありません、一通りステップバイステップでやっていきましょう。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Kafka Connectのインテグレーションの準備</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="background-color: white; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif;">このチュートリアルでは、<b>Autonomous Transaction Processing(ATP)</b>インスタンス上のテーブルからデータを取ってくるSource Connectorを作成します。ただ、このインテグレーション編に進む前にいくつか準備が必要です。あなたのマシンに諸々のファイルを保存する用のプロジェクトディレクトリを作っておくのがよいでしょう。そのディレクトリをここでは </span><span style="background-color: #eeeeee;"><span style="font-family: Courier New, Courier, monospace;">/projects/connect-demo</span></span><span style="background-color: white; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif;"> として参照しますが、必要に応じてご自身のパスに読み替えてください。</span></div>
<h3 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; font-weight: 500; line-height: 1.2; list-style: none; margin: 0px auto 2em; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="font-size: small;">Autonomous DBのセットアップ</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
インテグレーションに使ってみる用のAutonomous DBを作成し、Walletの認証情報を取得していきましょう。インスタンスをお持ちでない場合は、<a href="https://blogs.oracle.com/developers/the-complete-guide-to-getting-up-and-running-with-autonomous-database-in-the-cloud" target="_blank">こちらのガイドを参照してAutonomous DBをサクッと作成して起動</a>しましょう。お望みであれば<a href="https://www.oracle.com/cloud/free/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; background-color: transparent; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">always free</a>のATPインスタンスを使っていただいてもちゃんとできますよ。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
用意できたらまず、その起動中のインスタンスにSQL Developerでつなげて(または<a href="https://docs.oracle.com/en/database/oracle/sql-developer-web/18.1/sdweb/sdw-getting-started.html#GUID-A79032C3-86DC-4547-8D39-85674334B4FE" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; background-color: transparent; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">SQL Developer Web</a>を使ってもOK)、いくつか権限を付与しつつ新しいユーザーを作成しましょう:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100014262" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-create-user-sql" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-sql " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-create-user-sql-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-user-sql-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">CREATE</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">USER</span> <span class="pl-en" style="-webkit-font-smoothing: antialiased; color: #6f42c1; list-style: none; margin: 0px; padding: 0px;">connectdemo</span> IDENTIFIED BY <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Str0ngP@$$word1234<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>;</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-create-user-sql-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-user-sql-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">GRANT</span> CONNECT, RESOURCE TO connectdemo;</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-create-user-sql-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-user-sql-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">GRANT</span> UNLIMITED TABLESPACE TO connectdemo;</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/7af1ea8204ac8c3c5e12ef32cdb245f4/raw/eea150c290d1ad8f82e18100fbf597d34e0f953e/create-user.sql" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/7af1ea8204ac8c3c5e12ef32cdb245f4#file-create-user-sql" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">create-user.sql</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
次に、ちょっとしたテーブルを作成します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100014261" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-create-table-sql" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-sql " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-create-table-sql-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">CREATE</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">TABLE</span> <span class="pl-en" style="-webkit-font-smoothing: antialiased; color: #6f42c1; list-style: none; margin: 0px; padding: 0px;">TEST</span> </td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-create-table-sql-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">(</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-create-table-sql-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> ID <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">NUMBER</span>(<span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">10</span>,<span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">0</span>) GENERATED BY DEFAULT <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">ON</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">NULL</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">AS</span> IDENTITY,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-create-table-sql-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> USERNAME <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">VARCHAR2</span>(<span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">50</span>) <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">NOT NULL</span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-create-table-sql-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> FIRST_NAME <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">VARCHAR2</span>(<span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">50</span>) <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">NOT NULL</span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-create-table-sql-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> MIDDLE_NAME <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">VARCHAR2</span>(<span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">50</span>),</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-create-table-sql-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> LAST_NAME <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">VARCHAR2</span>(<span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">50</span>) <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">NOT NULL</span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-create-table-sql-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> AGE <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">NUMBER</span>(<span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">5</span>,<span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">0</span>) DEFAULT <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">0</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">NOT NULL</span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-create-table-sql-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> CREATED_ON <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">TIMESTAMP</span>(<span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">9</span>) <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">NOT NULL</span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-create-table-sql-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">CONSTRAINT</span> TEST_PK <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">PRIMARY KEY</span> </td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-create-table-sql-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> (</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-create-table-sql-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> ID </td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-create-table-sql-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> )</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-create-table-sql-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> ENABLE </td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-create-table-sql-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-table-sql-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">);</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/2c33359cc587fef36ff6b0a687eaa15a/raw/7bf01ce88ea6e3467afeb6e91cde54ac03808293/create-table.sql" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/2c33359cc587fef36ff6b0a687eaa15a#file-create-table-sql" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">create-table.sql</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
これで準備はOKです!次に進みましょう。</div>
<h3 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px auto 2em; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="font-size: small;">必要なモジュールのダウンロード</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
プロジェクトディレクトリに3つのものをダウンロードする必要があります:</div>
<ol style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">Oracle JDBC Drivers</a></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><a href="https://www.confluent.io/hub/confluentinc/kafka-connect-jdbc" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">Kafka JDBC Connector</a></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">あなたのATPインスタンスのWallet</li>
</ol>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
OracleドライバのZIPの中身を <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">/projects/connect-demo/drivers</code> に配置して、Kafka JDBC ConnectorのZIPの中身は <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">/projects/connect-demo/kafka-jdbc/connector</code> に配置してください。次に、Walletを <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">/projects/connect-demo/wallet</code> に配置しましょう。WallteはコンソールUIかOCI CLI経由でダウンロードできます。CLIでサクッとやる場合には:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100014258" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-download-wallet-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-download-wallet-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-download-wallet-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">#</span> list your Autonomous instances</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-download-wallet-sh-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-download-wallet-sh-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-download-wallet-sh-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-download-wallet-sh-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">oci db autonomous-database list</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-download-wallet-sh-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-download-wallet-sh-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-download-wallet-sh-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-download-wallet-sh-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">#</span> find your instance in the list and get the OCID</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-download-wallet-sh-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-download-wallet-sh-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">#</span> substitute the OCID below and run:</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-download-wallet-sh-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-download-wallet-sh-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-download-wallet-sh-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-download-wallet-sh-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">oci db autonomous-database generate-wallet \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-download-wallet-sh-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-download-wallet-sh-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">--autonomous-database-id \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-download-wallet-sh-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-download-wallet-sh-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">ocid1.autonomousdatabase.oc1.phx... \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-download-wallet-sh-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-download-wallet-sh-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">--file /projects/connect-demo/wallet/wallet.zip \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-download-wallet-sh-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-download-wallet-sh-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">--password Str0ngP@<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">$$</span>word</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/4a24cf25998d50f5a3b34cc53d3ae2d0/raw/39ac0cfc2a579bc0ef9ba9928c58538f6a329be1/download-wallet.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/4a24cf25998d50f5a3b34cc53d3ae2d0#file-download-wallet-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">download-wallet.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="info selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: #bde5f8; border-radius: 2px; border: 1px solid; color: #00529b; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 10px; margin-top: 10px; padding: 15px 10px;">
注意:WalletのZIPを解凍するのをお忘れなく。中身は <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">/projects/connect-demo/wallet</code> に配置してくださいね。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
OK、これでダウンロードが必要なものについては揃いました。ではではStreamへと飛び込んでいきましょう!</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Stream Poolの作成</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
次に作成が必要な部品がふたつあります。Stream Poolと、Connect Configurationです。これらを作成するのに<a href="https://docs.cloud.oracle.com/iaas/Content/API/Concepts/sdks.htm" target="_blank">OCI SDKを使ってお好みの通りにコードでやる</a>こともできますが、ここではより簡潔にコンソールUIでやっちゃいましょう。まずはコンソールのハンバーガーメニューから'Analytics' -> 'Streaming'とクリックしてStreamingのページに向かいましょう:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/3ae368e37daa27bda8ff0fd1000db0d9/oss_streaming_burger_menu.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
次に、Streaming初期ページの左側のメニューから、'Stream Pools'を選択。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/bb9d04003551b4fc03ea67950da4d35d/oss_connect_sidebar_stream_pools.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
そして'Create Stream Pool'をクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/d5b7b847596367e7792baff5a9203f50/oss_connect_create_stream_pool_btn.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
適当な名前を入力して'Auto Create Topics'にチェックを入れましょう。これによりKafka Connectが必要に応じてTopicを作成できるようになるんですが、これはKafkaの '<code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">auto.create.topics.enable</code>' の設定と同等です。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/e63b4939852277646e761ef27a41fe95/oss_create_stream_pool_dialog.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
"Create Stream Pool'をクリックしてちょっと待てばPoolが'Active'になります。そうしたら'View Kafka Connection Settings'ボタンをクリックしましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/b27fdbcb30fed6063a61145358ac08d2/oss_connect_stream_pool_kafka_settings_btn.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ここで出てくる情報はあとで使うためどこかにコピーしておいてください。なお、SASL Connection Stringのusernameは別のものを使うこともできます(詳細は<a href="https://blogs.oracle.com/developers/migrate-your-kafka-workloads-to-oracle-cloud-streaming" target="_blank">このポストのCreate a Streams User</a>を読んで下さい)。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/2112e49c2d26d06d51ea582c7fa12e4f/oss_connect_kafka_settings_dialog.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Poolができあがりましたので、Connect Configurationを料理していきましょう。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Connect Configurationの作成</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
次はサイドバーから'Kafka Connect Configuration'をクリックしてCreate~~のボタンをクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/e718021bd632d1ef59cbd399084e1a90/oss_connect_connect_config_menu_and_btn.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
出てくるダイアログでは適当な名前を入力してください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/837801222b17255d3458d47d089ae440/oss_connect_config.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
作成されたら、表示されるConnect Configuration OCIDとKafka Connect Storage Topicsをどこかにコピーしておいてください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/7c38e1f71dea9f51e8152e3362329d31/oss_connect_config_details.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
これでOK、次にいきましょう。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Kafka Connectの構成と起動</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ここまででKafka Connectを起動し、Source Connectorを作成して <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">TEST</code> テーブルをリッスンさせるための用意ができました。ここでは<a href="https://hub.docker.com/r/debezium/connect" target="_blank">Devezium Connect Dockerイメージ</a>を使ってシンプルかつコンテナ化されたやり方を取りますが、公式のKafka Connect Dockerイメージを使ってもいいですし、バイナリ版を使ってもいいです。Dockerイメージを起動する前に、Connectを設定するためのプロパティファイルのセットアップが必要です。前述したステップで集めておいた情報が必要になるので手元に置いといてくださいね。また、Stream Poolから取ってきたStreamingのusername(SASL Connection Stringを参照)と認証トークンも必要です。<a href="http://blogs.oracle.com/developers/migrate-your-kafka-workloads-to-oracle-cloud-streaming" target="_blank">Streaming専用ユーザーと認証トークンの生成方法についてはこちらのブログポストを参照</a>ください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以下の内容で <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">/projects/connect-demo/connect-distributed.properties</code> のファイルを作成してください。<括弧>の部分はご自身の実際の値で置き換えてください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100015378" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-connect-distributed-properties" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-ini " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-connect-distributed-properties-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">group.id</span>=connect-demo-group</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-connect-distributed-properties-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-connect-distributed-properties-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">bootstrap.servers</span>=<streamPoolBootstrapServer></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-connect-distributed-properties-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">sasl.mechanism</span>=PLAIN</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-connect-distributed-properties-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">security.protocol</span>=SASL_SSL</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-connect-distributed-properties-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">sasl.jaas.config</span>=org.apache.kafka.common.security.plain.PlainLoginModule required <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">username</span>=<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><tenancy>/<username>/<streamPoolId><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">password</span>=<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><authToken><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span><span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;">;</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-connect-distributed-properties-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-connect-distributed-properties-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">producer.sasl.mechanism</span>=PLAIN</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-connect-distributed-properties-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">producer.security.protocol</span>=SASL_SSL</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-connect-distributed-properties-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">producer.sasl.jaas.config</span>=org.apache.kafka.common.security.plain.PlainLoginModule required <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">username</span>=<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><tenancy>/<username>/<streamPoolId><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">password</span>=<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><authToken><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span><span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;">;</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-connect-distributed-properties-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-connect-distributed-properties-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">consumer.sasl.mechanism</span>=PLAIN</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-connect-distributed-properties-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">consumer.security.protocol</span>=SASL_SSL</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-connect-distributed-properties-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">consumer.sasl.jaas.config</span>=org.apache.kafka.common.security.plain.PlainLoginModule required <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">username</span>=<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><tenancy>/<username>/<streamPoolId><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">password</span>=<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><authToken><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span><span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;">;</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-connect-distributed-properties-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="16" id="file-connect-distributed-properties-L16" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC16" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">config.storage.replication.factor</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="17" id="file-connect-distributed-properties-L17" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC17" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">config.storage.partitions</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="18" id="file-connect-distributed-properties-L18" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC18" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">config.storage.topic</span>=<connectConfigOCID>-config</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="19" id="file-connect-distributed-properties-L19" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC19" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="20" id="file-connect-distributed-properties-L20" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC20" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">status.storage.replication.factor</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="21" id="file-connect-distributed-properties-L21" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC21" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">status.storage.partitions</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="22" id="file-connect-distributed-properties-L22" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC22" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">status.storage.topic</span>=<connectConfigOCID>-status</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="23" id="file-connect-distributed-properties-L23" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC23" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="24" id="file-connect-distributed-properties-L24" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC24" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">offset.storage.replication.factor</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="25" id="file-connect-distributed-properties-L25" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC25" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">offset.storage.partitions</span>=1</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="26" id="file-connect-distributed-properties-L26" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC26" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">offset.storage.topic</span>=<connectConfigOCID>-offset</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="27" id="file-connect-distributed-properties-L27" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC27" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">offset.flush.interval.ms</span>=10000</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="28" id="file-connect-distributed-properties-L28" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC28" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">offset.flush.timeout.ms</span>=5000</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="29" id="file-connect-distributed-properties-L29" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC29" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="30" id="file-connect-distributed-properties-L30" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC30" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">key.converter</span>=org.apache.kafka.connect.storage.StringConverter</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="31" id="file-connect-distributed-properties-L31" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC31" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">value.converter</span>=org.apache.kafka.connect.json.JsonConverter</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="32" id="file-connect-distributed-properties-L32" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC32" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">key.converter.schemas.enable</span>=false</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="33" id="file-connect-distributed-properties-L33" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC33" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">value.converter.schemas.enable</span>=true</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="34" id="file-connect-distributed-properties-L34" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC34" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="35" id="file-connect-distributed-properties-L35" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC35" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">internal.key.converter</span>=org.apache.kafka.connect.json.JsonConverter</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="36" id="file-connect-distributed-properties-L36" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC36" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">internal.value.converter</span>=org.apache.kafka.connect.json.JsonConverter</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="37" id="file-connect-distributed-properties-L37" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC37" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="38" id="file-connect-distributed-properties-L38" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-distributed-properties-LC38" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">task.shutdown.graceful.timeout.ms</span>=10000</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/c88c57e2f2eb961b98ff976618c38b9b/raw/ae2f030dde69c8ef3c313f5f327b22b6ed31fc06/connect-distributed.properties" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/c88c57e2f2eb961b98ff976618c38b9b#file-connect-distributed-properties" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">connect-distributed.properties</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
コンテナに依存モジュールを収めないとならないので、以下のような <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">debezium/connect</code> イメージベースの <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">/projects/connect-demo/Dockerfile</code> を作成してください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100015425" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-dockerfile" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-dockerfile " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-dockerfile-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-dockerfile-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">FROM</span> debezium/connect:0.10</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-dockerfile-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-dockerfile-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">USER</span> root</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-dockerfile-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-dockerfile-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">RUN</span> mkdir /wallet</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-dockerfile-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-dockerfile-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">USER</span> kafka</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-dockerfile-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-dockerfile-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">COPY</span> driver/* /kafka/libs/</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-dockerfile-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-dockerfile-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">COPY</span> kafka-connect-jdbc/lib/* /kafka/libs/</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-dockerfile-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-dockerfile-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">COPY</span> wallet/* /wallet/</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/5217082610a05aabb8672a50c67ae4a0/raw/e546e3e8f4003d7020b7c20eceb9b96afaa916f5/Dockerfile" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/5217082610a05aabb8672a50c67ae4a0#file-dockerfile" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">Dockerfile</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ではこのDockerイメージをビルドしていきます。私はTopic名の置換を簡単にするためのBashスクリプトを作ってみましたが、<括弧>の内容を置き換えつつここにあるコマンドをそれぞれ手動で実行して頂いても構いません。なお、先程作成した <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">/projects/connect-demo/connect-distributed.properties</code> ファイルをDockerコンテナにマウントしている点に留意ください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100015481" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-connect-demo-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-connect-demo-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">#!</span>/usr/bin/env bash</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-connect-demo-sh-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">CONNECT_CONFIG_ID=<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;"><</span>connectConfigOCID<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-connect-demo-sh-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-connect-demo-sh-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">CONFIG_STORAGE_TOPIC=<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">$CONNECT_CONFIG_ID</span>-config</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-connect-demo-sh-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">OFFSET_STORAGE_TOPIC=<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">$CONNECT_CONFIG_ID</span>-offset</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-connect-demo-sh-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">STATUS_STORAGE_TOPIC=<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">$CONNECT_CONFIG_ID</span>-status</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-connect-demo-sh-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-connect-demo-sh-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">docker build -t connect <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">.</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-connect-demo-sh-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-connect-demo-sh-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">docker run -it --rm --name connect -p 8083:8083 \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-connect-demo-sh-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">-e GROUP_ID=connect-demo-group \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-connect-demo-sh-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">-e BOOTSTRAP_SERVERS=<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;"><</span>streamPoolBootstrapServer<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">></span> \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-connect-demo-sh-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">-e CONFIG_STORAGE_TOPIC=<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">$CONFIG_STORAGE_TOPIC</span> \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-connect-demo-sh-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">-e OFFSET_STORAGE_TOPIC=<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">$OFFSET_STORAGE_TOPIC</span> \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-connect-demo-sh-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">-e STATUS_STORAGE_TOPIC=<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">$STATUS_STORAGE_TOPIC</span> \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="16" id="file-connect-demo-sh-L16" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC16" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">-v <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">`</span>pwd -P<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">`</span></span>/connect-distributed.properties:/kafka/config.orig/connect-distributed.properties \</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="17" id="file-connect-demo-sh-L17" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connect-demo-sh-LC17" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">connect</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/7e84604bfff63a8646ffc745d78c948b/raw/9434ab46be1645d231ef5da5c953159f2eb42b08/connect-demo.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/7e84604bfff63a8646ffc745d78c948b#file-connect-demo-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">connect-demo.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
このBashスクリプトを実行することでConnectインスタンスを起動できます。マシンやネットワークにもよりますが、だいたい30~45秒くらいで起動されます。起動したら、REST APIでConnectorを作成できるようになっていますが、その前にJSONのConnector設定ファイルが必要です。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100015566" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-connector-config-json" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-json " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-connector-config-json-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">{</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-connector-config-json-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>name<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>oss-atp-connector<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-connector-config-json-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>config<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-connector-config-json-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>connector.class<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>io.confluent.connect.jdbc.JdbcSourceConnector<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-connector-config-json-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>tasks.max<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>100<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-connector-config-json-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>connection.url<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>jdbc:oracle:thin:@demodb_high?TNS_ADMIN=/wallet<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-connector-config-json-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>connection.user<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>coannectdemo<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-connector-config-json-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>connection.password<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Str0ngP@$$word1234<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-connector-config-json-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>mode<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>incrementing<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-connector-config-json-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>incrementing.column.name<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>ID<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-connector-config-json-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>topic.prefix<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>demo-stream-<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-connector-config-json-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>table.whitelist<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>TEST<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-connector-config-json-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>numeric.mapping<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>best_fit<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-connector-config-json-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> }</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-connector-config-json-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-connector-config-json-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/b9fd19c1d21fabfa8ed440b4b7a1e01a/raw/05e7a857745fe283e9cd04f925cc12067b360429/connector-config.json" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/b9fd19c1d21fabfa8ed440b4b7a1e01a#file-connector-config-json" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">connector-config.json</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
留意してほしいことがいくつかあります。ここのConnection URLはもし過去にATPやJDBCを使ったことがあればおなじみのものでしょう。これはあなたのWallet内のtnsnames.oraファイルの選択したエントリーを参照しており、また、Walletへのパスも指定しています(Dockerコンテナ内でのパスで、これは前のステップでファイルシステムのルートに置いてありました)。UserとPasswordは前のステップで作成しておいたスキーマの認証情報です。 <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">topic.prefix</code> のエントリは <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">table.whitelist</code> 内に指定したテーブルでTopicのPrefixとして使われます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
では、REST APIでこの設定を <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">POST</code> してSource Connectorを作成しましょう:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100015632" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-create-connector-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-create-connector-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-create-connector-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">curl -iX POST -H <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Accept:application/json<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> -H <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Content-Type:application/json<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> -d @connector-config.json http://localhost:8083/connectors</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/14b987fdb2b8f945c8ca239495271066/raw/e981676215e4473d3819b36eb03191fd91d435e6/create-connector.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/14b987fdb2b8f945c8ca239495271066#file-create-connector-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">create-connector.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
すべてのConnectorの一覧の取得には <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">GET</code> リクエストしましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100015641" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-list-connectors-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-list-connectors-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-list-connectors-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">curl -i http://localhost:8083/connectors</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/369f40a5209f857ec6d4199b7ca96977/raw/342787002d0d258483bb41a9c09c984d459aba5e/list-connectors.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/369f40a5209f857ec6d4199b7ca96977#file-list-connectors-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">list-connectors.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Connectorを削除したければ <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">DELETE</code> リクエストです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100015662" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-delete-connector-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-delete-connector-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-delete-connector-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">curl -i -X DELETE http://localhost:8083/connectors/[connector-name]</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/56335dcb3da4c5ab938152fecfbefa1b/raw/a7dddca96730ae1244d3ea5504b71d4356503f0b/delete-connector.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/56335dcb3da4c5ab938152fecfbefa1b#file-delete-connector-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">delete-connector.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
他の操作については<a href="https://docs.confluent.io/current/connect/references/restapi.html" target="_blank">Connect REST APIドキュメント</a>を参照してください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Connectorが作成できたら、Whitelistに入れたテーブルにそれぞれTopicが作成され、指定したTopic Prefixとテーブル名から成る名前がつけられて利用可能になります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/b9c2ef991f386fdc6cbf4ee83087e8f6/oss_connect_stream.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">インテグレーションを試してみる</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Streamが利用可能になったら、テーブルにいくつかのレコードをインサートしてトランザクションをコミットしてみましょう:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist100015808" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-insert-sql" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-plsql " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-insert-sql-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-insert-sql-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">INSERT INTO TEST (username, first_name, middle_name, last_name, age, created_on) </td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-insert-sql-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-insert-sql-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">VALUES ('todd', 'Todd', null, 'Sharp', 42, sysdate);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-insert-sql-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-insert-sql-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">INSERT INTO TEST (username, first_name, middle_name, last_name, age, created_on) </td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-insert-sql-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-insert-sql-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">VALUES ('gvenzl', 'Gerald', null, 'Venzl', 30, sysdate);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-insert-sql-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-insert-sql-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">INSERT INTO TEST (username, first_name, middle_name, last_name, age, created_on) </td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-insert-sql-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-insert-sql-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">VALUES ('aalmiray', 'Andres', null, 'Almiray', 40, sysdate);</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/172b39d2ce3e6f1107b73e9e2a480432/raw/f9e70f72cd413b7af8ce47119d211b92f112f504/insert.sql" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/172b39d2ce3e6f1107b73e9e2a480432#file-insert-sql" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">insert.sql</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
コンソールで当該のStreamをクリックして、'Load Messages'をクリックすると最近のメッセージが表示されます。 <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">TEST</code> テーブルにインサートしたレコードごとにメッセージがあることが確認できるでしょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/79144525fea1d6b616d704ba2fa1efdb/oss_connect_recent_messages.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
メッセージの値をクリックすると詳細が表示されます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/50f3ad8026683d898c53ea4166e8e7aa/oss_connect_recent_message_detail.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
これでおしまい!</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">まとめ</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
このポストではATPにテストスキーマとテーブルを作成し、Stream PoolとConnect Configurationを作成し、Kafka ConnectのインスタンスをDebezium Dockerイメージを使って起動して、ATP用の<b>Source</b> ConnectorをKafka Connect上に作成しました。テーブルにレコードをインサートすると、そのレコードがStreamにメッセージとしてPublishされているのを見て取れました。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Kafka Connectによるインテグレーションはとてもパワフルで、Oracle Cloud上のどんなマイクロサービスにでも使うことができるでしょう。</div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-19013844736268588812020-02-18T18:07:00.000+09:002020-02-20T13:16:55.699+09:00[Database] Blockchain Tableの登場/Native Blockchain Tables Extend Oracle Database’s Multi-model Converged Architecture<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif;">原文はこちら</span></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://blogs.oracle.com/blockchain/native-blockchain-tables-extend-oracle-database%e2%80%99s-multi-model-converged-architecture">https://blogs.oracle.com/blockchain/native-blockchain-tables-extend-oracle-database%e2%80%99s-multi-model-converged-architecture</a></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;" />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;">出ました!Oracle OpenWorld 2019で初めに<a href="http://www.oracle.com/corporate/pressrelease/oow19-oracle-database-innovations-091619.html" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #0563c1; list-style: none; margin: 0px; padding: 0px;" target="_blank"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="color: #bc6c37; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">アナウンスされ</span></span></span></span></a>、こちらの私の</span><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><a href="https://blogs.oracle.com/blockchain/blockchain-tables-in-oracle-database%3A-technology-convergence" name="cta=Internal Link Click" style="-webkit-font-smoothing: antialiased; color: #0563c1; list-style: none; margin: 0px; padding: 0px;" target="_blank">ブログポスト</a>でご紹介したBlockchain Tableが、</span></span></span></span><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><a href="http://www.oracle.com/database/vm-cloud.html" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #0563c1; list-style: none; margin: 0px; padding: 0px;" target="_blank">Oracle CloudのDatabase as a Service</a>での<a href="http://blogs.oracle.com/database/%20ga-of-oracle-database-20c-preview-release" target="_blank">Oracle Database 20cのPreview Release</a>のお知らせで述べられている通り、実際に出てきました。というわけで、Blockchain Tableとはなんなのか、どうして重要なのかについて解説したいと思います。</span></span></span></span></div>
</div>
</div>
</div>
<div class="adwcsengine" data-adgroupid="NONE PROVIDED" data-id="NONE PROVIDED" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
</div>
<br />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/7ed9647a-12c9-448d-9b81-984a39cef202/Image/7758ed555957031eaf517550e871fffa/blockchain_tables.png" style="-webkit-font-smoothing: antialiased; border: 0px; float: right; height: 236px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 420px;" /></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;">Blockchain Tableは、Oracle Databaseの中で使える、</span></span></span></span><span style="font-family: "calibri" , sans-serif;">高い耐タンパ性を備えた永続化オプションを提供する、</span><span style="font-family: "calibri" , sans-serif;">データベーステーブルの新たな特殊なタイプです。Blockchain TableではINSERTのみを行うオペレーションが行える一方で、UPDATEなどの修正は許可されておらず、削除にも制約があります。耐タンパ性を向上するために、ある行にはその前の行のハッシュが保持されており、これにより改ざんされていないことをユーザーは確認できます。また、オプションとして行の内容についてX.509証明書を利用したPKIベースの電子署名で署名することができ、これらの署名とデータ完全性は検証できるので、確実な否認防止を実現することもできます。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">Blockchain Tableを用いることで、ユーザーはアプリケーション透過的に他のユーザーによる偽造、改ざんを防ぐことができます。また、データへの署名および検証により、アプリケーション提供者による内部不正も防ぐことができます(「信頼するが検証もする」)。非中央集権アプリケーションならば</span><a href="https://www.oracle.com/blockchain/#blockchain-platform-tab" style="font-family: Calibri, sans-serif;" target="_blank">Oracle Blockchain Platform</a><span style="font-family: "calibri" , sans-serif;">の非中央集権化された信頼のモデルを活用できる一方で、今日におけるほとんどのアプリケーションは中央集権的な権威(銀行、エスクロー機関、取引所や交換所、行政など)を持っています。Oracle Database内のBlockchain Tableを活用することで、このような中央集権的アプリケーションを、非中央集権モデルへと変更することによる複雑さの増加ナシで、よりセキュアにすることができるのです。これこそがまさにOracle Database 20c Native Blockchain Tableの存在理由です。例を挙げれば、金融取引の履歴、監査証跡、規制対応のコンプライアンスデータ、SOX-404管理対象の金融レコード、訴訟ホールドされたデータ、証拠保全などがあります。Blockchain Tableをこれらに用いることで、アプリケーションをよりセキュアにし、データに耐改ざん性を付与することができます。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">上に挙げたような例では、ブロックチェーンネットワークと非中央集権アプリケーションを構築するよりも格段に簡単にBlockchain Tableを使うことができるでしょう。この機能はOracle Databaseの一部として提供されるため、新しい基盤の導入は不要です。このテーブルを既存アプリケーションに透過的に使うこともできますし、開発者たちは既存のアーキテクチャとプログラミングモデルを保ったまま、SQLやPL/SQL、JDBCやその他のやり方でテーブルにアクセスできます。Blockchain Tableはさらに、他のテーブルと組み合わせてトランザクションやクエリを行うことができます。</span></div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 3px 0px 0.6em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 18.5467px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #2e74b5; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">一般的なデザインパターン</span></span></span></span></span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">ひとつめのパターンは、変更されないデータ(例えばIoTデバイスから受け取ったデータ、コンプライアンスデータなど)を保持する必要があるアプリケーションの場合です。Blockchain Tableを作成し、こうしたデータを直接保存します。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">ふたつめのケースでは、既存のアプリケーションが、通常のデータベーステーブル上での更新についての、耐改ざん性のある監査証跡を保持する必要がある場合です。追加でBlockchain Tableを作成し、既存のテーブルでの更新ごとにBlockchain Tableにレコードをインサートするようにアプリケーションを改修するか、あるいは既存のテーブルにトリガーを追加して更新の都度ストアドプロシージャを呼び出してBlockchain Tableにレコードを追加されるようにするかして、Blockchain Table上に監査証跡を保持するようにします。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">分散したブロックチェーンネットワークを使う非中央集権アプリケーションに関わる別のシナリオもありますね。しばしばこうしたアプリケーションでは、電子医療記録(EHR)や画像、法的な合意情報や契約情報などの、大きなサイズのデータを保持する必要があります。分散ネットワーク上ではノード間で多数のメッセージがやり取りされるため、MB級やドキュメントやGB級の画像などは大きなネットワーク負荷につながります。より適切なアプローチとしてレコードのアンカリング(データのハッシュ値を取り、メタデータとともにオンチェーンに保持する)を分散台帳上で行いつつ、実データ内容はオフチェーンのデータストア、例えば耐改ざん性のあるBlockchain Table、に保持する、というものがあります。テーブルの耐改ざん性と、ブロックチェーン上のアンカリングを組み合わせることによって、データの改ざんをより一層難しくできるというわけです。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;">と、ここまでBlockchain Tableがどうして重要なのかについて説明してきたので、ここからはどうやって使うのかを説明していきましょう。</span></span></span></div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 3px 0px 0.6em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 18.5467px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #2e74b5; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">Blockchain Tableの作成と利用</span></span></span></span></span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">Oracle Database 20cでは、Blockchain TableのためにDDLと有用な関数を備えた3つのPL/SQLパッケージが変更、追加されています。このあとのハンズオンを実際に試してみたい場合は、</span><a href="http://www.oracle.com/database/vm-cloud.html" style="font-family: Calibri, sans-serif;" target="_blank">Oracle Cloud Database as a Service</a><span style="font-family: "calibri" , sans-serif;">を使って、Databaseインスタンスを立ち上げて、お好みのデータベースクライアント(SQL Developerなど)で接続して実施してください。</span></div>
<h3 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 3px auto 2em; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 17.12px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #1f4d78; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">新しいDDL</span></span></span></span></span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">新規追加されたDDLである<b>CREATE BLOCKCHAIN TABLE</b>によって、Blockchain Tableを作成するとともにいくつかのパラメーターをセットできます。以下の例のように:</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"> <span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "courier new"; line-height: inherit; list-style: none; margin: 0px; padding: 0px;">CREATE BLOCKCHAIN TABLE bank_ledger (bank varchar2(128), EOD_deposit NUMBER, ...) \</span></span></span></span></span></span><br />
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "courier new"; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"> NO DROP UNTIL 31 DAYS IDLE \</span></span></span></span></span></span><br />
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "courier new"; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"> NO DELETE LOCKED \</span></span></span></span></span></span><br />
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "courier new"; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"> HASHING USING "sha2_512" VERSION "v1“;</span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; margin-top: 16px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">このリリースでサポートされているデータタイプはNUMBER、VARCHAR2、RAW、JSON、BLOB、CLOB、DATEフォーマットおよび他のスカラータイプである点に留意ください。それ以外のタイプ、LONG、ADTs、TYPE、varray、OBJECTS、ROWID、BFILE、REF、Collectionsなどはサポートされていません。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; margin-top: 16px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;">上の例では3つの句が付与されていることにお気づきでしょう:</span></span></span></div>
<ol style="-webkit-font-smoothing: antialiased; background-color: white; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; left: 20px; line-height: 1.5em; list-style: decimal; margin: 16px 1.5em 11px 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><b>NO DROP [UNTIL n DAYS IDLE]</b> は必須の句です。これは、テーブルをドロップできないようにするか、あるいはテーブルがドロップできるようになるまでに必要となる一定の更新がない期間を設定するものです。nの最小値は16で、これはテーブルが自然と休眠するかもしれない、ほとんどの一般的な休暇期間の長さよりも長いです。ALTER TABLE句によってこのリテンションピリオドを変更することができます。</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; left: 20px; line-height: 1.5em; list-style: decimal; margin: 16px 1.5em 11px 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif;"><b>NO DELETE [LOCKED] </b>または<b> NO DELETE UNTIL n DAYS AFTER INSERT [LOCKED] </b>は削除ポリシーを管理する句です。真に永続する台帳のような場合のためには行の削除は禁止ができますし、あるいはn日のリテンションピリオド経過後には削除できるようにもできます。この場合もnの最小値は16です。NO DELETE(LOCKEDの有無に関わらず)またはNO DELETE UNTIL ... LOCKEDが指定された場合、この設定はあとから変更できません。LOCKEDを付けずにNO DELETE UNTILが指定された場合にはALTER TABLEでnの値を増やすことはできますが、減らすことはできません。</span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; left: 20px; line-height: 1.5em; list-style: decimal; margin: 16px 1.5em 11px 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif;"><b>HASHING USING "sha2_512" VERSION "v1“ </b>も必須の句で、行のハッシュ計算にSHA2アルゴリズムを512bitの出力長で用いることを指定しています。将来Oracle Golden Gateや論理レプリケーションを用いて新しいDatabaseバージョン上にこのテーブルが複製された場合、新バージョンでは別のハッシュアルゴリズムやデータフォーマットバージョンがデフォルトになっているかもしれないため、確実に適切に複製されるようにこの句の指定を必須としています。</span></span></span></span></span></li>
</ol>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; margin-top: 16px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;">ALTER TABLEについては、Blockchain Tableでは上に挙げたものおよび制約を追加するもの以外にはほとんどの変更が許可されません。</span></span></span></div>
<h3 style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><span style="color: #1f4d78; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><b><span style="font-size: small;">Blockchain Tableの制約</span></b></span></span></span></span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; margin-top: 16px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">データの変更不能性というブロックチェーンの基礎となる思想はBlockchain Tableというデータベースの実装に生かされています。Blockchain Tableでは、DMLでもダイレクトパスインサート(INSERT AS SELECTやSQL Loader)でもGolden Gate論理レプリケーションでも行を更新することはできません。さらに、以下のこともできません:</span></div>
<ul style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 16px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="font-family: "calibri" , sans-serif;">(テーブルにセットされたパラメータ次第で)リテンションピリオド内で、あるいはいつまでも、行の削除</span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 16px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="font-family: "calibri" , sans-serif;">カラムの追加、ドロップ、リネーム</span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 16px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="font-family: "calibri" , sans-serif;">パーティションのドロップ</span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; left: 0px; line-height: 1.5em; list-style: disc; margin: 16px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">行の更新前トリガーのセット</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; left: 0px; line-height: 1.5em; list-style: disc; margin: 16px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">Blockchain Tableを通常のテーブルに変換(またその逆も)</span></span></span></span></li>
</ul>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; margin-top: 16px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">これらの制約により基礎的な操作からもBlockchain Table上のデータを保護し、また、データベースユーザーにより改ざんや偽造、履歴の書き換えなどを防ぐことができます。</span></div>
<h3 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 3px auto 2em; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 17.12px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #1f4d78; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">行のチェーン化と署名</span></span></span></span></span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;">行が追加されると、Oracleによってマネージされる隠しカラムを用いて特殊なチェーン化プロセスが実行され、耐改ざん性を確実に実現します。これは、ブロックチェーンが前のブロックの暗号学的ハッシュを現データに含めるというやり方で耐改ざん性を実現していることと同様です。以前のデータが変更されるとハッシュが異なってくるため、現データに格納されているハッシュ値と食い違いを生じます。OracleのBlockchain Tableでは、1)現在の行のユーザーカラム</span></span></span><span style="font-family: "calibri" , sans-serif;">と隠しカラムの</span><span style="font-family: "calibri" , sans-serif;">「行の内容」(ユーザー署名カラムは除きます) および 2)前の行の隠しハッシュカラム の組み合わせに対してSHA2-512で計算されたハッシュ値が生成されます。行追加の並列処理およびハイパフォーマンスのため、32のチェーンが保持されます。また、RAC構成の場合にはRACインスタンスごとに32チェーンが保持されます。なので、厳密に言うと、「前の」行というのは、現在の行が属するある特定のチェーン上でひとつ少ないシーケンスナンバーを持っている行、ということになります。各カラムポジションごとのメタデータヘッダとcolumn-byte-valueが要素として連結された配列に、「前の」行の隠しハッシュカラムのメタデータと</span><span style="font-family: "calibri" , sans-serif;">column-byte-valueを連結したものを対象にSHA2-512ハッシュ計算が行われます。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: normal; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;">これにより、万一データベース防御をなんらかの手段によりバイパスし、行を変更できたとした場合でさえ、深いレベルでデータを人知れず改ざんされることから保護することができます。ハッシュチェーンの整合性は下記のPL/SQLパッケージの関数で検証することができます。さらに、以下を用いることで管理者レベルでの改ざんからも保護することができます:</span></span></span></div>
<ul style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 11px 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: normal; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">暗号化およびDatabase Vaultを用いる</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 11px 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: normal; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">DBAのアクセス権限外にある外部のリポジトリに暗号学的ハッシュを定期的にコピーしておく</span></span></span></span></li>
</ul>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">ビルトインされた暗号学的ハッシュによる行のチェーン化に加えて、下記のPL/SQLパッケージによりPKI(X.509)証明書を登録しておき、行が追加された際にユーザー署名を付与することができます。これによりユーザーや管理者が他者になりすましたり、あるいは他の誰かが自分になりすましたのだと主張することができなくなる、否認防止の特性をもたせることができます。もちろん、このために秘密鍵のセキュリティは大前提となりますし、誰かの秘密鍵が漏洩した場合に無効化して再発行する機能も必要です。</span></div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 3px 0px 0.6em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 18.5467px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #2e74b5; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">Blockchain Table PL/SQLパッケージ</span></span></span></span></span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">PL/SQLでBlockchain Tableを扱うために、様々な関数を備えた3つのデータベースパッケージを提供しています。</span></div>
<h3 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 3px auto 2em; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 17.12px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #1f4d78; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">DBMS_BLOCKCHAIN_TABLE</span></span></span></span></span></h3>
<ul style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="font-family: "calibri" , sans-serif;">delete_rows():リテンションピリオド範囲外の行を削除する(将来リリースでdelete_expired_rows()にリネームされます)</span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">verify_rows():チェーンの整合性を検証します</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">sign_row():インサート済の行にユーザー署名を格納します</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">get_bytes_for_row_hash():行のSHA2-512ハッシュを計算するための行の内容データフォーマットを返却します</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">get_bytes_for_row_signature():行のハッシュを返却します</span></span></span></span></li>
</ul>
<h3 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 16px auto 2em; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 17.12px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #1f4d78; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">DBMS_TABLE_DATA</span></span></span></span></span></span></span></span></h3>
<ul style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">get_bytes_for_column():指定されたカラムの{column-byte-value}を返却します</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">get_bytes_for_columns() :指定された(複数)カラムの{column-byte-value}*配列を返却します</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">get_bytes_for_row() :指定された行のすべてのカラムの{column-byte-value}*配列を返却します</span></span></span></span></li>
</ul>
<h3 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 16px auto 2em; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 17.12px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #1f4d78; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">DBMS_USER_CERTS</span></span></span></span></span></span></span></span></h3>
<ul style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">add_certificate(): “sys.user_certs$”の辞書テーブルに証明書を登録し、ユニークなGUIDを返却します</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">drop_certificate():“sys.user_certs$”テーブルから(存在していれば)指定された証明書を削除します</span></span></span></span></li>
</ul>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 3px 0px 0.6em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 18.5467px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #2e74b5; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">Viewを用いたBlockchain Tableの管理</span></span></span></span></span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">2つのViewセットが事前定義されており、Blockchain Tableとユーザー証明書のメタデータ情報をクエリ、管理するのに役立ちます。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;">Blockchain Table用には:</span></span></span></div>
<ul style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">ALL_BLOCKCHAIN_TABLES</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">DBA_BLOCKCHAIN_TABLES</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">USER_BLOCKCHAIN_TABLES</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">CDB_BLOCKCHAIN_TABLES</span></span></span></span></li>
</ul>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">これらのViewは以下のカラム(名称は省略して記載しているので、フルの名称についてはドキュメントを参照ください)を持っています:SCHEMA_NAME(USER以外のViewに存在)、TABLE_NAME、ROW_RETENTION、ROW_RETENTION_LOCKED、TABLE_INACTIVITY_RETENTION、HASH_ALGORITHM、CON_ID(CDB Viewのみに存在)</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;">ユーザー証明書については、以下のViewが定義されています:</span></span></span></div>
<ul style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">DBA_CERTIFICATES</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">USER_CERTIFICATES</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">CDB_CERTIFICATES</span></span></span></span></li>
</ul>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">これらのViewは以下のカラムを持っています:CERTIFICATE_GUID、USER_NAME、DISTINGUISHED_NAME、CERTIFICATE(BLOB)、CON_ID(CDB Viewのみに存在)</span></div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 18.5467px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #2e74b5; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">ベストプラクティス</span></span></span></span></span></h2>
<ul style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">各インスタンスの各チェーンごとに、現在ハッシュと対応するシーケンスナンバーをレジャーデータベースの外部に定期的に保存し、チェーンの整合性検証を可能にしておく</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">Data Guardを使っている場合には、Max Protectionモードを使うことでレジャーレコードの喪失を防ぐ(プライマリでトランザクションがコミットされる前にスタンバイDBに同期でRedoが転送されコミットされる)</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">インサートされた行の、データベースによって生成されたハッシュ値について電子署名の計算を行う(</span></span></span></span><b style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; list-style: none; margin: 0px; padding: 0px;">DBMS_BLOCKCHAIN_TABLE.get_bytes_for_row_signature() </b><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">)</span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">ハッシュと署名はデータベースの外部に保存しておき、将来的にそのデータベースが依然信頼に値するかを検証できるようにしておく</span></li>
</ul>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 3px 0px 16px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 18.5467px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #2e74b5; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">Blockchain TableとBlockchain Platformの使い分け</span></span></span></span></span></h2>
<table class="MsoTableGrid" style="-webkit-font-smoothing: antialiased; background-color: white; border-collapse: collapse; border: 1pt solid windowtext; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; border: 1pt solid windowtext; line-height: 1.3; list-style: none; margin: 0px; padding: 0in 5.4pt; width: 233.75pt;" valign="top" width="312"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: normal; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><b style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">Oracle Database Blockchain Tables</b></span></span></span></div>
</td><td style="-webkit-font-smoothing: antialiased; border-bottom: 1pt solid windowtext; border-image: initial; border-left: none; border-right: 1pt solid windowtext; border-top: 1pt solid windowtext; line-height: 1.3; list-style: none; margin: 0px; padding: 0in 5.4pt; width: 233.75pt;" valign="top" width="312"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: normal; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><b style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">Oracle Blockchain Platform</b></span></span></span></div>
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; border-bottom: 1pt solid windowtext; border-image: initial; border-left: 1pt solid windowtext; border-right: 1pt solid windowtext; border-top: none; line-height: 1.3; list-style: none; margin: 0px; padding: 0in 5.4pt; width: 233.75pt;" valign="top" width="312"><ul style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">単一の企業で使う場合、または、複数組織で使う、かつ中央集権的権威として扱うことができる中立機関が存在している</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">高度な耐改ざん性を備えたストレージで既存のアプリケーションをセキュアにしたい</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">非中央集権化は必要ない</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">既存のアプリケーションアーキテクチャやプログラミング環境(SQL、PL/SQL、JDBC)にフィットしたものがほしい</span></span></span></li>
</ul>
</td><td style="-webkit-font-smoothing: antialiased; border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; line-height: 1.3; list-style: none; margin: 0px; padding: 0in 5.4pt; width: 233.75pt;" valign="top" width="312"><ul style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="font-family: "calibri" , sans-serif;">分散台帳を必要とする複数の組織が存在している</span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;">複数組織で高度な相互運用性を持ったデータを共有したい</span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="font-family: "calibri" , sans-serif;">オープンソースおよび標準への志向</span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">マルチシグネチャ、非中央集権的信頼が必要</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">複数ノード間でスマートコントラクトを実行したい</span></span></span></span></span></li>
</ul>
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; border-bottom: 1pt solid windowtext; border-image: initial; border-left: 1pt solid windowtext; border-right: 1pt solid windowtext; border-top: none; line-height: 1.3; list-style: none; margin: 0px; padding: 0in 5.4pt; width: 233.75pt;" valign="top" width="312"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; margin-left: 4px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><b style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">例えば以下のようなユースケース</span></span></span></span></b></span></span></div>
<ul style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #404040; list-style: none; margin: 0px; padding: 0px;">不変のトランザクションログ、監査証跡を一元的に保持</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #404040; list-style: none; margin: 0px; padding: 0px;">コンプライアンスデータ</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="color: #404040; font-family: "calibri" , sans-serif;">金融/勘定台帳やサブ台帳テーブル</span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #404040; list-style: none; margin: 0px; padding: 0px;">訴訟ホールドデータ</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #404040; list-style: none; margin: 0px; padding: 0px;">中央機関によって保持されたエスクロー情報</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #404040; list-style: none; margin: 0px; padding: 0px;">クリアリングハウスでのデータ照合</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="color: #404040; font-family: "calibri" , sans-serif;">証拠保全</span></li>
</ul>
</td><td style="-webkit-font-smoothing: antialiased; border-bottom: 1pt solid windowtext; border-left: none; border-right: 1pt solid windowtext; border-top: none; line-height: 1.3; list-style: none; margin: 0px; padding: 0in 5.4pt; width: 233.75pt;" valign="top" width="312"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><b style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">Use cases involve</b></span></span></span></div>
<ul style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="color: #404040; font-family: "calibri" , sans-serif;">非中央集権でのレコード保持、監査証跡の保持</span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #404040; list-style: none; margin: 0px; padding: 0px;">取引コミュニティ内でのサプライチェーンの来歴情報や正統性</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #404040; list-style: none; margin: 0px; padding: 0px;">複数組織でのトランザクションログ…支払いやファンド送金、マーケットプレイス、アセットトークン化など</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #404040; list-style: none; margin: 0px; padding: 0px;">複数発行体の絡むデジタル・アイデンティティや証明書</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #404040; list-style: none; margin: 0px; padding: 0px;">複数組織に持つオブジェクト/ドキュメントに基づいたビジネス取引の照合と突合</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #404040; list-style: none; margin: 0px; padding: 0px;">マルチブランドのロイヤリティシステム</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #404040; list-style: none; margin: 0px; padding: 0px;">金融サービスでのKnow-Your-Customer (KYC) ソリューション</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "times new roman" , serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #404040; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">サプライチェーンエコシステムでのKnow-Your-Supplier (KYS) ソリューション</span></span></span></span></span></span></span></span></span></span></span></li>
</ul>
</td></tr>
</tbody></table>
<h3 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; font-weight: 500; line-height: 1.2; list-style: none; margin: 0px auto 11px; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 18.5467px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #2e74b5; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;"><br /></span></span></span></span></span></h3>
<h3 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px auto 11px; max-width: 1180px; overflow: hidden; padding: 0px; width: 743.4px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 18.5467px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri light" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="color: #2e74b5; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">準備はできましたか?</span></span></span></span></span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">新たなNative Blockchain Table機能をこの20c Preview Releaseで触ってみるには?まずOracle Cloudのアカウントを用意して、Oracle Cloud Database as a ServiceでDatabase VMを作成しましょう。そしてお気に入りのデータベースクライアントでデータベースに接続し、CREATE BLOCKCHAIN TABLEしてください(必須の句は忘れずに!)。こんなに簡単です。質問などあれば通常のカスタマーサポート窓口からサポートも受けられますし、パブリックのフォーラムもありますよ。</span></div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-15377460606867444042020-02-18T13:46:00.000+09:002020-02-18T13:46:12.061+09:00[Cloud] Oracle Cloud Shellのリリース/Announcing Oracle Cloud Shell<span style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif; font-size: 13px;">原文はこちら</span><br />
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://blogs.oracle.com/cloud-infrastructure/announcing-oracle-cloud-shell">https://blogs.oracle.com/cloud-infrastructure/announcing-oracle-cloud-shell</a></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif; font-size: 13px;" />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/cd75eeda-eab3-4eba-b320-612d026a2521/Image/4e62c8c4c63ac7a686b036ac7bc074b8/cloudshell_announce.png" style="-webkit-font-smoothing: antialiased; border: 0px; float: left; height: 201px; list-style: none; margin: 0px 5px; max-width: 100%; padding: 0px; width: 225px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Oracle Cloud InfrastructureのCloud Shellのリリースをお伝えできてとても嬉しいです!Cloud Shellにより、Oracle Cloud Infrastructureのコンソール上で常に利用可能なLinuxシェルへアクセスできます。このシェルを使ってあなたのリソースを操作したり、ハンズオンやチュートリアルを試してみたり、<a href="https://docs.cloud.oracle.com/iaas/Content/API/Concepts/cliconcepts.htm" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; background-color: transparent; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">OCI CLI</a>を迅速に実行したりすることができます。Cloud Shellは既存の<a href="https://docs.cloud.oracle.com/en-us/iaas/Content/devtoolshome.htm" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; background-color: transparent; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">developer tools</a>(CLI、SDKおよびAPI)の一部として提供され、あなたがOracle Cloud Infrastructureリソースを管理するためのツールとして役立ちます。そしてこのCloud Shellは、すべての<a href="https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; background-color: transparent; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">商用リージョン</a>で現在利用可能です。</div>
<div class="adwcsengine" data-adgroupid="NONE PROVIDED" data-id="NONE PROVIDED" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
</div>
<br />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Cloud Shellは(<a href="https://docs.cloud.oracle.com/iaas/Content/General/Concepts/servicelimits.htm" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; background-color: transparent; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">月次の利用上限はあるものの</a>)無料で利用可能で、コンソールから簡単にアクセスできます。Cloud Shellを使うために新しくリソースをセットアップする必要はありません。コンソールの上部にある新しいアイコンをクリックするだけで使えますよ。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Cloud Shellは以下の機能を提供します:</div>
<ul style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">事前認証済のOCI CLI。なのでCloud ShellでCLIを使う際に事前設定は必要ありません。</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Oracle Cloud Infrastructureとやり取りするための<a href="https://docs.cloud.oracle.com/iaas/Content/API/Concepts/cloudshellintro.htm#WhatsIncludedWithCloudShell" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">key developer tools</a>、および事前インストール済みのプログラミング言語実行環境を備えた完全なLinux Shell。</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">homeディレクトリ配下に5GBのストレージ。なのでCloud Shellセッション間で、作業を保存しておけます。</li>
</ul>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Cloud Shell実行マシンはCloud Shellサービスによってマネージされており、コンソールにアクセスできるならどこからでも利用可能です。そのため、ユーザーの皆さんはブラウザ上からいつでもOracle Cloud Infrastructureリソースとやり取りできるというわけです。</div>
<h2 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">使ってみる</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Cloud Shellを起動するには、あなたにCloud Shellへの権限を付与する<a href="https://docs.cloud.oracle.com/iaas/Content/API/Concepts/cloudshellintro.htm#RequiredIAMPolicy" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; background-color: transparent; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">適切なIAMポリシー</a> だけあればOKです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
あなたのテナンシーのコンソールにサインインして、ページ上部にあるCloud Shellのアイコンをクリックしましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="Screenshot that highlights the Cloud Shell icon in the top-right corner of the page." src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/cd75eeda-eab3-4eba-b320-612d026a2521/Image/33772b201cec0a2c044c0bad6eaaf630/screen_shot_2019_12_16_at_1_09_01_pm.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: 385px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 1056px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
するとコンソール上のCloud Shellペインがアクティブになります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="Screenshot that shows the Cloud Shell pane open at the bottom of the Console page." src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/cd75eeda-eab3-4eba-b320-612d026a2521/Image/2fdf6b6a3abdeacce1418fe5cbf572bb/screen_shot_2019_12_16_at_1_13_12_pm.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: 809px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 1059px;" /></div>
<h2 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">ササッと使ってみるための例</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Cloud Shellでどんなことができるかの、簡単な例をご紹介します。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">OCI CLIコマンドをコンソール上で実行する</span></h2>
<ol style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Cloud Shellを開きます。</div>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
OCI CLIコマンドをプロンプトから実行します。以下のコマンドを試してみましょう:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">$ oci os ns get</code></pre>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
結果を確認しましょう(あなたのテナンシーのユニークネームスペースが返却されるはず)。</div>
</li>
</ol>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">クラウドリソースとやり取りするためのインストール済みツールを使用する</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
例えば、以下のようにしてあなたの<a href="https://docs.cloud.oracle.com/en-us/iaas/Content/ContEng/Concepts/contengoverview.htm" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; background-color: transparent; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">Container Engine for Kubernetes cluster</a>に接続することができます:</div>
<ol style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
コンソールで、クラスターのページに移動する(Developer Services > Container Clousters)</div>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
クラスターを選び、Access Kubeconfigをクリック</div>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
表示される <span style="-webkit-font-smoothing: antialiased; font-family: monospace; list-style: none; margin: 0px; padding: 0px;">oci ce cluster…</span> コマンドをコピーする</div>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Cloud Shellを開く</div>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
コピーしておいたCLIコマンドをCloud Shellに貼り付ける(Shift + Insertキー)。</div>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
kubectlでクラスターに接続できることを確認する:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">$ kubectl get nodes</code></pre>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
SUCCESS!!</div>
</li>
</ol>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/cd75eeda-eab3-4eba-b320-612d026a2521/Image/72e3c94f8c3bd5a9cb494e4758f1dddc/cloudshell_oke_sm2.gif" style="-webkit-font-smoothing: antialiased; border: 0px; height: 297px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 511px;" /></div>
<h2 style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">より詳しい情報</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Cloud Shellについてもっと詳しく知りたければ、<a href="https://docs.cloud.oracle.com/iaas/Content/API/Concepts/cloudshellintro.htm" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; background-color: transparent; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">Cloud Shell documentation</a>とFAQをご覧になってください。</div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-601746144193365272020-01-15T13:16:00.001+09:002020-01-15T13:16:58.828+09:00[Cloud] VMインスタンスのサイジングのワークロードに応じた調整/Right-Size Your VM Instances to Support Your Workload<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;">原文はこちら</span></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://blogs.oracle.com/cloud-infrastructure/right-size-your-vm-instances-to-support-your-workload">https://blogs.oracle.com/cloud-infrastructure/right-size-your-vm-instances-to-support-your-workload</a></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif; font-size: 13px;" />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" class="cb11splash" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/46cba44e-100e-4f99-99c5-38c37b97a5d6/File/b8063d472b433d9b553e395ae59b3816/sanjay_vm_banner_v2.png" style="-webkit-font-smoothing: antialiased; border: 0px; color: #100f0e; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
</div>
</div>
</div>
<div class="cb11v2-posturltracking" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ビジネスは常に変化していくものです。時にはその変化は、例えば支払いや流通のカレンダーに紐付いた、周期的なものであることもあります。しかし多くの場合には変化はダイナミックで、予期し難いものです。あなたの業務の量が変わるにつれて、コンピュートリソースをスケールアップして性能を向上したり、スケールダウンしてコストを減らしたりすることを、迅速にできるようにしておく必要があるでしょう。というわけで、Oracle Cloud Infrastructure上に存在しているあなたのVirtual Machine(VM)インスタンスは、インスタンスを再構築したりアプリケーションを再デプロイしたりする必要なしにCPU、メモリ、ネットワーク帯域幅を変えられるようになりました。</div>
<div class="adwcsengine" data-adgroupid="NONE PROVIDED" data-id="NONE PROVIDED" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
</div>
<br />
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">サイジング調整が容易に</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
VMインスタンスを開始するときにはいずれかのシェイプ(あるいはテンプレート)を選択し、それによりOCPUの数、メモリの量、ネットワーク帯域幅が決定されます。これまでは、将来的に必要になると想定される性能要件を加味した上で十分なリソースを持ったシェイプを選んで置く必要がありました。あなたのビジネスが予想よりもハイペースで成長した場合、新しいインスタンスを開始し、そこでアプリケーションを再構成する必要が生じていました。<b>これからは、既存のインスタンスのシェイプを、アプリケーションとインスタンスプロパティを保持したまま、一回のリブートだけで変更することができるようになりました。</b></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
処理量の急な増大が来そう?たった数回のクリックだけで、VMインスタンスをより性能のよい構成にスケールアップすることができます。また、必要がなくなったらコスト効率の良い構成に変更するのも同様に簡単です。必要な数のOCPU、メモリ量、ネットワーク帯域幅を備えたシェイプを選べます。また、最新のIntel、AMDのプロセッサーを利用するようにシェイプを変えることもできます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
シェイプ変更のプロセスにはリブートが必要となりますが、ブロックボリュームやVNIC、流動的/予約済パブリックIPなどのインスタンスプロパティには影響ありません。より多いOCPU、メモリ、ネットワーク帯域幅を備えた新しいシェイプを利用するのに、アプリケーションを再構成したり、再インストールしたりする必要はないのです。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">VMインスタンスシェイプの変更</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
コンソールからサイズ変更したいインスタンスの詳細ページを開き、<b>Actions</b>→<b>Change Shape</b>とクリックします。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="Screenshot of an instance details page highlighting the Change Shape option and showing the current instance shape, VM.Standard1.1." height="320" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/46cba44e-100e-4f99-99c5-38c37b97a5d6/File/c4724774ed56e7c9a259897bae611108/c4724774ed56e7c9a259897bae611108.jpeg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" width="691" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
既存のシェイプとOSイメージで利用可能なシェイプのリストを表示するシェイプ選択画面が開きます。プロセッサータイプ、OCPUの数、メモリ量、ネットワーク帯域幅を勘案して使いたいシェイプを選択しましょう。そして<b>Change Shape</b>をクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="Screenshot that shows the Change Shape panel, highlighting the current shape, the list of available shapes, and the chosen new shape, VM.Standard2.4." height="469" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/46cba44e-100e-4f99-99c5-38c37b97a5d6/File/a7098bf57d93cd5ee269a8d09c60213a/a7098bf57d93cd5ee269a8d09c60213a.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" width="704" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
インスタンスが稼働中の場合、再起動されます。停止中のインスタンスのシェイプを変更する場合には、シェイプは変更されますが停止されたままです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
インスタンスが再起動された後、指定したシェイプに更新されており、インスタンスプロパティと付随物はそのままになっています。これであなたのワークロードのための新しいVMリソースが利用可能になったというわけです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" height="319" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/46cba44e-100e-4f99-99c5-38c37b97a5d6/Image/240fad443adc1b1baece2ee6d167d4a2/resize_changeshapepostv2.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" width="714" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
APIや他の開発者ツールでは、<a href="https://docs.cloud.oracle.com/iaas/api/#/en/iaas/20160918/Instance/UpdateInstance" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">UpdateInstance</a>オペレーションを使うことでVMシェイプを変更できます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
シェイプ変更機能はすべてのリージョンで利用可能で、VM StandardとVM GPU3インスタンスでサポートされています。OSイメージと元のシェイプのプロセッサーにより、新しいシェイプのターゲットとして何が選べるかが決まります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
シェイプを変更すると、新しいシェイプの基準で課金が発生します。あなたのアプリケーションに必要なライセンスによっては、VMのOCPU数を増やすことで付随的なコストが発生する場合があります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/resizinginstances.htm" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">インスタンスのシェイプ変更方法</a>と<a href="https://docs.cloud.oracle.com/iaas/Content/Compute/References/computeshapes.htm#virtualmachines" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">Compute VMのシェイプのリスト</a>についてのより詳細な情報についてはOracle Cloud Infrastructureのドキュメントをご覧ください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Oracle Cloud Infrastructureのこうした新しい機能、また、他のエンタープライズグレードの機能について、ぜひ体験してみていただきたいです。<a href="https://cloud.oracle.com/en_US/tryit" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">300ドル分の無料クレジット付きのトライアル</a>で簡単に試してみていただけます。詳しい情報は<a href="https://docs.us-phoenix-1.oraclecloud.com/Content/GSG/Concepts/baremetalintro.htm" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">Oracle Cloud Infrastructure Getting Started guide</a>, <a href="https://www.oracle.com/cloud/compute/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">Compute service overview</a>と<a href="https://www.oracle.com/cloud/compute/faq.html" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">FAQ</a>をご覧ください。</div>
</div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-58797875935406906452020-01-14T11:58:00.000+09:002020-01-14T11:58:47.294+09:00[Storage] ブロックボリュームの複数インスタンスアタッチ機能を使ったOCI上での共有ストレージの作成/Using the Multiple-Instance Attach Block Volume Feature to Create a Shared File System on Oracle Cloud Infrastructure<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif;">原文はこちら</span></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://blogs.oracle.com/cloud-infrastructure/using-the-multi-attach-block-volume-feature-to-create-a-shared-file-system-on-oracle-cloud-infrastructure">https://blogs.oracle.com/cloud-infrastructure/using-the-multi-attach-block-volume-feature-to-create-a-shared-file-system-on-oracle-cloud-infrastructure</a></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;" />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
共有ファイルシステムを使いたいというのはとてもよくあるご要望です。共有ファイルシステムは複数アプリケーションが同一のデータにアクセスできるようにしてくれます。また、たとえば複数ユーザーが同時に同一の情報にアクセスする、といったことも可能になります。オンプレミスでは、複数コネクションをサポートするNASやSANデバイスがあれば共有ファイルシステムを使うことができますが、クラウドではどうしたらいいのでしょうか?</div>
<div class="adwcsengine" data-adgroupid="NONE PROVIDED" data-id="NONE PROVIDED" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
</div>
<br />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
iSCSI、NFS、SMBやDRBDといったテクノロジーを用いることで、ブロックデバイスをふたつあるいはそれ以上のクラウドインスタンスで共有することができます。こうしたサービスで複数ユーザーがRead/Writeオペレーションを同時に行うことができるようにするには、Oracle Cluster File System Version 2(OCFS2)やGlusterFSといったクラスターファイルシステムサービスをセットアップする前にいくつか追加の設定をしておくことが必要になります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Oracle Cloud Infrastructure Block Volumeに新たに追加された<a href="https://blogs.oracle.com/cloud-infrastructure/announcing-multiple-instance-attachment-of-shareable-readwrite-block-volumes" name="cta=Internal Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">複数インスタンスアタッチの共有ボリュームオプション</a>では、こうした共有サービスのセットアップは必要ありません。このオプションを用いると単一のブロックボリュームを複数のコンピュートインスタンスにアタッチでき、それらのインスタンスから同一のデータに並列でRead/Writeアクセスをできるようになります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ブロックボリュームをすべてのインスタンスにアタッチしたら、次のステップはクラスターアウェアな(共有)ファイルシステムを使うことです。このポストではOCSF2を新しい複数インスタンスアタッチのオプションで用いる手順を説明していきます。</div>
<h2 style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">アーキテクチャ</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以下の図で示しているのが、複数インスタンスにアタッチして共有されたRead/Writeのブロックボリュームのアーキテクチャです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="Diagram that shows the architecture for attaching a sharable, read/write block volume to multiple instances." src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f9aa1d90-04bc-452f-92e2-091a193c304b/Image/babb5a060ea0791395ab43f09db1ab16/screen_shot_2018_03_16_at_5_18_30_pm.png" style="-webkit-font-smoothing: antialiased; border: 1px solid; height: 506px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 900px;" /></div>
<h2 style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">なんでOCFS2?</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
OCFS2はクラスター内でストレージのパフォーマンスおよび可用性を向上するために使用することを想定された、汎用用途の共有ディスク・ファイルシステムです。OCFS2はローカルファイルシステム・セマンティクスを提供しているため、ほとんどすべてのアプリケーションで使うことができます。クラスターアウェアなアプリケーションでは、複数クラスターノードからのキャッシュ・コヒーレントなパラレルI/Oを使用してクラスター内のアクティビティを調整することができます。あるいは、あるノードがダウンしたときに、アベイラブル・ファイルシステム機能を使って別のノードにフェイルオーバすることもできます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
OCFS2にはエンタープライズレベルの処理環境でのデプロイメントに適した、多くの機能が備わっています:</div>
<ul style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">順序付けされたWrite-Backデータジャーナルログにより、電源障害やシステムクラッシュなどの障害時にファイルシステムの整合性を保護</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">512 byteから4KBまでのブロックサイズに対応し、ファイルシステムのクラスターサイズは4KBから1MBに対応。クラスターサイズが4KBのときにサポートされる最大ボリュームサイズは16TB。クラスターサイズが1MBのときには理論上はボリュームサイズは4PBが可能ですが、テストされていません。</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">非常に大きなファイルの効率的な格納のためのExtent-basedアロケーション</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">疎なファイル、インラインデータ、未書き込み領域、ホールパンチング、reflink、アロケーション予約といった高性能、高効率なストレージのためのアロケーション最適化のサポート</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">非常に多数のオブジェクトが格納されていたとしてもディレクトリに効率的にアクセス可能にするためのディレクトリ・インデックシング</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">破損したinodeとディレクトリを検知するためのメタデータ・チェックサム</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">通常ファイル、ディレクトリ、シンボリックリンクなどのファイルシステムオブジェクトに数の制限なしにname/valueペアを付与するための拡張アトリビュート</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">トラディショナルなファイルーアクセスパーミッションモデルに加え、POSIX ACLおよびSELinuxへの拡張されたセキュリティサポート</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">ユーザーおよびグループQuotaのサポート</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">32bitと64bit、リトルエンディアン(x86,x86_64,ia64)とビッグエンディアン(ppc64)アーキテクチャの異種混合ノードから成るクラスターのサポート</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">クラスターノードからの並列アクセスを管理する分散ロックマネージャ(DLM)を備えた容易に設定できるin-kernelのクラスタースタック(O2CB)</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">バッファ、ダイレクト、非同期、スプライスおよびmemory-mapped I/Oのサポート</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">ext3ファイルシステムと同様のパラメータを用いるツールセット</li>
</ul>
<h2 style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">はじめてみよう</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
前述のアーキテクチャのために、大枠では以下の設定ステップが必要になります:</div>
<ol style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Oracle Cloud Infrastructure Block Volumeを複数インスタンスにアタッチ</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">OCFS2/O2CBクラスターノードをセットアップ</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">OCFS2ファイルシステムとマウントポイントの作成</li>
</ol>
<h3 style="color: #100f0e; font-family: "oracle sans" , , "blinkmacsystemfont" , "segoe ui" , "helvetica neue" , sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">ポート</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
設定作業を開始する前に、利用するVirtual Cloud Network(VCN)のセキュリティリストの7777番と3260番のポートを開放しておく必要があります。Oracle Cloud Infrastructureのコンソールで、VCNセキュリティリストを編集して以下のステップのうち<b style="text-decoration-line: underline;"><u>いずれかひとつ</u></b>を実行してください。</div>
<ul style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
インターナルサブネットCIDR(172.0.0.0/16 - 非パブリックネットワーク)のすべてのプロトコルをオープン:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">Source: 172.0.0.0/16
IP Protocol: All Protocols
Allows: all traffic for all ports</code></pre>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
必要なポートだけをオープン。7777と3260:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">Source: 172.0.0.0/16
IP Protocol: TCP
Source Port Range: All
Destination Port Range: 7777
Allows: TCP traffic for ports: 7777</code></pre>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">Source: 172.0.0.0/16
IP Protocol: TCP
Source Port Range: All
Destination Port Range: 3260
Allows: TCP traffic for ports: 3260</code></pre>
</li>
</ul>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<b>注意:</b>ポート7777と3260はローカルOSファイアウォールでもオープンしておく必要があります。Oracle Linx 7.xでの必要なコマンドは以下の通りです。別のOSを利用している場合はドキュメントを参照して実施してください。</div>
<ul style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="font-family: monospace; list-style: none; margin: 0px; padding: 0px;">sudo firewall-cmd --zone=public --permanent --add-port=7777/tcp</span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="font-family: monospace; list-style: none; margin: 0px; padding: 0px;">sudo firewall-cmd --zone=public --permanent --add-port=3260/tcp</span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="font-family: monospace; list-style: none; margin: 0px; padding: 0px;">sudo firewall-cmd --complete-reload</span></li>
</ul>
<h3 style="color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">DNS</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
さらに、DNSが適切に動作していること、当該コンピュートインスタンスがテナンシーのAvailability Domainをまたいで通信できていることを確認しください。以下は<span style="font-family: monospace; list-style: none; margin: 0px; padding: 0px;">/etc/resolv.conf</span> ファイルの例です。</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #100f0e; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 669.05px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 669.05px;">$ cat /etc/resolv.conf
; generated by /usr/sbin/dhclient-script
search baremetal.oraclevcn.com publicsubnetad1.baremetal.oraclevcn.com publicsubnetad2.baremetal.oraclevcn.com publicsubnetad3.baremetal.oraclevcn.com
nameserver 169.254.169.254</code></pre>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: monospace; list-style: none; margin: 0px; padding: 0px;">resolv.conf</span> ファイルの中にAvailability Domain DNSエントリすべてが記載されている必要があります。</div>
<h3 style="color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">環境</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
この環境には以下のコンピュートインスタンスがあります:</div>
<table border="1" cellpadding="1" cellspacing="1" style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; width: 1000px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;">Role</span></td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;">Instance</span></td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;">IP Address</span></td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;">OS</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">OCFS2 Node1</td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">node1.publicsubnetad1.baremetal.oraclevcn.com</td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">172.0.0.41</td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">Oracle Linux 7.x x86_64</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">OCFS2 Node2</td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">node2.publicsubnetad2.baremetal.oraclevcn.com</td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">172.0.1.42</td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">Oracle Linux 7.x x86_64</td></tr>
</tbody></table>
<h1 class="selectionShareable" style="color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small; font-weight: 400;"><br style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;" /></span></h1>
<h2>
<span style="font-size: small;">OCFS2の構成</span></h2>
<h3 style="color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Cluster Stackの設定ファイルの作成</span></h3>
<ol style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
必要なOCFS2パッケージのインストール:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">$ sudo yum install ocfs2-tools-devel ocfs2-tools -y</code></pre>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: monospace; list-style: none; margin: 0px; padding: 0px;">o2cb</span> コマンドまたはテキストエディタで設定ファイルを作成します。ここでは以下のコマンドでクラスター定義を作成しましょう。このコマンドは <span style="font-family: monospace; list-style: none; margin: 0px; padding: 0px;">/etc/ocfs2/cluster.conf</span> のクラスター設定ファイルを新たに作成します。</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">$ sudo o2cb add-cluster ociocfs2</code></pre>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
それぞれのノードについて、以下のコマンドでノードを定義します:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">$ sudo o2cb add-node ociocfs2 node1 --ip 172.0.0.41
$ sudo o2cb add-node ociocfs2 node2 --ip 172.0.1.42</code></pre>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<b>注意:</b>ノード名は/etc/sysconfig/networkで設定されるシステムのHOSTNAMEと同一の値である必要があります。また、IPアドレスはクラスター内でのプライベート通信でそのノードが使うものになります。/etc/ocfs2/cluster.confのクラスター設定ファイルをコピーし、クラスター内のそれぞれのノードに配置しましょう。なお、クラスター設定ファイルに行った更新は、クラスタースタックの再起動まで反映されません。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以下の/etc/ocfs2/cluster.confの設定ファイルでは、2つのノードからなるociocfs2という名前のクラスターを、ローカルハートビート付きで定義しています。このブログポスト内で使っている設定はこれです。</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">$ sudo cat /etc/ocfs2/cluster.conf
cluster:
heartbeat_mode = local
node_count = 2
name = ociocfs2
node:
number = 0
cluster = ociocfs2
ip_port = 7777
ip_address = 172.0.0.41
name = node1
node:
number = 1
cluster = ociocfs2
ip_port = 7777
ip_address = 172.0.1.42
name = node2</code></pre>
</li>
</ol>
<h3 style="color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Cluster Stackの設定</span></h3>
<ol style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
クラスターの各ノードで以下のコマンドを実行します。オプションについては<a href="https://docs.oracle.com/cd/E52668_01/E54669/html/ol7-config-stack-ocfs2.html" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">ドキュメント</a>に記載があります。</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">$ sudo /sbin/o2cb.init configure
Configuring the O2CB driver.
This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot. The current values will be shown in brackets ('[]'). Hitting
<ENTER> without typing an answer will keep that current value. Ctrl-C
will abort.
Load O2CB driver on boot (y/n) [y]:
Cluster stack backing O2CB [o2cb]:
Cluster to start on boot (Enter "none" to clear) [ocfs2]: ociocfs2
Specify heartbeat dead threshold (>=7) [31]:
Specify network idle timeout in ms (>=5000) [30000]:
Specify network keepalive delay in ms (>=1000) [2000]:
Specify network reconnect delay in ms (>=2000) [2000]:
Writing O2CB configuration: OK
checking debugfs...
Setting cluster stack "o2cb": OK
Registering O2CB cluster "ociocfs2": OK
Setting O2CB cluster timeouts : OK
Starting global heartbeat for cluster "ociocfs2": OK</code></pre>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Cluster Stackの設定を確認するには、<span style="font-family: monospace; list-style: none; margin: 0px; padding: 0px;">/sbin/o2cb.init status</span> コマンドを実行します:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">$ sudo /sbin/o2cb.init status
Driver for "configfs": Loaded
Filesystem "configfs": Mounted
Stack glue driver: Loaded
Stack plugin "o2cb": Loaded
Driver for "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted
Checking O2CB cluster "ociocfs2": Online
Heartbeat dead threshold: 31
Network idle timeout: 30000
Network keepalive delay: 2000
Network reconnect delay: 2000
Heartbeat mode: Local
Checking O2CB heartbeat: Active
Debug file system at /sys/kernel/debug: mounted</code></pre>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
この例では、クラスターはオンラインになっており、ローカルハートビートモードを使用しています。ボリュームが設定されていない場合、O2CBハートビートはActiveではなくNot Activeと表示されます。</div>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
o2cbとocfs2のサービスを設定し、ネットワークが有効化されたあとに起動時に開始されるようにしておきます:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">$ sudo systemctl enable o2cb
$ sudo systemctl enable ocfs2</code></pre>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
これらの設定により、ノードはOCFS2ボリュームをシステム開始時に自動的にマウントできるようになります。</div>
</li>
</ol>
<h2 class="selectionShareable" style="color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">クラスターオペレーション用のカーネルの設定</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
クラスターの適正なオペレーションのために、以下の表に示すカーネル設定を行っておきます:</div>
<table border="1" cellpadding="1" cellspacing="1" style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; width: 1000px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;">Kernel Setting</span></td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;">Description</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">panic</td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
パニックが何秒間続いたらシステムが自動的に自身をリセットするかを定義する値</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
値が0の場合、システムは応答をやめ、トラブルシューティングのためにパニックの詳細な情報を収集することができる。これがデフォルトの値である。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
自動リセットを有効にするには非ゼロの値をセットする。メモリイメージ(vmcore)が必要な場合には、Kdumpがこのイメージを生成するのに十分な時間を与える。推奨値は30秒だが、大規模なシステムではより長い時間が必要。</div>
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">panic_on_oops</td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">kernel oopsが起きたときにシステムが必ずパニックするようにするかの定義。クラスターオペレーションに必要なカーネルスレッドがクラッシュした場合、システムは自身をリセットする必要がある。でなければ、別のノードにはあるノードが応答が遅い、あるいは応答できないことがわからないかもしれず、クラスターオペレーションが停止してしまう。</td></tr>
</tbody></table>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<br /></div>
<ol style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
各ノードで以下のコマンドを実行し、panicとpanic-on-oopsに推奨値をセットします:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">$ sudo sysctl kernel.panic=30
$ sudo sysctl kernel.panic_on_oops=1</code></pre>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: monospace; list-style: none; margin: 0px; padding: 0px;">/etc/sysctl.conf</span> ファイルに以下のエントリーを追加し、変更を再起動後も永続するようにする:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;"># Define panic and panic_on_oops for cluster operation
kernel.panic=30
kernel.panic_on_oops=1</code></pre>
</li>
</ol>
<h2 class="selectionShareable" style="color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Cluster Stackの起動と停止</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以下の表にはCluster stackに関するオペレーションを実行するためのコマンドを示しています:</div>
<table border="1" cellpadding="1" cellspacing="1" style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; width: 1000px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;">Command</span></td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;">Description</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">/sbin/o2cb.init status</td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">Check the status of the cluster stack.</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">/sbin/o2cb.init online</td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">Start the cluster stack.</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">/sbin/o2cb.init offline</td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">Stop the cluster stack.</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">/sbin/o2cb.init unload</td><td style="-webkit-font-smoothing: antialiased; line-height: 1.3; list-style: none; margin: 0px; padding: 0px;">Unload the cluster stack.</td></tr>
</tbody></table>
<h1 class="selectionShareable" style="color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;"><br style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;" /></span></h1>
<h2>
<span style="font-size: small;">ボリュームの作成とマウント</span></h2>
<h3 style="color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">OCFS2ボリュームの作成</span></h3>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: monospace; list-style: none; margin: 0px; padding: 0px;">mkfs.ocfs2</span> コマンドを使用してdevice.mkfs上にOCFS2ボリュームを作成します:</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #100f0e; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 669.05px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 669.05px;">$ sudo mkfs.ocfs2 -L "ocfs2" /dev/sdb
mkfs.ocfs2 1.8.6
Cluster stack: classic o2cb
Label: ocfs2
Features: sparse extended-slotmap backup-super unwritten inline-data strict-journal-super xattr indexed-dirs refcount discontig-bg
Block size: 4096 (12 bits)
Cluster size: 4096 (12 bits)
Volume size: 12455405158400 (3040870400 clusters) (3040870400 blocks)
Cluster groups: 94274 (tail covers 512 clusters, rest cover 32256 clusters)
Extent allocator size: 780140544 (186 groups)
Journal size: 268435456
Node slots: 16
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Writing backup superblock: 6 block(s)
Formatting Journals: done
Growing extent allocator: done
Formatting slot map: done
Formatting quota files: done
Writing lost+found: done
mkfs.ocfs2 successful</code></pre>
<h3 style="color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">OCFS2ボリュームのマウント</span></h3>
<ol style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以下の例で示されているように、システムが起動時にネットワーキングが開始されてからOCFS2をマントできるように、また、ネットワーキングが停止した際にはアンマウントするように、/etc/fstab内にnetdevオプションを指定してください。</div>
<pre style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; line-height: 1.3em; list-style: none; margin-bottom: 30px; overflow-wrap: break-word; padding: 10px 0px 10px 20px; white-space: pre-wrap !important; width: 611.45px;"><code style="-webkit-font-smoothing: antialiased; color: #252525; display: block; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: break-word; padding: 0px; width: 611.45px;">$ sudo mkdir /ocfs2
$ sudo vi /etc/fstab
#include the below line to mount your ocfs2 after a restart
/dev/sdb /ocfs2 ocfs2 _netdev,defaults 0 0 </code></pre>
</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: monospace; list-style: none; margin: 0px; padding: 0px;">mount -a</span> を実行してOCFS2パーティションをfstabのエントリーをベースにマウントします。</div>
</li>
</ol>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
おめでとうございます!クラスターファイルシステムはOracle Linx 7.xノード1とノード2の両方のサーバで/ocfs2でマウントされました!</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
クラスターが有効化されたアプリケーションでは、OCFS2ストレージを任意のネットワークアタッチされたストレージと同様に使うことができるようになりました。環境はよくよく考えて計画し、Availability DomainやOCFSなどの機能を活かしてOracle Cloud Infrastructure上に構築したソリューションの性能と可用性を向上していきましょう。</div>
</div>
</div>
</div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-26101181112739716242019-12-25T13:31:00.000+09:002019-12-25T13:31:41.973+09:00[API] 初めてのOracle Cloud API Gatewayの作成/Creating Your First API Gateway In The Oracle Cloud<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif;">原文はこちら</span></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://blogs.oracle.com/developers/creating-your-first-api-gateway-in-the-oracle-cloud">https://blogs.oracle.com/developers/creating-your-first-api-gateway-in-the-oracle-cloud</a></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;" />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
マイクロサービスとサーバレスは、これまでにも増して人気を得てきており、世界中のチームがこれらのパターンとアーキテクチャに非常に迅速に適応してきています。しかし、大規模にマイクロサービスとサーバレスを活用しようとする際にこうしたチームがまず直面するのが、フロントエンドとモバイルAPIのとても多くの、そして複雑なエンドポイントを管理しなければならないという課題です。そのため、多くのチームではバックエンドをシンプルにし、すべてのクライアントからの「シングルポイント・オブ・エントリー」にするために、API Gatewayを採用しています。API Gatewayはまた、アーキテクチャの中の個々のファンクションではなくゲートウェイのレベルで、レート制限やCORS、認証を簡単に実装できるようにしてくれます。</div>
</div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
このブログポストではOracle Cloudの最新サービスのひとつであるAPI Gatewayを概覧していきます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以下の順で進めていきます:</div>
<ul style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">"Hello World"サーバレスファンクションの作成とデプロイ</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">API Gatewayに適したサブネットの作成</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">ダイナミックグループの作成とAPI Gatewayに必要なポリシーの適用</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Gatewayの作成</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Gatewayへの仕様のデプロイ</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Gatewayのテスト</li>
</ul>
<h2 class="selectionShareable" id="create-fn" style="-webkit-font-smoothing: antialiased; background-color: white; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">"Hello World"サーバレスファンクションの作成とデプロイ</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以前にもOracle Functionsについてのブログを書いています→<a href="https://orablogs-jp.blogspot.com/2019/02/cloud-oracle-functionsoracle-functions.html">Oracle Functions:開発者のためのクイックスタートガイド</a>。<a href="https://docs.cloud.oracle.com/iaas/Content/Functions/Concepts/functionsoverview.htm" name="cta=External Link Click" style="background-color: transparent; color: #bc6c37; list-style: none; margin: 0px; padding: 0px;">ドキュメントはとてもお役立ちです</a>し、他にもOracleのホステッドサーバレスをどのように使うかについての<a href="https://www.oracle.com/cloud/cloud-native/functions/" name="cta=External Link Click" style="color: #bc6c37; list-style: none; margin: 0px; padding: 0px;">たくさんの情報があります</a>ので、ここではサーバレスのための環境をどのようにセットアップするかについての詳細には立ち入りません。あなたはOracle Functionsのことを知っているものとして進めていきますので、必要であればこれらのリンクを参照してくださいね。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ではシンプルなサーバレスアプリケーションとファンクションを作成し、そのファンクションをデプロイしてみましょう。このファンクションの内容は今回関係なくて、ただ後にGatewayのテストで使いたいだけです。なので、ファンクションはサンプルの"Hello World"のままにしておきます。ランタイムもここでは関係ないので、Oracle Functionsと<a href="https://fnproject.io/" name="cta=External Link Click" style="color: #bc6c37; list-style: none; margin: 0px; padding: 0px;">Fn Project</a>でサポートされているものならなんでもよいです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist99615543" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-fn-create-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-text " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-fn-create-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">$ fn create app gw-hello-world-app --annotation oracle.com/oci/subnetIds='["ocid1.subnet.oc1.phx..."]'</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-fn-create-sh-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Successfully created app: gw-hello-world-app</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-fn-create-sh-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-fn-create-sh-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">$ fn init --runtime node gw-hello-world-fn</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-fn-create-sh-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Creating function at: /gw-hello-world-fn</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-fn-create-sh-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Function boilerplate generated.</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-fn-create-sh-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">func.yaml created.</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-fn-create-sh-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-fn-create-sh-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">$ cd gw-hello-world-fn</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-fn-create-sh-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-fn-create-sh-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">$ fn deploy --app gw-hello-world-app </td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-fn-create-sh-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Deploying gw-hello-world-fn to app: gw-hello-world-app</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-fn-create-sh-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Bumped to version 0.0.3</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-fn-create-sh-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Building image phx.ocir.io/toddrsharp/faas/gw-hello-world-fn:0.0.3 .........</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-fn-create-sh-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Parts: [phx.ocir.io toddrsharp faas gw-hello-world-fn:0.0.3]</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="16" id="file-fn-create-sh-L16" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC16" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Pushing phx.ocir.io/toddrsharp/faas/gw-hello-world-fn:0.0.3 to docker registry...The push refers to repository [phx.ocir.io/toddrsharp/faas/gw-hello-world-fn]</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="17" id="file-fn-create-sh-L17" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC17" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">643fe44f12a4: Pushed</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="18" id="file-fn-create-sh-L18" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC18" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">b279f8214e6b: Pushed</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="19" id="file-fn-create-sh-L19" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC19" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">0adc398bfc34: Pushed</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="20" id="file-fn-create-sh-L20" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC20" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">0b3e54ee2e85: Pushed</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="21" id="file-fn-create-sh-L21" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC21" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">ad77849d4540: Pushed</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="22" id="file-fn-create-sh-L22" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC22" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">5bef08742407: Pushed</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="23" id="file-fn-create-sh-L23" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC23" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">0.0.3: digest: sha256:e16e74ce194d85a9658177f7637484aded9764e981e395dfcbcac2d018687cac size: 1571</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="24" id="file-fn-create-sh-L24" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC24" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Updating function gw-hello-world-fn using image phx.ocir.io/toddrsharp/faas/gw-hello-world-fn:0.0.3...</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="25" id="file-fn-create-sh-L25" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-create-sh-LC25" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Successfully created function: gw-hello-world-fn with phx.ocir.io/toddrsharp/faas/gw-hello-world-fn:0.0.3</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/aa3154b0cfb17d22d364f427cf8d7439/raw/070e6949349317897094e6508d30d664f9a4149f/fn-create-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/aa3154b0cfb17d22d364f427cf8d7439#file-fn-create-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">fn-create-sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
この時点でファンクションを <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">fn</code> CLIで呼び出しできます:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist99615538" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-fn-invoke-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-fn-invoke-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-invoke-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">$ fn invoke gw-hello-world-app gw-hello-world-fn</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-fn-invoke-sh-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-invoke-sh-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">{<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>message<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Hello World<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>}</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/fa7c0e3d11c98a6655b3d975d273d6f6/raw/a97c7d42332454d48d26394da214e76b0c83264f/fn-invoke.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/fa7c0e3d11c98a6655b3d975d273d6f6#file-fn-invoke-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">fn-invoke.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
しかし、HTTP(S)経由やOCI SDKを利用してファンクションを直接呼び出しするにはリクエストへの署名が必要です。ファンクションをインスペクトして呼び出しエンドポイントを取得してみましょう:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist99615530" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-fn-inspect-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-fn-inspect-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-fn-inspect-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">$ fn inspect gw-hello-world-app gw-hello-world-fn</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/e34c15f8c3382674e33d03d5351615e0/raw/eede7ada2aeeb93ec307df1a465e8a79f776b68f/fn-inspect.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/e34c15f8c3382674e33d03d5351615e0#file-fn-inspect-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">fn-inspect.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/aa5b62666706406504136106baffa8e5/fn_inspect.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="info selectionShareable" id="function-ocid" style="-webkit-font-smoothing: antialiased; background-color: #bde5f8; border-radius: 2px; border: 1px solid; color: #00529b; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 10px; margin-top: 10px; padding: 15px 10px;">
<b>注!</b> <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">fn inspect</code> コールから <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">id</code> をコピーしておきましょう。これが後で必要になるファンクションのOCIDです!</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
呼び出ししようすると <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">401 Unauthorized</code>で失敗します:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist99615528" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-curl-fn-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-curl-fn-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-curl-fn-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">$ curl -i -X GET https://[redacted].us-phoenix-1.functions.oci.oraclecloud.com/20181201/functions/ocid1.fnfunc.oc1.phx..../actions/invoke</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-curl-fn-sh-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-curl-fn-sh-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">HTTP/1.1 401 Unauthorized</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-curl-fn-sh-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-curl-fn-sh-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Date: Fri, 22 Nov 2019 14:24:33 GMT</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-curl-fn-sh-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-curl-fn-sh-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Content-Type: application/json</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-curl-fn-sh-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-curl-fn-sh-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Content-Length: 57</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-curl-fn-sh-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-curl-fn-sh-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Connection: keep-alive</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-curl-fn-sh-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-curl-fn-sh-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Opc-Request-Id: /01DT9R03K21BT1A2RZJ0005QSH/01DT9R03K21BT1A2RZJ0005QSJ</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-curl-fn-sh-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-curl-fn-sh-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Www-Authenticate: Signature headers=<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>date (request-target) host<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-curl-fn-sh-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-curl-fn-sh-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-curl-fn-sh-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-curl-fn-sh-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">{<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>code<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>NotAuthenticated<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>message<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Not authenticated<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>}</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/47f41bc5299ecbef4b932f0d2b0e9ff9/raw/14d30c7ca6f9c831f89668e9d41659fc74890397/curl-fn.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/47f41bc5299ecbef4b932f0d2b0e9ff9#file-curl-fn-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">curl-fn.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
But once we put our serverless function behind our gateway we can invoke it via HTTPS. Let's move on!<br />
しかし、Gatewayのうしろにサーバレスファンクションを配置することによって、HTTPS経由で呼び出しができるようになります!やってみましょう!</div>
<h2 class="selectionShareable" id="create-subnet" style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">API Gatewayに適したサブネットの作成</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
API Gateway用にHTTPSトラフィックのためのイングレスルールを設定したリージョナルサブネットが必要になります。ここでゃ既存のVCNの中にこのサブネットを作成していきましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/fefb5f4cb7cbd2f4ee621005e2d3dd53/gw_create_subnet_1.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/d66bed495a419e7b0ee1f798fcc299f1/gw_create_subnet_2.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
選んだセキュリティリストにポート443へのイングレスルールを追加します:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/16b8338f4282e87022e3e1be0ac1389f/gw_ingress_rule.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
完了です。続いてもセキュリティについて…</div>
<h2 class="selectionShareable" id="identity" style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">ダイナミックグループの作成とAPI Gatewayに必要なポリシーの適用</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
API Gatewayではテナンシー内でのアクセス制御にダイナミックグループを使用します。なので、新しくダイナミックグループを作成していくつかのポリシーを設定する必要があります。Gatewayを作成するコンパートメントのOCIDが必要になるので、Identity -> Compartmentsから使うコンパートメントのOCIDをコピーしてください。次に、新規ダイナミックグループを以下の定義(コンパートメントOCIDは適切なものに置き換えて)で作成しましょう:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/56116e7f2bebc40be41af52b2a8576a1/api_gw_dg.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
さて、あなたのテナンシーと新しく作成したダイナミックグループに対応するポリシーを作成します。グループ名とコンパートメント名はご自身のものに置き換えてください:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist99615813" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-api-gw-tenancy-statements-1" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-text " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-api-gw-tenancy-statements-1-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-api-gw-tenancy-statements-1-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">allow dynamic-group [your dynamic group] to use virtual-network-family in compartment [your compartment name]</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-api-gw-tenancy-statements-1-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-api-gw-tenancy-statements-1-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">allow dynamic-group [your dynamic group] to manage public-ips in compartment [your compartment name]</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-api-gw-tenancy-statements-1-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-api-gw-tenancy-statements-1-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">allow dynamic-group [your dynamic group] to use functions-family in compartment [your compartment name]</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/051d81c81c9591f2d0377a485be9be59/raw/3c017128ca87120574c6842c5d3f272ef55b73f4/api-gw-tenancy-statements-1" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/051d81c81c9591f2d0377a485be9be59#file-api-gw-tenancy-statements-1" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">api-gw-tenancy-statements-1</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ご参考まで、わたしのテナンシーでのステートメントは以下のようになりました:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist99615815" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-api-gw-tenancy-statements-2" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-text " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-api-gw-tenancy-statements-2-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-api-gw-tenancy-statements-2-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">allow dynamic-group api-gw-group to use virtual-network-family in compartment faas-compartment</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-api-gw-tenancy-statements-2-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-api-gw-tenancy-statements-2-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">allow dynamic-group api-gw-group to manage public-ips in compartment faas-compartment</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-api-gw-tenancy-statements-2-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 7.2px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-api-gw-tenancy-statements-2-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">allow dynamic-group api-gw-group to use functions-family in compartment faas-compartment</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/ead1d9c51a890ed5683c90ebb1567a46/raw/5cf547ae7cb5081a14ebcb458ca12dc79d6704bb/api-gw-tenancy-statements-2" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/ead1d9c51a890ed5683c90ebb1567a46#file-api-gw-tenancy-statements-2" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">api-gw-tenancy-statements-2</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
それではGatewayを作成しましょう!</div>
<h2 class="selectionShareable" id="create-gw" style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Gatewayの作成</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Gatewayを作成するには、まずサイドバーメニューから'Developer Services'の配下の'API Gateway'を選択します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/7e637619a59a27e1f0cabac626fc8e18/gw_sidebar.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
'Create Gateway'をクリックしてダイアログを埋めていきます。先程作成したリージョナルサブネットを選択することを忘れないでください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/58b4db82f145a03ceb105d92ff6a8bcf/create_api_gw.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Gatewayはまず'Creating'のステータスになるでしょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/c5006cdf35057f7a1a6e2c4f00e90ddc/gw_creating.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
数分くらいで、Gatewayは'Active'になります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/5737f0b9e4348cbd5cfba17cdfee1ef7/gw_created_active.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<h2 class="selectionShareable" id="deploy" style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Gatewayへの仕様のデプロイ</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
デプロイメントを作成する前に、エンドポイントを定義するためデプロイメント仕様ファイルをJSONフォーマットで記述する必要があります。前述のファンクションOCIDが手元にあることを確認してください。では、 <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">spec.json</code> というファイルをファンクションのルートに以下の内容で作成しましょう(ファンクションOCIDはご自身のものに置換してください):</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist99615992" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-spec-json" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-json " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-spec-json-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">{</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-spec-json-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>routes<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: [</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-spec-json-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">{</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-spec-json-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>path<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>/hello<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-spec-json-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>methods<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: [</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-spec-json-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>GET<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-spec-json-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">],</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-spec-json-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>backend<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-spec-json-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>type<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>ORACLE_FUNCTIONS_BACKEND<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-spec-json-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>functionId<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>: <span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>ocid1.fnfunc.oc1.phx...<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-spec-json-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-spec-json-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-spec-json-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">]</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-spec-json-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-spec-json-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/44e9504011f27d0de86092b480792b28/raw/a2e3bcb47c7d61137c637e2810172c1af0f86a51/spec.json" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/44e9504011f27d0de86092b480792b28#file-spec-json" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">spec.json</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="info selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: #bde5f8; border-radius: 2px; border: 1px solid; color: #00529b; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 10px; margin-top: 10px; padding: 15px 10px;">
このブログポストはLimited Availability期間のやり方で説明しているので手で作成したJSONでエンドポイントを定義する必要がありますが、GA後にはコンソールUIからかんたんに定義することができるようになります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
次に、Gateway詳細ページのサイドバーから'Deployments'をクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/7a10e0e10429a317cd41f3876048aeb4/gw_sidebar_menu.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
そして'Deploy API'をクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/b4b741727ee8ad409e3486e3f06ad552/deploy_api_btn.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
デプロイメントに名前をつけて、作成した <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">spec.json</code> を選択してパスのプレフィックスを入力します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/0e7b7487d4d4d5836795c712bd9f8d44/gw_deployment_dialog.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
'Deploy'をクリックしてちょっと待てばデプロイメントは完了です。</div>
<h2 class="selectionShareable" id="test" style="background-color: white; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Gatewayのテスト</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Gateway詳細のページで、エンドポイントを見てみましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/dd4bdc8b33baeaf4d4941a072718609a/gw_endpoint.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ファンクションをテストするため、このエンドポイントをコピーしたものに <code class="code-inline" style="background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre; width: 100%;">spec.json</code> で定義したパスを追加して、実行してみましょう!</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist99616131" style="-webkit-font-smoothing: antialiased; background-color: white; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-invoke-api-endpoint-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-invoke-api-endpoint-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;">$ curl -i -X GET https://[redacted].apigateway.us-phoenix-1.oci.customer-oci.com/v1/hello</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-invoke-api-endpoint-sh-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">HTTP/1.1 200 OK</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-invoke-api-endpoint-sh-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Date: Fri, 22 Nov 2019 15:04:11 GMT</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-invoke-api-endpoint-sh-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Content-Type: application/json</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-invoke-api-endpoint-sh-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Connection: keep-alive</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-invoke-api-endpoint-sh-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Content-Length: 25</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-invoke-api-endpoint-sh-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Server: Oracle API Gateway</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-invoke-api-endpoint-sh-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Strict-Transport-Security: max-age=31536000</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-invoke-api-endpoint-sh-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">X-XSS-Protection: 1<span class="pl-k" style="color: #d73a49; list-style: none; margin: 0px; padding: 0px;">;</span> mode=block</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-invoke-api-endpoint-sh-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">X-Frame-Options: sameorigin</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-invoke-api-endpoint-sh-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">X-Content-Type-Options: nosniff</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-invoke-api-endpoint-sh-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">opc-request-id: /429E9723BB6BED8DB8D237876894DDF6/3E4A5D8760D59242A98AB8A91E2B0107</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-invoke-api-endpoint-sh-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-invoke-api-endpoint-sh-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-invoke-api-endpoint-sh-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">{<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>message<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>:<span class="pl-s" style="color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Hello World<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>}</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/e1cfe38ac37e02bd3091a4652ff4e695/raw/b3fca4f9ba64982673540f079bfefad2151fa789/invoke-api-endpoint.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/e1cfe38ac37e02bd3091a4652ff4e695#file-invoke-api-endpoint-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">invoke-api-endpoint.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
これはAPI Gatewayを使ってできることのほんのさわりです。デプロイメント仕様を拡張して他のファンクションや(Oracle Cloud上や外部の)HTTPエンドポイントをカバーしたり、レート制限や認証などを行うこともできます。</div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-33461080482243138912019-12-02T15:48:00.002+09:002019-12-02T15:49:54.378+09:00[Machine Learning] AI神話5選とその現実/5 Artificial Intelligence Myths: The Realities Will Make You Think Twice<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif;">原文はこちら</span></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://blogs.oracle.com/ai/5-artificial-intelligence-myths">https://blogs.oracle.com/ai/5-artificial-intelligence-myths</a></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;" />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" class="cb11splash" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/1009b64c-2cdd-4a43-b98a-00ba3622965e/File/7d0e0c68a307cbe536e0de0277e8b338/gettyimages_689438716_reduced.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; color: #100f0e; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="cb11v2-posturltracking" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">エンタープライズでのAI(人工知能)利用という話は、ハイプ・サイクルのまさしく頂点に位置づけられています。</span><span style="font-family: "calibri" , sans-serif;">AIが</span><span style="font-family: "calibri" , sans-serif;">ここ数十年間でもっとも破壊的テクノロジーになるであろうことは真実です。しかし今日では、経営幹部たちから降りてくるものの多くは神話であるようです。</span></div>
<div class="adwcsengine" data-adgroupid="NONE PROVIDED" data-id="NONE PROVIDED" style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px;">
</div>
<div style="color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://www.gartner.com/smarterwithgartner/5-trends-appear-on-the-gartner-hype-cycle-for-emerging-technologies-2019/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank"><img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/1009b64c-2cdd-4a43-b98a-00ba3622965e/Image/085632663eee40dd302923475f43c417/ctmkt_741609_ctmkt_for_emerging_tech_hype_cycle_largertext_1_reduced.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: 570px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 600px;" /></a></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">ハイプ・サイクルが示しているとおりに、経営幹部たちの期待は増しに増しています。ここでは神話と現実を仕分けすることにしてみましょう。</span><a href="https://www.oracle.com/openworld/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #379ce6; font-family: Calibri, sans-serif; list-style: none; margin: 0px; padding: 0px;">Oracle Open World</a>でのClive Swanのプレゼンテーションをもとに、<span style="font-family: "calibri" , sans-serif;">以下にエンタープライズAI神話5選をまとめています:</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 26.6px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><b>神話その1:エンタープライズAIでは自前構築アプローチが必須である</b></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;"><b>現実:エンタープライズAIでは自前構築と外部調達の両方が必要。</b>あなたのビジネス上の要求がユニークなものであると信じたいものですよね、でもちょっと考えてみてください。そうした要求のうち、実際どの程度かは業界で共通したものじゃないですか?あなたは少数のお試しプロジェクトをDIYで始めることはできるかもしれませんが、でもAIの価値を引き出すために本当に重要なのは、あなたの企業全体でそれを活用するということです。一般的なビジネス上の課題についてはすぐに使えるAIソリューションを用いて対処しつつ、差別化により価値を生み出せるところに自社のデータ・チームの労力を集中させたほうがよい、ということに賢明な企業は気づいています。Oracleの</span><a href="https://www.oracle.com/artificial-intelligence/products.html" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #379ce6; font-family: Calibri, sans-serif; list-style: none; margin: 0px; padding: 0px;">構成済AIアプリケーション</a><span style="font-family: "calibri" , sans-serif;"> は、バックオフィス業務(財務やサプライチェーン)からカスタマーエクスペリエンス(セールスとマーケティング)、そして人材管理までカバーしています。</span></div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 24px 0px 8px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 24.5333px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">神話その2:AIを使うと魔法のような効果がもたらされる……いますぐに</span></span></span></span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 26.6px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><b>現実:AIは魔法ではない。</b>AIで結果を出すまでの道のりは険しく、また、長いものです。技術だけでは成功はできず、</span></span></span><span style="font-family: "calibri" , sans-serif;">バラバラなAIソリューションがとっ</span><span style="font-family: "calibri" , sans-serif;">散らかっている、という事態を避けるためには、戦略的なフレームワークと反復アプローチが必要になります。魔法のような結果を出すために</span><a href="https://www.forbes.com/sites/oracle/2019/10/02/best-way-to-realize-ai-benefits-dont-shoot-the-moon/#55843fe92089" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #379ce6; font-family: Calibri, sans-serif; list-style: none; margin: 0px; padding: 0px;">ムーンショットを狙いたくなる誘惑</a>がありますが、そうしたプロジェクトの多くは失望に終わることになります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/1009b64c-2cdd-4a43-b98a-00ba3622965e/Image/891a5e7816614cbbaee5a100a781c348/gettyimages_1129342100_reduced.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: 224px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 400px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 26.6px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><b>神話その3:エンタープライズAIで人が不要になる</b></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 26.6px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><b>現実:エンタープライズではAIと人が互いを必要とする。</b>ロボットによる支配は起こりません。AIが真価を発揮するのは、それが人間の能力を補強することにこそです。AIは単純作業から人々を開放し、もっと戦略的な活動を行うことができるようになります。それによって従業員はモチベーションが上がったり、生産的になったり、より会社に尽くしてくれるようになったりといった副次的効果もあるでしょう。また、エンタープライズAIは、データを与えてくれ、そのデータをうまく使いこなせるようにしてくれる人間が必要としています。AIは問題について最終的な結論を導き出してくるようなものではなく、むしろそれを人間が導き出すために必要な、多くの情報を踏まえた推奨をしてくれるものです。</span></span></span><a href="https://www.oracle.com/corporate/pressrelease/robots-at-work-101519.html" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #379ce6; font-family: Calibri, sans-serif; list-style: none; margin: 0px; padding: 0px;">最近の研究</a>では、64%のひとがマネージャーよりもロボットのほうをより信頼するという結果が示されています。しかし、わたしたちがAIによる自律的な意思決定を求めても、AIによる推奨が一定の信頼性のレベルに達しないような状況というのは必ず発生します。なので、AIソリューションは人間に結論を出すことを志向しているのです。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 24px 0px 8px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 24.5333px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">神話その4:データは多ければ多いほどよい</span></span></span></span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<b style="font-family: Calibri, sans-serif;">現実:エンタープライズAIはスマートなデータを必要とする。</b><span style="font-family: "calibri" , sans-serif;">この神話は至るところにまん延しています。なるほど、いかなるAIソリューションにとっても、データは燃料のようなものです。しかし、最も重要と成るのは、そのデータが高品質なもので、関連性が高く、最新のもので、エンリッチされていることです。統一エンタープライズデータモデルから始めるのはいいアイディアなのは、それがデータの完全性を確かにしているからであって、品質を保証しているわけではありません。データレイクは重要ですよね、でもそれ自体は完全性や品質上の問題の解決にはなっていません。つまり、あなたに必要なのは、高品質で包括的で最新のデータ、スマートなデータです。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">必要となるのは、AIアプリケーションと当該データの領域での専門知識です。</span><a href="https://www.oracle.com/applications/customer-experience/datafox/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #379ce6; font-family: Calibri, sans-serif; list-style: none; margin: 0px; padding: 0px;">Oracle DataFox</a>クラウドサービスに備わっているモダンなデータエンジンは、AIを活用してデータ収集だけでなく、データのエンリッチも自動化しています。自然言語処理(NLP)と機械学習、そして人間参加型(<span style="font-family: "calibri" , sans-serif;">human-in-the-loop)テクニックを組み合わせて使うことで、Webをスキャンし、信頼できるB2B企業データとシグナルを作成します。</span><br />
<h2>
<b style="font-family: calibri, sans-serif;"><span style="font-size: small;">神話その5:エンタープライズAIの成功のために必要となるのはデータとモデルだけ</span></b></h2>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<b style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; list-style: none; margin: 0px; padding: 0px;">現実:データとモデルは始まりにすぎず、スケーラブルなAIソリューションが必要となる</b></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">これまで、ほとんどのエンタープライズAIソリューションはデータサイエンティストによって手作りされたもので、煩雑なマニュアルでの構築や、それに続くマニュアルでのメンテナンスを必要とするものでした。問題あるかって?こうしたアプローチはスケールしないんですよ。Oracleの戦略はAIソリューションを工業化すること、例えば、従前高給取りのデータサイエンティストがマニュアルでやっていたテクニカルなメンテナンスタスクを</span><span style="font-family: "calibri" , sans-serif;">機械学習を用いて自動化するといったことです。このようなやり方で、数千のお客様が使うわれわれのエンタープライズ・スイートに、数百のAIモデルを展開することができています。</span></div>
<div style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0px 24px; padding: 0px; text-indent: -0.25in;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/1009b64c-2cdd-4a43-b98a-00ba3622965e/Image/a6bf805e1f751d1d73cfff2d5339baf0/oracle_ai_hype_reduced.png" style="-webkit-font-smoothing: antialiased; border: 0px; height: 400px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 714px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<br /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: "calibri" , sans-serif;">Oracleは、エンタープライズ企業は成長するために、もしかするとただ生き残るためにすら、AIを活用することが必須だと信じています。しかし、そのためには願望にもとづいて思考するのではなく、冷静なアプローチが求められます。わたしたちはいかなるエンタープライズ企業にとってもAIができるだけ使いやすく、またお求めやすくなるようにしていきたいと思っています。なので、わたしたちのすぐに使えるAIを活用したクラウドアプリケーションを使いながら、あなた自身のエンタープライズAIを構想していただけるようにしています。すぐに構築できるAIプラットフォームと、セキュリティパッチ、バックアップ、チューニングが自動化されたAutonomous Databaseによって、あなたのチームは価値を生むプロジェクトに集中できるというわけなんです。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 26.6px; list-style: none; margin: 0px; padding: 0px;"><span style="font-family: "calibri" , sans-serif; line-height: inherit; list-style: none; margin: 0px; padding: 0px;"><span class="MsoHyperlink" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="color: #404040;">Oracle AIについてもっと詳しく知りたければ、</span><a href="http://oracle.com/artificial-intelligence" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #379ce6; list-style: none; margin: 0px; padding: 0px; text-decoration-line: underline;">oracle.com/artificial-intelligence</a><span style="color: #404040;">を訪ねてみてくださいね。</span></span></span></span></span></span></div>
</div>
</div>
</div>
</div>
</div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-69298638435591996082019-11-26T11:34:00.002+09:002019-11-26T11:34:23.083+09:00[Kubernetes] Hashicorp ValutとOKEとの統合/Integrating Hashicorp Vault with OKE (Oracle Container Engine for Kubernetes)<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif;">原文はこちら</span></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://blogs.oracle.com/cloudnative/integrating-hashicorp-vault-with-oke-oracle-container-engine-for-kubernetes">https://blogs.oracle.com/cloudnative/integrating-hashicorp-vault-with-oke-oracle-container-engine-for-kubernetes</a></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;" />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ようこそ、ここではVaultとOracle Container Engine for Kubernetes(OKE)のインテグレーションのご紹介します。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">前書き</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
まずSecret管理のためにデザインされた包括的なツールであるHashicorp Vaultをご紹介さします。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
次に、Kubernetes Service Account Tokenを使ってVaultとの認証を円滑化するために使われるVault <a href="https://www.vaultproject.io/docs/auth/kubernetes.html" name="cta=External Link Click" rel="noopener" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Kubernetes Auth Method</a>の概要をご説明します。この認証のやり方はKubernetesネイティブのIdentityとアクセス管理を活用しつつ、VaultトークンのKubernetes Podへの導入を容易にしています。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
最後に、OKE上へのVaultのデプロイメントシナリオの概要をご説明します。そこではVaultがOKEにデプロイされており、さらにVault Kubernetes Auth Methodを使用してVaultがOKEクラスターのコントロールプレーンにインテグレーションされています。このデプロイメントシナリオは、ステップバイステップガイドおよび必要となる設定ファイルを含めて、この<a href="https://cloudnative.oracle.com/template.html#infrastructure/security/Vault/tutorial.md" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">作業マニュアル</a>に詳細が記載されています。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Oracle Cloud Infrastructure <a href="https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Container Engine for Kubernetes</a>(多くの場合「OKE」と省略されます)はフルマネージド、スケーラブルで高可用性をもったサービスで、みなさんのコンテナ化されたアプリケーションをクラウドにデプロイするために使えます。みなさんの開発チームがクラウドネイティブアプリケーションを高信頼にビルド、デプロイそして管理するためにOKEを使っていただけます。OKEが使っているKubernetesは、クラスター化されたホストにまたがったコンテナ化されたアプリケーションのデプロイとスケーリング、管理を自動化するオープンソースのシステムです。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Vault</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Secret管理はVaultの主要ユースケースのひとつです。ここでSecretというのは何かしら厳密にアクセスを制限したいもの、たとえばAPIキーやパスワード、証明書などです。VaultはこうしたSecretについて種類を問わず統一したインターフェースを提供し、そしてAPIドリヴンフレームワークによる緊密なアクセス制御やバージョン管理、詳細な監査ログなどの重要となる機能も提供しています。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
多くの組織で、認証情報をソースコードにハードコーディングしてしまっており、それらはいくつかの設定ファイルや設定管理ツールに散らばっていたり、平文のままバージョン管理ツールやWiki、共有ストレージに保存されてしまっています。Vaultはこうした認証情報を保持するための中心地を提供し、それらが暗号化され、アクセスが監査ログに記録され、資格をもったクライアントのみが見ることができることを確実にします。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ValutはSecret管理、データ保護、Identityベースのアクセス、コラボレーションとオペレーション、ガバナンス、そしてコンプライアンスについての広範な機能を提供しています。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
VaultはAcrive DirectoryやLDAP、Kubernetes、そしてクラウドプラットフォームなどの信頼済のIdentityソースに対して認証を行うことで、Secretや暗号鍵へのアクセスを緊密に制御することができます。Vaultにより、ユーザーやアプリケーションにSecretや鍵へのアクセス許可を行ううえでの、細かい粒度での認証が可能になります。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #100f0e; font-weight: 500; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Kubernetes Auth Method</span></h2>
<div class="selectionShareable" data-selectable-paragraph="" id="3544" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Vaultが用いられている場合、アクターにとって、Secretの格納/取り出しおよび暗号学的な操作に先立って認証の成功が必要となります。Vaultでの認証のコアはトークンです。これはつまり、Secretの利用者はまず有効なトークンを獲得する必要があるということです。Vaultの認証プロセスはクライアントのIdentity(Secretの利用者)を検証し、そしてこのIdentityに紐付いたトークンを生成します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
様々なプラットフォームで稼働するアプリケーションの要件を満たすため、Vaultはいくつかの<a href="https://www.vaultproject.io/docs/auth/index.html" name="cta=External Link Click" rel="noopener" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">認証メソッド</a>を提供しています。<a href="https://www.vaultproject.io/docs/auth/kubernetes.html" name="cta=External Link Click" rel="noopener" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Kubernetes Auth Method</a>はOKEのようなKubernetesベースのオーケストレーターとうまく組み合わせることができます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Kubernetes Auth Methodは、Kubernetes Service Account Tokenを用いてVaultと組み合わせての認証を実現します。このPodのサービスアカウントのためのトークンは、Podが初期化される際にPodの中の`/var/run/secrets/kubernetes.io/serviceaccount/token`に自動的にマウントされます。Kubernetes Auth Methodを用いる場合にVaultに認証用に送られるのはこのトークンです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Kubernetes <a href="https://docs.openshift.org/latest/rest_api/apis-authentication.k8s.io/v1.TokenReview.html" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">TokenReview</a> APIに対してのアクセス権限をもったサービスアカウントとVaultとの設定をしておきます。Vaultは、SecretにアクセスするためにVaultに接続を試みているPodが提示してきたサービスアカウントトークンを検証するために、Kubernetes API Serverに対して認証済のコールを行うためにこのサービスアカウントを利用します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/c55ac495-6bbf-45b8-b9ae-878cb013c8e9/Image/161067a2bdc39d2bbb5a42809b540a04/vault_deployment_scenario_v0_01.png" style="-webkit-font-smoothing: antialiased; border: 0px; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
このVaultデプロイメントシナリオの図は前述の<a href="https://cloudnative.oracle.com/template.html#infrastructure/security/Vault/tutorial.md" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">作業マニュアル</a>の中で実装されるソリューションアーキテクチャを説明しています。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
オレンジで表されている2番のフローは、Kubernetes Auth Methodを用いて実装される認証フローの概要を示しています。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
成功裏に完了すると、Vaultは当該アプリケーションに予め設定されたポリシーをつけてトークンを返します。その後のStep 3以降では、このアプリケーションはこのトークンを使ってVaultのKey/Value SecretエンジンからSecretを取得することができます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="color: #100f0e;"><b>デプロイメントシナリオ</b></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以下は前述のデプロイメントシナリオでプロビジョニングされるコンポーネントの概覧です:</div>
<ul style="-webkit-font-smoothing: antialiased; color: #100f0e; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">OKE Kubernetes cluster<ul style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">etcdおよびVault Kubernetesオペレーター</li>
<li style="-webkit-font-smoothing: antialiased; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Vaultクラスター<ul style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Kubernetes Auth Methodを使うよう設定されたVault</li>
<li style="-webkit-font-smoothing: antialiased; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Vault Key/Value (KV)ストア `secret/testapp`</li>
<li style="-webkit-font-smoothing: antialiased; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">デフォルトネームスペース内のKubernetesサービスアカウント'testapp'に紐付けられたVaultロール'testapp'</li>
<li style="-webkit-font-smoothing: antialiased; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">'testapp'ロールに紐付けられたVaultポリシー'testapp-kv-crud' (`secret/testapp` KVストアへのCRUDアクセスを提供)</li>
</ul>
</li>
<li style="-webkit-font-smoothing: antialiased; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Vaultクラスターのための永続ストレージとして機能するetcdクラスター</li>
<li style="-webkit-font-smoothing: antialiased; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">`testapp`サービスアカウントを使用し、(Kubernetes認証を通じて)Vaultと認証されるテストアプリケーション</li>
<li style="-webkit-font-smoothing: antialiased; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Vaultの`secret/testapp` KVストアでSecretを作成/取得するテストアプリケーション</li>
</ul>
</li>
</ul>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
etcd、およびVaultのクラスターはそれぞれのオペレーターによって作成されます。VaultオペレーターはVaultクラスターをKubernetes上にデプロイし、管理します。Vaultオペレーターによって作成されたVaultインスタンスは高い可用性を持ち、自動フェイルオーバとアップグレードをサポートしています。それぞれのVaultクラスターのために、Vaultオペレーターは永続ストレージバックエンドとしてetcdクラスターも作成します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
以下は、<a href="https://cloudnative.oracle.com/template.html#infrastructure/security/Vault/tutorial.md" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">作業マニュアル</a>で説明されている、VaultのインストールおよびOKEとのインテグレーションの手順の概観です:</div>
<ol style="-webkit-font-smoothing: antialiased; color: #100f0e; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Vault & etcdオペレーターのデプロイ</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Vault & etcdクラスターのデプロイ</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Vault Kubernetes認証の設定</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">Vault Key/Value (KV)ストア、およびテストアプリケーションに紐付けられたポリシーの作成</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">テストアプリケーションのデプロイと、Kubernetes認証を使ったVaultへの認証</li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 20px; line-height: 1.5em; list-style: decimal; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;">KVストアへのSecretの作成、およびストアからの読み取り</li>
</ol>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
この作業マニュアルは、OKEでの高可用デプロイメントについて素早く学び、活用するための素晴らしい方法です。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #100f0e; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">まとめ</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Kubenetes Auth Methodを使ったVaultの認証とKubernetesのインテグレーションにより、Kubernetes Service Account Tokenを使ったVaultクライアントの認証プロセスをシンプルにすることができます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
一方で、カスタムアプリケーションロジックを書くことなく標準的なやりかたでトークンのライフサイクルを管理するためには、いくつかの課題が残っています。Vaultのチームはこれらの課題を解決するため、いくつかの機能を検討しています。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
提案されている機構のひとつには、周期的に同期プロセスを実行することによってVaultとKubernetes Secrets機構をインテグレーションするものがあります。他にも、Container Storage Interfaceプラグインによって稼働中のPodにSecretをインジェクトするといったものもあります。さらに、サイドカーコンテナ経由でPodにVault Secretをインジェクトする、というものも。それぞれ、複雑性の解消のためのアプローチとして非常に興味深いです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Kubernetesとクラウドネイティブの領域はとても動きが速いです。ソリューション、チュートリアル、ベストプラクティスなどを共有し、インスピレーションを得たり、ハンズオンを行ったり、産業のポテンシャルを解放することを支援しながら、この領域の進歩を観察していきたいと思います。</div>
</div>
</div>
</div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-63013786580281819942019-11-25T16:39:00.000+09:002019-11-25T16:39:24.159+09:00[Machine Learning] Oracle CloudでAutoMLを使って機械学習/Hide Machine Learning Complexity Using AutoML in Oracle Cloud<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;">原文はこちら</span></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://blogs.oracle.com/ai/hide-machine-learning-complexity-using-automl-in-oracle-cloud">https://blogs.oracle.com/ai/hide-machine-learning-complexity-using-automl-in-oracle-cloud</a></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;" />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" class="cb11splash" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/042f64dd-b9ab-4fa8-b175-cfd2c429f720/File/9140e75bcc8da09cd1a2a959119abc90/javier_de_la_torre_autokeras_featured.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; color: #100f0e; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<br /><div class="cb11v2-posturltracking" style="-webkit-font-smoothing: antialiased; color: #100f0e; list-style: none; margin: 0px; padding: 0px;">
<div class="MsoTitle selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
データは新たな石油であり、データサイエンティストは未来の職種です。わたしたち誰もがこの職種について聞いたことがありますが、企業にとってはこの職種を雇うのはいまだ簡単ではないようです。十分な経験を持ち合わせていないわたしたちが機械学習を始めるにはどのようにしたらいいでしょうか?</div>
<h2 style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 16px 0px 0.6em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 22.8267px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: "Calibri Light", sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; color: #2f5496; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 28.5333px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">機械学習におけるチャレンジ</span></span></span></span></span></span></span></span></span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">機械学習のユースケースのうち、画像分類や価格予想、異常検知などのいくつかのものはとてもシンプルです。しかしこうしたユースケースについても、ニューロンネットワークの知識を持った専門のデータサイエンティストに、結果の改善とチューニングの手助けをしてもらう必要があります。機械学習の主な</span></span></span></span></span></span><a href="https://www.automl.org/automl/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">タスク</a>として、以下が必要となります:</div>
<ul style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 20.6867px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px;">データの前処理とクリーニング</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 20.6867px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px;">適切な機能の選定と構成</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 20.6867px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px;">適切なモデル・ファミリーの選定</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 20.6867px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px;">モデルのハイパーパラメータの最適化</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 20.6867px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px;">機械学習モデルの後処理</span></span></span></span></span></span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 15.6933px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 20.6867px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px;">得られた結果の批判的分析</span></span></span></span></span></span></li>
</ul>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">Depending on the business problem, it can take up to hundreds of experiments until we reach the solution. This is for experienced data scientists -- imagine for a non-expert!</span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">ビジネス上の課題によっては、解決にたどり着くまでに何百もの実験が必要になります。ここで経験豊富なデータサイエンティストの出番というわけです。非ー専門家には難しすぎます!</span></span></span></span></span></span> </div>
<h2 style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 16px 0px 0.6em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 22.8267px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: "Calibri Light", sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; color: #2f5496; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 28.5333px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">AutoMLとは?</span></span></span></span></span></span></span></span></span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: Arial, sans-serif;">AutoMLというアイディアとは、ニューロンネットワークの改善に機械学習を使うということです。ユーザーによって指定されたタイムフレームの中で、学習とチューニングを自動的に行うのがAutoMLの役目となります。このとき複雑さはすべてシンプルなAPIやフレームワークの裏に隠蔽され、機械学習モデルをわずか数行のコードで作成できるようにしてくれるわけです。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: Arial, sans-serif;">エンタープライズ企業にとってAutoMLは以下をはじめ多くの利点をもたらします:</span></div>
<ul style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px 0px 0.75em; padding: 0px;">
<li style="-webkit-font-smoothing: antialiased; color: black; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 0.1em 2.5em; padding: 0px; position: relative;"><span style="font-family: Arial, sans-serif;">迅速なマーケット投入…あなたのデータサイエンティストはパラメータ調整やルーチン作業から解放され、課題に集中できるようになります</span></li>
<li style="-webkit-font-smoothing: antialiased; color: black; left: 0px; line-height: 1.5em; list-style: disc; margin: 0px 1.5em 11px 2.5em; padding: 0px; position: relative;"><span style="font-family: Arial, sans-serif;">誰でも機械学習を始められる…機械学習を始めるのに専門家になる必要はありません</span></li>
</ul>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">すごいですね!このAutoMLの選択肢としてGoogleが提供するサービスが</span></span></span></span></span></span> ありますが、1時間あたり20ドル程度のコストがかかります!ならオープンソースコミュニティを検討してみませんか?</div>
<h2 style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 16px 0px 0.6em; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 22.8267px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: "Calibri Light", sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; color: #2f5496; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 28.5333px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px;"><span style="font-size: small;">Oracle CloudでAuto-Kerasを実行する</span></span></span></span></span></span></span></span></span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<a href="https://autokeras.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Auto-Keras</a>はオープンソースのpythonのツールで、Kerasをベースにしています。Texas A&M UniversityのData Labで開発されました。Auto-Kerasはあなたのディープラーニングモデルのための正しいアーキテクチャとハイパーパラメータを自動的にサーチします。インストールも実行も簡単で、成長中のコミュニティからは多くの例が提供されています。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">Auto-KerasをOracle Cloudでインストールして使ってみましょう!</span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: Arial, sans-serif;">どうしてOracle Cloudかって?多くの理由があります。テストや開発をしたい、あるいは商用稼働のための環境がほしい、そのどちらにもソリューションをご用意しています。またOracleは商用環境のためのGPUマシンも提供しています。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">OracleはFree Tierを提供しており、Autonomous DatabaseとComputeのリソースを時間制限なしで使えます!そうです、時間制限なしにです!</span></span></span></span></span></span><a href="https://www.oracle.com/cloud/free/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">ここ</a>で無料アカウントをゲットして始めましょう!</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">ここでの例では、手書きの数字データを収めたMNISTデータベースを使います。このデータベースは各桁についてラベルも含んでいます。目標は数字の認識です。KerasとAuto-Kerasを比べてみることもできますね。Kerasでは71行のコードが必要となります(</span></span></span></span></span></span><a href="https://github.com/keras-team/keras/blob/master/examples/mnist_cnn.py" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">ここ</a>でチェックできます)。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: Arial, sans-serif;">ではこれをAuto-Kerasで実行してみましょう。ここではFree TierのシンプルなComputeマシンを使ってこの例を実行していきます。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: Arial, sans-serif;">Auto-Kerasはまだプレリリースバージョンであることには留意しましょうね。正式バージョンがすぐにリリースされるように願っておきましょう。</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">まず、前提となるpython 3.6をインストールする必要があります:</span></span></span></span></span></span> </div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">$ yum install python36</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="font-family: Calibri, sans-serif;">Auto-Kerasのインストールはすごく簡単で、以下を実行するだけです:</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">$ pip3 install autokeras</span></span></span></span></span></span></span> </div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
準備は万端となったので、例の実行のために以下のコードを実行しましょう: </div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">from tensorflow.keras.datasets import mnist</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">from autokeras.image.image_supervised import ImageClassifier</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<br /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">(x_train, y_train), (x_test, y_test) = mnist.load_data()</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">x_train = x_train.reshape(x_train.shape + (1,))</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">x_test = x_test.reshape(x_test.shape + (1,))</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">clf = ImageClassifier(verbose=True, augment=False)</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">clf.fit(x_train, y_train, time_limit=1 * 60 * 60)</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">y = clf.evaluate(x_test, y_test)</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">print(y * 100)</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<br /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: Arial, sans-serif;">モデルの比較とチューニングが行われ、過程と結果とが表示されます:</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<br /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">Saving model.</span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">+--------------------------------------------------------------------------+</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">| Model ID | Loss | Metric Value |</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">+--------------------------------------------------------------------------+</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">| 0 | 0.14653808772563934 | 0.9875999999999999 |</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">+--------------------------------------------------------------------------+</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<br /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<br /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">+----------------------------------------------+</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">| Training model 1 |</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">+----------------------------------------------+</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">Epoch-1, Current Metric - 0: 13%|███</span></span></span><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: "MS Gothic"; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">▋</span></span></span><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"> | 60/465 [00:55<06:12, 1.09 batch/s]</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">Epoch-2, Current Metric - 0.98: 75%|██████████████████</span></span></span><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: "MS Gothic"; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">▊</span></span></span><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"> | 350/465 [05:49<01:57, 1.03s/ batch]</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">Epoch-4, Current Metric - 0.992: 52%|████████████</span></span></span><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: "MS Gothic"; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">▍</span></span></span><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"> | 240/465 [04:08<03:58, 1.06s/ batch]</span></span></span></span></span></span></span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<br /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="font-family: Arial, sans-serif;">最終的に、98.65の精度を得ることができました。これで終わりです!</span></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #404040; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 11px; padding: 0px;">
<span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Calibri, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; line-height: 23.6445px; list-style: none; margin: 0px; padding: 0px;"><span style="-webkit-font-smoothing: antialiased; font-family: Arial, sans-serif; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;">AIおよび機械学習についてもっと知りたい方は、</span></span></span></span></span></span><a href="https://www.oracle.com/artificial-intelligence/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; font-family: Arial, sans-serif; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;" target="_blank">Oracle AI</a>のページも見てみてください。</div>
</div>
</div>
</div>
</div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0tag:blogger.com,1999:blog-1634016925493970360.post-22556850436621415972019-11-03T15:31:00.000+09:002019-11-03T15:31:29.046+09:00[Streaming] KafkaワークロードのOracle Cloud Streamingへの移行/Migrate Your Kafka Workloads To Oracle Cloud Streaming<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span style="color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;">原文はこちら</span></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<a href="https://blogs.oracle.com/developers/migrate-your-kafka-workloads-to-oracle-cloud-streaming">https://blogs.oracle.com/developers/migrate-your-kafka-workloads-to-oracle-cloud-streaming</a></div>
<div class="selectionShareable" style="background-color: white; color: #404040; font-family: arial, helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<hr style="background-color: white; color: #444444; font-family: arial, tahoma, helvetica, freesans, sans-serif;" />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: white; color: #404040; font-family: Arial, Helvetica, sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
あるホスティング環境から別の環境へのアプリケーションとワークロードの移行はともするとたいへんな道のりになります。過去15年のあいだ、わたしは何度もなんとか移行をしなければならないことがあり、それらは完全に平易なものでも楽しいものでもありませんでした。そこでは避けがたく予期していなかった問題が生じ、時には単純なアップグレードですら終わりなき頭痛を引き起こすこともありました。なので、<a href="https://blogs.oracle.com/developers/journey-to-the-free-cloud-migrating-from-aws-to-oci" name="cta=Internal Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">Oracle Cloudへアプリケーションを移行</a>しなければならない開発者、そしてDevOpsエンジニアのみなさんには同情します。同時に、アプリケーションをOracle Cloudへ移行することによって得られる利益はいつだって不利益を上回るとも考えています。このような移行の労苦については多くの検討が内部でなされており、数あるツール、また、プロセスをより簡単で苦労を少なくするためのちょっとした「ワザ」が開発されています。このポストではそうした「ワザ」のうちひとつについてお話します。</div>
<div class="adwcsengine" data-adgroupid="NONE PROVIDED" data-id="NONE PROVIDED" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
</div>
<br />
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Kafkaは疑いなくデータストリーミング(とその他)でポピュラーで、それは性能がよく、信頼でき、利用を容易にするためのSDK実装がいくつもあるからです。あなたのアプリケーションもすでにKafkaを利用しているかもしれません。おそらくあなたはあるマイクロサービスでメッセージをProduceし、他のマイクロサービスでConsumeしているかも。ではなぜこのような目的のために、KafkaではなくOracle Streaming Service(OSS)を使うことを検討するべきなのでしょうか?わたしの経験上、ZookeeperとKafkaクラスターをホストするためのインフラを構築し、保守するのは大変な苦労(とコスト)を伴い、したがってあなたは深い知識と構成管理のための余分な時間が必要になります。その代わりに、すぐに使い出せるホステッド環境を提供するOSSのようなサービスを活用することで、そうした時間(とコストの一部)が不要になります。このブログポストでは、あなたのアプリケーションでKafka SDK for Javaを使うことでOSSをかんたんに使えるということをご説明していきます。このKafka互換機能は現状ではLimited Availabilityでの提供となっていますが、遠くないうちにGAとなる予定です。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Streamの構成</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
まず初めに、このデモのためにちゃちゃっとStreamトピックを構成しちゃいましょう。Oracle Cloudのダッシュボードコンソールから、'Analytics' -> 'Streaming'と選択します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/614e15960da57e22ec7b47557ff4c2e0/2019_10_08_08_56_52.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Streamのリストページで、'Create Stream'をクリック(必要に応じてこのStreamを配置するのに適切なコンパートメントを左のサイドバーから選択しておいてください)。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/183d87c504928d366467e037baa2cfc0/2019_10_08_08_57_32.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Create Streamダイアログで、Streamの名前をつけ、Retentionの値(あるメッセージがトピックから破棄されるまでの時間)を入力します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/e32a3a0c9ff9be835155d603af9d233f/2019_10_08_08_58_58.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
希望のパーティション数を入力して、'Create Stream'をクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/f2a84603bc9ee338533b4a6bfd7773dc/2019_10_08_08_59_17.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
新しいStreamの詳細ページに直接遷移し、おおよそ30秒でStreamの状態がActiveと表示されるでしょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/df770c794c7beed9a315a408ea574e7a/2019_10_08_09_08_14.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Streams Userの作成</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
次にやるのはStreamingサービス専用のユーザーの作成です。コンソールサイドバーメニューからIdentity配下のUsersをクリック。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/db6f209efb0f58f23cf48be5d6bdda0e/2019_10_08_09_12_18.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
'Create User'をクリックして出てくるダイアログを埋めます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/153e05d74f83a93ad9dc2d985db9f0e2/2019_10_08_09_15_36.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
新しいユーザーが作成されたら、ユーザー詳細ページに行ってAuth Tokenを生成します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/e07d6392c4acb0d8e2461a468478a93f/2019_10_08_09_20_07.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/afaf8d4ee7dc1c86cc7472a7ee63bdc0/2019_10_08_09_20_32.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/8c090e2307c094ed4210370bc42d8512/2019_10_08_09_20_46.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Tokenをコピーしてしっかり保存しておきましょう。このGenerate Tokenダイアログをいったん離れると取得することはできません。Identityコンソールにいるはずなので、サイドバーからCompartmentsをクリックしてStreamを作成したコンパートメントを見つけてください。そのコンパートメントのOCISをコピーし、これもあとで使うので保存しておいてください。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/b3f08374c240ec8e1b343ca09063188c/2019_10_08_09_21_52.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
さて、ここからグループを作成し、先ほど作成したユーザーをこのグループに追加し、グループポリシーを作成します。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/d8449bb31e95daa28bb0101a42b43c5c/2019_10_08_09_16_40.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: 241px; list-style: none; margin: 0px; max-width: 100%; padding: 0px; width: 391px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/389128922795e1463757727b08c4a529/2019_10_08_09_17_03.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/51a5e4d997ed38f6ea3a1e0bb8d0436a/2019_10_08_09_18_10.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ここまでAuth Tokenを持ち、Streamを利用できるグループに所属したユーザーが用意できました。やったぜ。また、コンパートメントのOCIDも控えてあるので、コードに進んでいく準備ができています。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Kafka Producerの作成</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ここまででKafka Client SDKを使ってこのStreamを利用するコードへと進む準備ができました。わたしたちのプロジェクトでの最初のステップはClient SDKの依存するライブラリが存在することの確認です。わたしはGradleを使っていますが、あなたが他のものを使っているのであれば適切に修正してください。</div>
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px;"><div class="gist" id="gist98779638" style="-webkit-font-smoothing: antialiased; border-left: none !important; color: #333333; direction: ltr; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-build-gradle" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-gradle " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-build-gradle-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-en" style="-webkit-font-smoothing: antialiased; color: #6f42c1; list-style: none; margin: 0px; padding: 0px;">plugins</span> {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-build-gradle-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> id <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>java<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-build-gradle-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> id <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>application<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-build-gradle-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-build-gradle-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-build-gradle-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">group <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>codes.recursive<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-build-gradle-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">version <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>0.1-SNAPSHOT<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-build-gradle-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-build-gradle-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">sourceCompatibility <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">1.8</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-build-gradle-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-build-gradle-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-en" style="-webkit-font-smoothing: antialiased; color: #6f42c1; list-style: none; margin: 0px; padding: 0px;">repositories</span> {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-build-gradle-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> mavenCentral()</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-build-gradle-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-build-gradle-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-build-gradle-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-en" style="-webkit-font-smoothing: antialiased; color: #6f42c1; list-style: none; margin: 0px; padding: 0px;">application</span> {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="16" id="file-build-gradle-L16" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC16" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> mainClassName <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>codes.recursive.KafkaProducerExample<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="17" id="file-build-gradle-L17" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC17" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="18" id="file-build-gradle-L18" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC18" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="19" id="file-build-gradle-L19" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC19" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="20" id="file-build-gradle-L20" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC20" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-en" style="-webkit-font-smoothing: antialiased; color: #6f42c1; list-style: none; margin: 0px; padding: 0px;">dependencies</span> {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="21" id="file-build-gradle-L21" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC21" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> compile <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">group</span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>org.apache.kafka<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span>, <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">name</span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>kafka-clients<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span>, <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">version</span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>2.3.0<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="22" id="file-build-gradle-L22" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC22" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> testCompile <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">group</span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>junit<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span>, <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">name</span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>junit<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span>, <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">version</span>: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>4.12<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="23" id="file-build-gradle-L23" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC23" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="24" id="file-build-gradle-L24" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC24" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="25" id="file-build-gradle-L25" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC25" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">tasks<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>withType(<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">JavaExec</span>) {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="26" id="file-build-gradle-L26" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC26" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> systemProperties <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>properties</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="27" id="file-build-gradle-L27" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-build-gradle-LC27" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/5aeab844541169b7bcab07f91c56bb55/raw/f41879eee7e9bf700be5f266009d681c690e8d31/build.gradle" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/5aeab844541169b7bcab07f91c56bb55#file-build-gradle" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">build.gradle</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
</span><span style="color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif;"></span><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ここでわたしはProducerをテストするために以下のような小さなJavaプログラムを使います。</div>
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px;"><div class="gist" id="gist98779644" style="-webkit-font-smoothing: antialiased; border-left: none !important; color: #333333; direction: ltr; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-kafkaproducerexample-java" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-java " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-kafkaproducerexample-java-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-kafkaproducerexample-java-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">package</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">codes.recursive</span>;</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-kafkaproducerexample-java-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-kafkaproducerexample-java-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-kafkaproducerexample-java-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-kafkaproducerexample-java-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">public</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">class</span> <span class="pl-en" style="-webkit-font-smoothing: antialiased; color: #6f42c1; list-style: none; margin: 0px; padding: 0px;">KafkaProducerExample</span> {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-kafkaproducerexample-java-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-kafkaproducerexample-java-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-kafkaproducerexample-java-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-kafkaproducerexample-java-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">public</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">static</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">void</span> <span class="pl-en" style="-webkit-font-smoothing: antialiased; color: #6f42c1; list-style: none; margin: 0px; padding: 0px;">main</span>(<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">String</span>... <span class="pl-v" style="-webkit-font-smoothing: antialiased; color: #e36209; list-style: none; margin: 0px; padding: 0px;">args</span>) <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">throws</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">Exception</span> {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-kafkaproducerexample-java-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-kafkaproducerexample-java-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>out<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>println(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>producer<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-kafkaproducerexample-java-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-kafkaproducerexample-java-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">CompatibleProducer</span> producer <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">new</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">CompatibleProducer</span>();</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-kafkaproducerexample-java-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-kafkaproducerexample-java-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> producer<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>produce();</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-kafkaproducerexample-java-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-kafkaproducerexample-java-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> }</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-kafkaproducerexample-java-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-kafkaproducerexample-java-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-kafkaproducerexample-java-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-kafkaproducerexample-java-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/81ef3888ac7ee5879e94ef6d9021b89d/raw/ef50b7af14c14b4c70fc1edf86e7e546863b3065/KafkaProducerExample.java" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/81ef3888ac7ee5879e94ef6d9021b89d#file-kafkaproducerexample-java" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">KafkaProducerExample.java</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
</span><span style="color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif;"></span><div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">CompatibleProducer</code> クラスをビルドする前に、事前に取得しておいた必要な認証情報をIDEのRun/Debug設定に入れ込んでおきます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/fa3377d4ee4884859fc2bd9ba747a9d4/2019_10_09_09_39_14.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
べつにひどく複雑ってわけではないんですが、でもそれぞれの要素がわかりやすくなるように、ここで一度には<code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">CompatibleProducer</code> クラスだけをビルドすることにしましょう。まず、認証情報のための変数をいくつか宣言し、アプリケーションに渡す環境変数から値をセットするようにしておきます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist98779651" style="-webkit-font-smoothing: antialiased; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-compatibleproducer-java" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-java " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-compatibleproducer-java-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">public</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">class</span> <span class="pl-en" style="-webkit-font-smoothing: antialiased; color: #6f42c1; list-style: none; margin: 0px; padding: 0px;">CompatibleProducer</span> {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-compatibleproducer-java-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-compatibleproducer-java-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">public</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">void</span> <span class="pl-en" style="-webkit-font-smoothing: antialiased; color: #6f42c1; list-style: none; margin: 0px; padding: 0px;">produce</span>() {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-compatibleproducer-java-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">String</span> authToken <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getenv(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>AUTH_TOKEN<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-compatibleproducer-java-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">String</span> tenancyName <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getenv(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>TENANCY_NAME<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-compatibleproducer-java-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">String</span> username <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getenv(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>STREAMING_USERNAME<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-compatibleproducer-java-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">String</span> compartmentId <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getenv(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>COMPARTMENT_ID<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-compatibleproducer-java-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">String</span> topicName <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getenv(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>TOPIC_NAME<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-compatibleproducer-java-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> }</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-compatibleproducer-java-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/7eb749e56786e772e2722f88ac3aa98b/raw/b5e586cab7aae194ec961089e6bc284ec4a95bc6/CompatibleProducer.java" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/7eb749e56786e772e2722f88ac3aa98b#file-compatibleproducer-java" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">CompatibleProducer.java</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
次に、 <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">KafkaProducer</code>を構成するために使ういくつかのプロパティを作成します。これらはKafka SDKを使ってOSSのStreamにアクセスするために必要になるプロパティです。</div>
<div class="warning selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: #feefb3; border-radius: 2px; border: 1px solid; color: #9f6000; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 10px; margin-top: 10px; padding: 15px 10px;">
<b>注</b>:Streamingトピックを作成したリージョンに合わせて、"<code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">bootstrap.servers</code>"のリージョンの値を変更する必要がある場合があります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist98779657" style="-webkit-font-smoothing: antialiased; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-compatibleproducer-java" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-java " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-compatibleproducer-java-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">Properties</span> properties <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">new</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">Properties</span>();</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-compatibleproducer-java-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>bootstrap.servers<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>, <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>streaming.us-phoenix-1.oci.oraclecloud.com:9092<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-compatibleproducer-java-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>security.protocol<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>, <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>SASL_SSL<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-compatibleproducer-java-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>sasl.mechanism<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>, <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>PLAIN<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-compatibleproducer-java-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">ProducerConfig</span><span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>KEY_SERIALIZER_CLASS_CONFIG</span>, <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">StringSerializer</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>class<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getName());</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-compatibleproducer-java-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">ProducerConfig</span><span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>VALUE_SERIALIZER_CLASS_CONFIG</span>, <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">StringSerializer</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>class<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getName());</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-compatibleproducer-java-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-compatibleproducer-java-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>sasl.jaas.config<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-compatibleproducer-java-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>org.apache.kafka.common.security.plain.PlainLoginModule required username=<span class="pl-cce" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">\"</span><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-compatibleproducer-java-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> tenancyName <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>/<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-compatibleproducer-java-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> username <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>/<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-compatibleproducer-java-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> compartmentId <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><span class="pl-cce" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">\"</span> <span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-compatibleproducer-java-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>password=<span class="pl-cce" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">\"</span><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-compatibleproducer-java-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> authToken <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><span class="pl-cce" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">\"</span>;<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-compatibleproducer-java-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="16" id="file-compatibleproducer-java-L16" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC16" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="17" id="file-compatibleproducer-java-L17" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC17" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>retries<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>, <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">5</span>); <span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">//</span> retries on transient errors and load balancing disconnection</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="18" id="file-compatibleproducer-java-L18" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC18" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>max.request.size<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>, <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">1024</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">*</span> <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">1024</span>); <span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">//</span> limit request size to 1MB</span></td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/d5dca022a87becdcd891ce286b296019/raw/c3f78e771bac7cf5dee0841572f1eedfb608b2d1/CompatibleProducer.java" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/d5dca022a87becdcd891ce286b296019#file-compatibleproducer-java" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">CompatibleProducer.java</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
最後に、 <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">KafkaProducer</code> を構成してプロパティを入れ込み、5つの「test」メッセージをトピックにProduceしましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist98779665" style="-webkit-font-smoothing: antialiased; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-compatibleproducer-java" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-java " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-compatibleproducer-java-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">KafkaProducer</span> producer <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">new</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">KafkaProducer<></span>(properties);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-compatibleproducer-java-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-compatibleproducer-java-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">for</span> (<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">int</span> i <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">0</span>; i <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;"><</span> <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">5</span>; i<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">++</span>) {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-compatibleproducer-java-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">ProducerRecord<<span class="pl-smi" style="-webkit-font-smoothing: antialiased; color: #24292e; list-style: none; margin: 0px; padding: 0px;">String</span>, <span class="pl-smi" style="-webkit-font-smoothing: antialiased; color: #24292e; list-style: none; margin: 0px; padding: 0px;">String</span>></span> record <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">new</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">ProducerRecord<></span>(topicName, <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">UUID</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>randomUUID()<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>toString(), <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Test record #<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> i);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-compatibleproducer-java-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> producer<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>send(record, (md, ex) <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">-</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">></span> {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-compatibleproducer-java-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">if</span>( ex <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">!=</span> <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">null</span> ) {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-compatibleproducer-java-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> ex<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>printStackTrace();</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-compatibleproducer-java-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> }</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-compatibleproducer-java-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">else</span> {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-compatibleproducer-java-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>out<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>println(</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-compatibleproducer-java-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Sent msg to <span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-compatibleproducer-java-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> md<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>partition()</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-compatibleproducer-java-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span> with offset <span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-compatibleproducer-java-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> md<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>offset()</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-compatibleproducer-java-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span> at <span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="16" id="file-compatibleproducer-java-L16" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC16" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> md<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>timestamp()</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="17" id="file-compatibleproducer-java-L17" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC17" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> );</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="18" id="file-compatibleproducer-java-L18" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC18" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> }</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="19" id="file-compatibleproducer-java-L19" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC19" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> });</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="20" id="file-compatibleproducer-java-L20" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC20" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="21" id="file-compatibleproducer-java-L21" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC21" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">producer<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>flush();</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="22" id="file-compatibleproducer-java-L22" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC22" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">producer<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>close();</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="23" id="file-compatibleproducer-java-L23" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleproducer-java-LC23" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>out<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>println(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>produced 5 messages<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/fe0ed9c857a9f96ba266fa3821edc906/raw/a582f952fe7c2a836e551fae07664708ac9050a6/CompatibleProducer.java" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/fe0ed9c857a9f96ba266fa3821edc906#file-compatibleproducer-java" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">CompatibleProducer.java</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
あなたのIDEでこのプログラムを実行すると、以下のような出力が得られるでしょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist98779671" style="-webkit-font-smoothing: antialiased; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-output-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-output-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">></span> Task :producer:run</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-output-sh-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">producer</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-output-sh-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">SLF4J: Failed to load class <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>org.slf4j.impl.StaticLoggerBinder<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>.</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-output-sh-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">SLF4J: Defaulting to no-operation (NOP) logger implementation</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-output-sh-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">for</span> further details.</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-output-sh-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Sent msg to 0 with offset 57 at 1570626362254</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-output-sh-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Sent msg to 0 with offset 58 at 1570626362254</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-output-sh-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Sent msg to 0 with offset 59 at 1570626362254</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-output-sh-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Sent msg to 0 with offset 60 at 1570626362254</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-output-sh-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Sent msg to 0 with offset 61 at 1570626362254</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-output-sh-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">produced 5 messages</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-output-sh-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-output-sh-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">BUILD SUCCESSFUL <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">in</span> 8s</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-output-sh-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">2 actionable tasks: 2 executed</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-output-sh-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">09:06:01: Task execution finished <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>run<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span>.</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="16" id="file-output-sh-L16" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-output-sh-LC16" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Disconnected from the target VM, address: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>127.0.0.1:59701<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span>, transport: <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span>socket<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">'</span></span></td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/9b20ec61b5faf81c983cb384d169b3c5/raw/9b222daa08e8873e36622e3f961430eb54c05e56/output.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/9b20ec61b5faf81c983cb384d169b3c5#file-output-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">output.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ここでStreamingコンソールをちょっと見て、5つのメッセージがProduceされて表示されていることを確認してみましょう。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<img alt="" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f1047a3a-1d1c-46ba-9cdb-6fd5928d0a1c/Image/c5d19e348d6b00b137c92e07f8f8108f/2019_10_09_07_53_53.jpg" style="-webkit-font-smoothing: antialiased; border: 0px; height: auto !important; list-style: none; margin: 0px; max-width: 100%; padding: 0px;" /></div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
次に、Kafka互換のConsumerを作成してこれらのProduceされたメッセージをConsumeします。</div>
<h2 class="selectionShareable" style="-webkit-font-smoothing: antialiased; color: #100f0e; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.2; list-style: none; margin: 0px 0px 0.6em; padding: 0px;">
<span style="font-size: small;">Kafka Consumerの作成</span></h2>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Consumer作成のステップのうち大部分はProducer作成のためのステップと同様です(Gradleの依存ライブラリ、Run設定の環境変数、など)。なのでここでは <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">CompatibleConsumer</code> クラス自体にフォーカスしたいと思います。何かしら見逃しがあるんじゃないかと心配でも逃げ出さないでくださいね、<a href="http://%20https//github.com/recursivecodes/oss-kafka-compatible-streaming" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">このブログポストのコード全部がGitHubで見られます</a>。わたしたちの互換Consumerを作成していきましょう!</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
The consumer starts out similarly - declaring the credentials, setting some properties (which do differ slightly from the producer, so beware!) and creating the <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">Consumer</code> itself:</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
Consumerは同じように作っていきます。認証情報を宣言し、プロパティを設定(Producer用のとはちょっと異なるので注意してくださいね!)し、 <code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">Consumer</code> 自体を作成します。</div>
<div class="warning selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: #feefb3; border-radius: 2px; border: 1px solid; color: #9f6000; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 10px; margin-top: 10px; padding: 15px 10px;">
<b>注</b>:Procuderのときと同様、Streamingトピックを作成したリージョンに合わせて、"<code class="code-inline" style="-webkit-font-smoothing: antialiased; background-color: whitesmoke; color: #252525; display: inline; line-height: 1.3em; list-style: none; margin: 0px; overflow-wrap: normal; padding: 1px 2px; white-space: pre !important; width: 100%;">bootstrap.servers</code>"のリージョンの値を変更する必要がある場合があります。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist98779682" style="-webkit-font-smoothing: antialiased; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-compatibleconsumer-java" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-java " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-compatibleconsumer-java-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">String</span> authToken <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getenv(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>AUTH_TOKEN<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-compatibleconsumer-java-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">String</span> tenancyName <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getenv(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>TENANCY_NAME<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-compatibleconsumer-java-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">String</span> username <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getenv(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>STREAMING_USERNAME<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-compatibleconsumer-java-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">String</span> compartmentId <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getenv(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>COMPARTMENT_ID<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-compatibleconsumer-java-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">String</span> topicName <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getenv(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>TOPIC_NAME<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-compatibleconsumer-java-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-compatibleconsumer-java-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">Properties</span> properties <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">new</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">Properties</span>();</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-compatibleconsumer-java-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>bootstrap.servers<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>, <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>streaming.us-phoenix-1.oci.oraclecloud.com:9092<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-compatibleconsumer-java-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>security.protocol<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>, <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>SASL_SSL<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-compatibleconsumer-java-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>sasl.mechanism<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>, <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>PLAIN<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-compatibleconsumer-java-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">ConsumerConfig</span><span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>GROUP_ID_CONFIG</span>, <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>group-0<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-compatibleconsumer-java-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">ConsumerConfig</span><span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>KEY_DESERIALIZER_CLASS_CONFIG</span>, <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">StringDeserializer</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>class<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getName());</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-compatibleconsumer-java-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">ConsumerConfig</span><span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>VALUE_DESERIALIZER_CLASS_CONFIG</span>, <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">StringDeserializer</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>class<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>getName());</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-compatibleconsumer-java-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-compatibleconsumer-java-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>sasl.jaas.config<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>,</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="16" id="file-compatibleconsumer-java-L16" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC16" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>org.apache.kafka.common.security.plain.PlainLoginModule required username=<span class="pl-cce" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">\"</span><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="17" id="file-compatibleconsumer-java-L17" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC17" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> tenancyName <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>/<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="18" id="file-compatibleconsumer-java-L18" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC18" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> username <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>/<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="19" id="file-compatibleconsumer-java-L19" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC19" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> compartmentId <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><span class="pl-cce" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">\"</span> <span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="20" id="file-compatibleconsumer-java-L20" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC20" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>password=<span class="pl-cce" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">\"</span><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="21" id="file-compatibleconsumer-java-L21" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC21" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> authToken <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span><span class="pl-cce" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">\"</span>;<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="22" id="file-compatibleconsumer-java-L22" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC22" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="23" id="file-compatibleconsumer-java-L23" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC23" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">properties<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>put(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>max.partition.fetch.bytes<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>, <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">1024</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">*</span> <span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">1024</span>); <span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">//</span> limit request size to 1MB per partition</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="24" id="file-compatibleconsumer-java-L24" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC24" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="25" id="file-compatibleconsumer-java-L25" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC25" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">Consumer<<span class="pl-smi" style="-webkit-font-smoothing: antialiased; color: #24292e; list-style: none; margin: 0px; padding: 0px;">Long</span>, <span class="pl-smi" style="-webkit-font-smoothing: antialiased; color: #24292e; list-style: none; margin: 0px; padding: 0px;">String</span>></span> consumer <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">new</span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">KafkaConsumer<></span>(properties);</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/b5119c6e15fd69ff2ff2136f2874b314/raw/ac662b0234f0b8b9f1631ce724ff19ed59d88903/CompatibleConsumer.java" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/b5119c6e15fd69ff2ff2136f2874b314#file-compatibleconsumer-java" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">CompatibleConsumer.java</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
ここで、作成しておいたトピックへのSubscriptionを構成し、1秒毎に新規メッセージをポーリングさせます。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist98779690" style="-webkit-font-smoothing: antialiased; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-compatibleconsumer-java" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-java " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-compatibleconsumer-java-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">try</span> {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-compatibleconsumer-java-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> consumer<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>subscribe(<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">Collections</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>singletonList( topicName ) );</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-compatibleconsumer-java-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">
</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-compatibleconsumer-java-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">while</span>(<span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">true</span>) {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-compatibleconsumer-java-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">Duration</span> duration <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">Duration</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>ofMillis(<span class="pl-c1" style="-webkit-font-smoothing: antialiased; color: #005cc5; list-style: none; margin: 0px; padding: 0px;">1000</span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-compatibleconsumer-java-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">ConsumerRecords<<span class="pl-smi" style="-webkit-font-smoothing: antialiased; color: #24292e; list-style: none; margin: 0px; padding: 0px;">Long</span>, <span class="pl-smi" style="-webkit-font-smoothing: antialiased; color: #24292e; list-style: none; margin: 0px; padding: 0px;">String</span>></span> consumerRecords <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">=</span> consumer<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>poll(duration);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-compatibleconsumer-java-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> consumerRecords<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>forEach(record <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">-</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">></span> {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-compatibleconsumer-java-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>out<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>println(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Record Key <span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> record<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>key());</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-compatibleconsumer-java-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>out<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>println(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Record value <span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> record<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>value());</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-compatibleconsumer-java-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>out<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>println(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Record partition <span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> record<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>partition());</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-compatibleconsumer-java-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>out<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>println(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>Record offset <span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">+</span> record<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>offset());</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-compatibleconsumer-java-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> });</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-compatibleconsumer-java-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">//</span> commits the offset of record to broker.</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-compatibleconsumer-java-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> consumer<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>commitAsync();</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-compatibleconsumer-java-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> }</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="16" id="file-compatibleconsumer-java-L16" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC16" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="17" id="file-compatibleconsumer-java-L17" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC17" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">catch</span>(<span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">WakeupException</span> e) {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="18" id="file-compatibleconsumer-java-L18" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC18" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">//</span> do nothing, shutting down...</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="19" id="file-compatibleconsumer-java-L19" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC19" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="20" id="file-compatibleconsumer-java-L20" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC20" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">finally</span> {</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="21" id="file-compatibleconsumer-java-L21" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC21" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> <span class="pl-smi" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">System</span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>out<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>println(<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>closing consumer<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>);</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="22" id="file-compatibleconsumer-java-L22" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC22" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"> consumer<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">.</span>close();</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="23" id="file-compatibleconsumer-java-L23" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-compatibleconsumer-java-LC23" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">}</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/ea65c4810d3e26626e752ab5fabd2f75/raw/f12dbfd7a12b7e0f13d051461015057165613933/CompatibleConsumer.java" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/ea65c4810d3e26626e752ab5fabd2f75#file-compatibleconsumer-java" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">CompatibleConsumer.java</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
最後のステップはこのConsumerサンプルを実行した上でProducerに火を入れて、このConsumerが新しくProduceされたメッセージをConsumeするのを観察することです。</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
<span class="gist-ph" style="-webkit-font-smoothing: antialiased; line-height: inherit !important; list-style: none; margin: 0px; padding: 0px;"></span></div>
<div class="gist" id="gist98779696" style="-webkit-font-smoothing: antialiased; border-left: none !important; color: #333333; direction: ltr; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; list-style: none; margin: 0px; padding: 0px; position: relative;">
<div class="gist-file" style="-webkit-font-smoothing: antialiased; border-color: rgb(221, 221, 221) rgb(221, 221, 221) rgb(204, 204, 204); border-image: initial; border-radius: 3px; border-style: solid; border-width: 1px; font-family: SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; list-style: none; margin: 0px 0px 1em; padding: 0px;">
<div class="gist-data" style="-webkit-font-smoothing: antialiased; border-bottom: 1px solid rgb(221, 221, 221); border-radius: 2px 2px 0px 0px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: auto; padding: 0px;">
<div class="js-gist-file-update-container js-task-list-container file-box" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="file" id="file-consumer_output-sh" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<div class="Box-body p-0 blob-wrapper data type-shell " itemprop="text" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; overflow: auto hidden; padding: 0px;">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" style="-webkit-font-smoothing: antialiased; background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border-collapse: collapse; border: 0px; color: #333333; line-height: 1.4; list-style: none; margin: 0px; padding: 0px;"><tbody style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="1" id="file-consumer_output-sh-L1" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC1" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding-bottom: 1px !important; padding-left: 10px !important; padding-right: 10px !important; padding-top: 4px; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">></span> Task :consumer:run</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="2" id="file-consumer_output-sh-L2" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC2" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">consumer</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="3" id="file-consumer_output-sh-L3" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC3" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">org.apache.kafka.common.security.plain.PlainLoginModule required username=<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>toddrsharp/streaming-user/ocid1.compartment.oc1..aaaaaaaa7lzppsdxt6j56zhpvy6u5gyrenwyc2e2h4fak5ydvv6kt7anizbq<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span> password=<span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>M0}tf)R<eCumKcgic6mC<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">;</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="4" id="file-consumer_output-sh-L4" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC4" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">SLF4J: Failed to load class <span class="pl-s" style="-webkit-font-smoothing: antialiased; color: #032f62; list-style: none; margin: 0px; padding: 0px;"><span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span>org.slf4j.impl.StaticLoggerBinder<span class="pl-pds" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">"</span></span>.</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="5" id="file-consumer_output-sh-L5" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC5" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">SLF4J: Defaulting to no-operation (NOP) logger implementation</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="6" id="file-consumer_output-sh-L6" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC6" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder <span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">for</span> further details.</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="7" id="file-consumer_output-sh-L7" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC7" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record Key 92a078df-89bd-4c55-a40b-668509f5d543</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="8" id="file-consumer_output-sh-L8" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC8" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record value Test record <span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">#</span>0</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="9" id="file-consumer_output-sh-L9" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC9" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record partition 0</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="10" id="file-consumer_output-sh-L10" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC10" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record offset 62</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="11" id="file-consumer_output-sh-L11" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC11" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record Key ba12e804-49b0-49cc-ac6f-c45dc52bf543</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="12" id="file-consumer_output-sh-L12" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC12" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record value Test record <span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">#</span>1</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="13" id="file-consumer_output-sh-L13" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC13" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record partition 0</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="14" id="file-consumer_output-sh-L14" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC14" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record offset 63</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="15" id="file-consumer_output-sh-L15" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC15" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record Key 29883f60-5fb1-4c94-a23f-5a489f109d82</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="16" id="file-consumer_output-sh-L16" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC16" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record value Test record <span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">#</span>2</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="17" id="file-consumer_output-sh-L17" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC17" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record partition 0</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="18" id="file-consumer_output-sh-L18" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC18" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record offset 64</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="19" id="file-consumer_output-sh-L19" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC19" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record Key 00af0e12-a92f-4162-b2a6-22cdcf04fd73</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="20" id="file-consumer_output-sh-L20" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC20" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record value Test record <span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">#</span>3</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="21" id="file-consumer_output-sh-L21" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC21" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record partition 0</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="22" id="file-consumer_output-sh-L22" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC22" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record offset 65</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="23" id="file-consumer_output-sh-L23" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC23" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record Key dd69776a-1bfd-419a-b6b0-7445c098b20e</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="24" id="file-consumer_output-sh-L24" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC24" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record value Test record <span class="pl-c" style="-webkit-font-smoothing: antialiased; color: #6a737d; list-style: none; margin: 0px; padding: 0px;"><span class="pl-c" style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;">#</span>4</span></td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="25" id="file-consumer_output-sh-L25" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC25" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record partition 0</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="26" id="file-consumer_output-sh-L26" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC26" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;">Record offset 66</td></tr>
<tr style="-webkit-font-smoothing: antialiased; list-style: none; margin: 0px; padding: 0px;"><td class="blob-num js-line-number" data-line-number="27" id="file-consumer_output-sh-L27" style="-webkit-font-smoothing: antialiased; background: transparent; color: rgba(27, 31, 35, 0.3); cursor: pointer; line-height: 20px; list-style: none; margin: 0px; min-width: inherit; padding: 1px 10px !important; text-align: right; user-select: none; vertical-align: top; white-space: nowrap; width: 13.6px;"></td><td class="blob-code blob-code-inner js-file-line" id="file-consumer_output-sh-LC27" style="-webkit-font-smoothing: antialiased; background: transparent; border: 0px; color: #24292e; line-height: 20px; list-style: none; margin: 0px; overflow-wrap: normal; overflow: visible; padding: 1px 10px !important; position: relative; vertical-align: top; white-space: pre;"><span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;"><</span>=========----<span class="pl-k" style="-webkit-font-smoothing: antialiased; color: #d73a49; list-style: none; margin: 0px; padding: 0px;">></span> 75% EXECUTING [35s]</td></tr>
</tbody></table>
</div>
</div>
</div>
</div>
<div class="gist-meta" style="-webkit-font-smoothing: antialiased; background-color: #f7f7f7; border-radius: 0px 0px 2px 2px; color: #586069; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal; list-style: none; margin: 0px; overflow: hidden; padding: 10px;">
<a href="https://gist.github.com/recursivecodes/dcbd787ea0bcaad4fb32b7339ecdad07/raw/685caf158b0fd72ff3ceade2a2d842130fcd9e9e/consumer_output.sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; float: right; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">view raw</a><a href="https://gist.github.com/recursivecodes/dcbd787ea0bcaad4fb32b7339ecdad07#file-consumer_output-sh" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">consumer_output.sh</a> hosted with ❤ by <a href="https://github.com/" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; border: 0px; color: #666666; font-weight: 600; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">GitHub</a></div>
</div>
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
</div>
<div class="selectionShareable" style="-webkit-font-smoothing: antialiased; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 1em; padding: 0px;">
はい、というわけで、あなたはKafka SDK for Javaを使ってOracle Streaming ServiceトピックとメッセージをProduce、Consumeできました。</div>
<div class="info selectionShareable" style="-webkit-font-smoothing: antialiased; background-color: #bde5f8; border-radius: 2px; border: 1px solid; color: #00529b; font-family: "Oracle Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif; line-height: 1.4em; list-style: none; margin-bottom: 10px; margin-top: 10px; padding: 15px 10px;">
<span style="-webkit-font-smoothing: antialiased; font-weight: 600; list-style: none; margin: 0px; padding: 0px;">Hey!</span> このブログポストのコードはGitHubで見られるます: <a href="https://github.com/recursivecodes/oss-kafka-compatible-streaming" name="cta=External Link Click" style="-webkit-font-smoothing: antialiased; color: #bc6c37; list-style: none; margin: 0px; padding: 0px; text-decoration-line: none;">https://github.com/recursivecodes/oss-kafka-compatible-streaming</a></div>
</div>
</div>
Logico Mk-Ⅱhttp://www.blogger.com/profile/14841512648988169399noreply@blogger.com0