ノート:

OCI FunctionsおよびPythonを使用したJira Service Managementでのチケットのオープン

イントロダクション

次のチュートリアルでは、OCI MonitoringサービスとJira Service Managementの両方を使用してチケットを開封し、インシデントを追跡するOracle Cloud Infrastructure (OCI)ユーザーについて説明します。OCIインスタンスがあり、エラーが原因でインスタンスが予期せず停止した時期を知りたいとします。オンデューティ・エンジニアが問題の調査および修正をできるだけ早く開始できるように、通知を受け、Jira Service Managementでチケットをただちにオープンする必要があります。OCI Functionsサービスを使用すると、組織システムで問題が発生したときにJira Service Managementでチケットを自動的に開くことができます。

目的

前提条件

タスク1: Virtual Cloudネットワークの作成

仮想クラウド・ネットワーク(VCN)は、OCIに定義するネットワークです。これには、サブネット、ルート表およびゲートウェイが含まれます。

  1. OCIコンソールの左上隅にあるサービス・メニューサービス・メニューをクリックします。

  2. 「ネットワーキング」で、「Virtual Cloud Networks」を選択します。

  3. 仮想クラウド・ネットワーク・ページで、「VCNウィザードの起動」をクリックします。

  4. 「インターネット接続性を持つVCNの作成」を選択し、「VCNウィザードの起動」をクリックします。

  5. VCN構成を完了し、「次へ」および「作成」をクリックします。

タスク2: 動的グループの作成

動的グループを使用すると、OCI Computeインスタンスを(ユーザー・グループと同様に)プリンシパル・アクターとしてグループ化できます。

ノート:動的グループを作成するには、管理者権限が必要です。

  1. 「サービス」メニューから、「アイデンティティとセキュリティ」「アイデンティティ」にナビゲートし、「動的グループ」をクリックします。

  2. 「動的グループの作成」をクリックします。

  3. 意味のある「名前」および「説明」を入力します。

  4. 「ルール1」セクションで、次の行を追加します。

    ALL {resource.type = 'fnfunc', resource.compartment.id = 'ocid1.compartment.oc1', instance.compartment.id = 'ocid1.compartment.oc1'}

    ノート:コンパートメントIDを目的のコンパートメントIDに置き換えます。

  5. 「作成」をクリックします。

タスク3: OCI IAMポリシーの作成

Oracle Cloud Infrastructure Identity and Access Management (OCI IAM)では、クラウド・リソースにアクセスできるユーザーを制御できます。この統合が機能するには、Function as a Service (FaaS)サービス(ファンクション・サービス)へのアクセス権をボールト、リポジトリおよびその他の複数のサービスに付与する必要があります。

  1. サービス・メニューから、「アイデンティティとセキュリティ」「アイデンティティ」に移動し、「ポリシー」をクリックします。

  2. 「ポリシーの作成」をクリックします。

  3. 適切な「名前」および「説明」を入力し、必ず正しいコンパートメントを選択してください(この例では、DEVという名前のコンパートメントを使用します)。

  4. 「ポリシー・ビルダー」セクションで、「手動エディタの表示」を有効にし、次の行を追加します:

    Allow service faas to read repos in tenancy
    
    Allow service faas to read secret-family in compartment DEV
    
    Allow service faas to read vaults in compartment DEV
    
    Allow service faas to use keys in compartment DEV
    
    Allow service faas to use apm-domains in compartment DEV
    
    Allow dynamic-group DGNAME to read secret-family in compartment DEV
    
    Allow dynamic-group DGNAME to read vaults in compartment DEV
    
    Allow dynamic-group DGNAME to use keys in compartment DEV
    

    ノート:動的グループ(DGNAME)名およびコンパートメント(DEV)名を目的の名前に置き換えます。

  5. 「作成」をクリックします。

タスク4: ファンクションを格納するリポジトリの作成

OCI Container Registryを使用すると、コンテナ・イメージ(Dockerイメージなど)をOracle管理レジストリに格納し、共有および管理できます。

  1. OCIコンソールに移動し、サービス・メニューを開き、「開発者サービス」をクリックします。「コンテナ」で、「コンテナ・レジストリ」をクリックします。

  2. 「リポジトリの作成」をクリックします。

  3. 「リポジトリの作成」ダイアログ・ボックスで、選択した「コンパートメント」および「リポジトリ名」を指定し、「プライベート」のままにします。

  4. 「リポジトリの作成」をクリックします。

タスク5: Jira Service ManagementログインのユーザーおよびAPIトークンを格納するVaultの作成

Oracle Cloud Infrastructure Vaultは、リソースへのセキュアなアクセスのためにマスター暗号化キーおよびシークレットを格納して管理するキー管理サービスです。

  1. サービス・メニューを開き、「アイデンティティとセキュリティ」および「Vault」をクリックします。

  2. 「ボールトの作成」をクリックします。

  3. 「Vaultの作成」ダイアログ・ボックスで、選択したコンパートメントを選択し、選択した適切な名前を入力します。プライベートにするかしないかを選択することもできます。

    ノート:ボールトの作成後にボールト・タイプを変更することはできません。

  4. 完了したら、「Vaultの作成」をクリックします。

    ノート: Jira Service Management api-tokenおよびapi-userをボールトに別々に保存します。

タスク6: アプリケーションの作成

  1. サービス・メニューを開き、「開発者サービス」をクリックします。「ファンクション」で、「アプリケーション」をクリックします。

  2. 「アプリケーションの作成」をクリックします。

  3. 「アプリケーションの作成」ウィンドウで、アプリケーションの名前(Jira-Ticketingなど)を入力し、タスク1で作成したVCNを選択し、パブリック・サブネットを選択します。

  4. 「作成」をクリックします。

タスク7: ファンクションのデプロイ

このタスクでは、「前提条件」セクションからダウンロードできるzipアーカイブを使用します。

  1. リストからタスク6で新しく作成したアプリケーションを選択します。

  2. 「アプリケーション」ウィンドウで、「リソース」「スタート・ガイド」オプションで使用可能なステップに従います。

    ノート:

    • このチュートリアルでは、OCI Cloud Shell設定を使用します。

    • 設定のステップ4で、タスク4で作成したリポジトリ名を指定してください。

  3. 「クラウド・シェルの起動」をクリックすると、ページの下部に新しい小さなシェル・ウィンドウが表示されます。そのウィンドウの右上隅にある歯車のメニューをクリックし、「アップロード」を選択します。

  4. ホーム・ディレクトリにアップロードされるjsm-ticket-function.zipファイルをドラッグ・アンド・ドロップします。

  5. 次のコマンドを使用してアーカイブを解凍します。

    unzip jsm-ticket-function.zip
    
  6. cd jsm-ticket-functionコマンドを使用してファンクション・ディレクトリに切り替え、OCIコンソールで説明されているステップに進みます。

タスク8: 機能構成の編集

関数には、機能が正しく機能するために編集する必要がある構成可能なパラメータがいくつかあります。

  1. OCIコンソールで、タスク6で作成されたアプリケーションに移動し、左側の「リソース」の下にある「ファンクション」を選択します。

  2. 関数jsm-ticket-functionの名前をクリックします。

  3. 「リソース」の下の「構成」をクリックします。5つのキー(api-tokenapi-userservice_desk_idrequest_type_idおよびvault_ocid)が表示されます。

    これらのキーはすべて構成で編集する必要があります。

    • api-token:チケットの代理として作成されたユーザー・アカウントのapi-tokenが格納されているボールトからのシークレットの名前。詳細は、AtlassianアカウントのAPIトークンの管理を参照してください。

    • api-user:ボールトからのシークレットの名前は、チケットが作成されるユーザーの電子メール・アドレスで、かわりにチケットが格納されます。

    • service_desk_id:チケットが作成されるプロジェクト。

    • request_type_id:チケットが作成されるリクエスト・タイプ(タイトルと説明が必要です)。

    • vault_ocid: api-tokenおよびapi-userシークレットが格納されるvault_ocid。

    service_desk_idおよびrequest_type_idをすばやく簡単に取得するには、使用するポータルにアクセスしてURLを確認します。たとえば、ポータルに移動し、呼び出すリクエストをクリックすると、次のようなURLが表示されます: https://somewhere.atlassian.net/servicedesk/customer/portal/10/group/229/create/664

    その中の数字は:

    • 10:ポータル/サービスデスクをいいます。
    • 229:リクエストの受信者グループ(ナビゲーションでのみ使用され、RESTでは関係ありません)。
    • 664:クリックしたリクエスト・タイプのID。

タスク9: トピックへの関数のサブスクライブ

  1. サービス・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。

    ノート:適切なコンパートメントにいることを確認してください。

  2. 「トピックの作成」をクリックします。

  3. 適切な名前を入力して、「作成」をクリックします。

  4. トピックが作成されたら、トピックのリストから選択します。

  5. 「トピック」ウィンドウで、左側の「リソース」の下にある「サブスクリプション」を選択し、「サブスクリプションの作成」をクリックします。

  6. 「サブスクリプションの作成」ウィンドウで、「ファンクション」にするプロトコルを選択し、コンパートメント、アプリケーションおよびタスク6で作成されたファンクションを選択します。

  7. 「作成」をクリックします。

タスク10: 監視が必要な目的のメトリックのアラームの作成

複数のタイプのアラームを作成できます。このチュートリアルでは、不在アラームを選択しました。

  1. サービス・メニューを開き、「監視および管理」をクリックします。「モニタリング」で、「アラーム定義」をクリックします。

  2. 「アラームの作成」をクリックします。

  3. 「アラームの作成」ページの「アラームの定義」の下で、アラーム設定を入力または更新します。

  4. 「アラーム通知の定義」で、タスク9で作成したトピックを必ず選択してください。

  5. 「メッセージ形式」「整形されたJSONメッセージ(改行されたRAWテキスト)の送信」を選択します。

  6. 「アラームの保存」をクリックします。

承認

その他の学習リソース

docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントは、Oracle Help Centerを参照してください。