• 製品
  • 使用を開始する
  • 関連ドキュメント
  • リソース

Opsgenie CloudFormation リソース

AWS CloudFormation では、拡張可能なコードとしてのインフラストラクチャ (IaC) 機能を提供します。これによって、開発者や企業は、関連する AWS リソースとサードパーティのリソースのコレクションを簡単に作成して、整然とした予測可能な方法でプロビジョニングして管理できます。

Atlassian Opsgenie では、これらの機能を使用して独自のカスタム リソース タイプを作成しました。

1 2 3 4 5 Atlassian::Opsgenie::User Atlassian::Opsgenie::Team Atlassian::Opsgenie::Integration

これらのスキーマを活用すると、CloudFormation ユーザーが Opsgenie 環境と AWS 環境の設定を簡素化できます。

Opsgenie カスタム リソースの定義

Opsgenie カスタム リソース タイプを使用してリソースを作成するには、次が必要です。

  1. CloudFormation スタック オペレーションを実行するための AWS アカウント。

  2. リソースを作成するための Opsgenie アカウント。

  3. スタックで CRUD オペレーションを実行するための AWS CloudFormation CLI (オプション)。

Opsgenie リソース タイプを有効にするには、次の 2 つの方法があります。

  • AWS アカウントで AWS サードパーティ レジストリの Opsgenie サードパーティ リソースを有効にすると、リソース タイプを使用できます。詳細については、このリンクをご参照ください。

  • これらのリソースはプライベート レジストリに公開できます。詳細については、「Opsgenie のオープン ソース Github リポジトリ」をご確認ください。

Opsgenie カスタム リソースとは何ですか?

ユーザー

Atlassian::Opsgenie::User

このリソース タイプでは、Amazon CloudFormation レジストリ コンソールまたは CLI を使用して Opsgenie でユーザー エンティティ/リソースを作成できます。ユーザー リソースは、必要な Endpoint プロパティと ApiKey プロパティと併せて、簡素化を目的として 3 つの設定可能なプロパティ (Opsgenie API ドキュメントに記載されているプロパティ中の 1 つ) をサポートしています。

 

プロパティ

説明

必須

limit

API キー

Opsgenie から提供される API キー

必須

 

エンドポイント

希望の環境に応じたAPIのエンドポイント

必須

次のいずれかに限定されます。

  • api.eu.opsgenie.com

  • api.opsgenie.com

ユーザ名

ユーザーのメール アドレス

必須

100 文字

氏名

ユーザーの名前

必須

512 文字

役割

ユーザーのロール

必須

次のいずれかに限定されます。

  • 所有者

  • 管理

  • ユーザー

  • 自分が作成したカスタム ロール

エクスポートされるプロパティ
リソースが作成されると、次のプロパティが生成されます。

プロパティ

説明

ID

ユーザーエンティティを参照するために使用されるユーザーの一意の ID

 

例:

Opsgenie ユーザー リソース stack.json の例をご参照ください。

スタック作成時に設定できる参照パラメーターとして OpsgenieApiKey を渡せる点にご注意ください。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 { "AWSTemplateFormatVersion": "2010-09-09", "Description": "OG user", "Parameters": { "OpsgenieApiKey":{ "Description":"Enter Opsgenie Api Key", "Type":"String" }, }, "Resources": { "TestUser": { "Type": "Atlassian::Opsgenie::User", "Properties": { "OpsgenieApiKey": {"Ref": "OpsgenieApiKey"}, "OpsgenieApiEndpoint": "https://api.opsgenie.com", "Username": "test-user@opsgenie.com", "FullName": "test user", "Role": "User" } } } }


チーム

Atlassian::Opsgenie::Team


このリソース タイプを使用すると、Amazon CloudFormation レジストリと CLI を使用して Opsgenie でチーム リソース/エンティティを作成できます。また、既存の Opsgenie ユーザーであるチーム メンバーを追加できます。チーム リソースは、チーム API の「チームの作成」セクションにあるように、Opsgenie のチーム エンティティで使用可能なすべてのフィールドをサポートしています。

 
サポートされているプロパティ

プロパティ

説明

必須

limit

API キー

Opsgenie から提供される API キー

必須

 

エンドポイント

希望の環境に応じたAPIのエンドポイント

必須

次のいずれかに限定されます。

  • api.eu.opsgenie.com

  • api.opsgenie.com

名前

チームの名前

必須

100 文字

説明

チームの説明

任意

10,000 文字

members

Opsgenie ユーザーのリストをチーム エンティティに追加する

任意

詳細については、以下のメンバー プロパティの表をご参照ください。

メンバー プロパティ:
Opsgenie のチーム リソースの Members プロパティで設定可能なプロパティを次に示します。詳細は「Opsgenie におけるチームとは」をご確認ください。

プロパティ

説明

必須

limit

userid

ユーザー識別子

必須

 

役割

ユーザーのロール

必須

次のいずれかに限定されます。

  • 所有者

  • 管理

  • ユーザー

  • 自分が作成したカスタム ロール

 

例:

Opsgenie チーム リソース stack.json ファイルの例をご参照ください。

スタック作成時に設定できる参照パラメーターとして OpsgenieApiKeyOpsgenieApiEndpoint を渡せる点にご注意ください。

また、UserID が既に存在していることを確認してください。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 { "AWSTemplateFormatVersion": "2010-09-09", "Description": "Opsgenie Test Users", "Parameters": { "ApiKey": { "Description": "Enter Opsgenie Api Key", "Type": "String" }, "ApiEndpoint": { "Description": "Enter Opsgenie Api endpoint", "Type": "String", "Default": "https://api.opsgenie.com", "AllowedValues": [ "https://api.opsgenie.com", "https://api.eu.opsgenie.com", "https://api.sandbox.opsgenie.com" ] } }, "Resources": { "TeamA": { "Type": "Atlassian::Opsgenie::Team", "Properties": { "OpsgenieApiKey": { "Ref": "ApiKey" }, "OpsgenieApiEndpoint": { "Ref": "ApiEndpoint" }, "Name": "uuuii-test-team-ops", "Description": "Test team with 2 user for demonstration", "Members": [ { "UserId": "04461d66-6ec6-4632-9904-f5429aec9535", "Role": "user" } ] } } } }

 

連携

Atlassian::Opsgenie::Integration


このリソース タイプでは、統合オーナーとして Opsgenie チームに関連付けられる Opsgenie インテグレーションを作成できます。このリソースによって、Opsgenie のインシデント管理機能をテクノロジー スタックで使用されているサードパーティ ツールで使用できるようになります。Opsgenie インテグレーションの詳細についてご確認ください。

 

Opsgenie の統合のリソース プロパティは、統合 APIに詳細が記載されている Opsgenie の統合エンティティ パラメーターを反映しています。

サポートされているプロパティは次のとおりです。

プロパティ

説明

必須

limit

API キー

Opsgenie から提供される API キー

必須

 

エンドポイント

希望の環境に応じたAPIのエンドポイント

必須

次のいずれかに限定されます。

  • api.eu.opsgenie.com

  • api.opsgenie.com

有効

このパラメーターは、インテグレーションを有効にするかどうかを指定するためのものです。既定で true に設定されます。

必須

デフォルト値が true のブール値。

名前

インテグレーションの名前

必須

名前は、インテグレーションごとに一意である必要があります。

統合タイプ

作成される API インテグレーション サポート ツール。Opsgenie の統合ページにある統合の一覧

必須

API 統合のみを作成できます。サポートされる統合を確認するには、Opsgenie コンソールに表示される統合のリストを API でフィルターしてください。

OwnerTeamId

インテグレーションに関連付けられているチームの識別子

必須

 

OwnerTeamName

インテグレーションに関連付けられているチームの名前

任意

 

AllowReadAccess

このパラメーターは、統合の読み取りアクセスを設定するためのものです。読み取りアクセスが制限されている場合、統合はどのドメイン内でも読み取りを許可されません。

任意

ブール値は既定でtrueに設定されます。

AllowWriteAccess

このパラメーターは、統合の書き込みアクセスを設定するためのものです。書き込みアクセスが制限されている場合、統合はどのドメイン内にも書き込みを許可されません。

任意

ブール値は既定でtrueに設定されます。

AllowDeleteAccess

このパラメーターは、統合の削除アクセスを設定するためのものです。削除アクセスが制限されている場合、統合はどのドメイン内でも削除を許可されません。

任意

デフォルト値が true のブール値。

AllowConfigurationAccess

このパラメーターは、設定アクセスを許可または制限するためのものです。設定アクセスが制限されている場合、インテグレーションはアラート API リクエスト、インシデント API リクエスト、およびハートビートの送信に制限されます。

任意

デフォルト値が true のブール値。

対応者

アラートの通知を受信するユーザーを計算するためのオプションのユーザー、スケジュール、チーム、またはエスカレーションの名前。制限を超えている対応者は無視されます。

以下の対応者プロパティの表をご参照ください。

任意

 

 

対応者プロパティ:
次のプロパティは、Opsgenie の統合リソースの Responder プロパティで設定できます。

プロパティ

説明

必須

limit

タイプ

インテグレーションのアラートに関連付けられている対応者エンティティ。

必須

次のいずれかに限定されます。

  • スケジュール

  • チーム

  • ユーザー

名前

インテグレーションによって生成されたアラートの対応者となるスケジュールまたはチームの名前

必須

 

ユーザ名

インテグレーションによって生成されたアラートの対応者となるユーザーの名前

必須

 

 

エクスポートされるプロパティ
リソースの作成後に生成されます。

プロパティ

説明

ID

作成されたインテグレーションの一意の識別子

IntegrationApiKey

自動生成されるインテグレーションの API キー

 

例:

Opsgenie インテグレーション リソース stack.json ファイルの例をご参照ください。

スタック作成時に設定できる参照パラメーターとして OpsgenieApiKeyOpsgenieApiEndpoint を渡せる点にご注意ください。

また、対応者のリストに追加する前に、名前/ユーザー名がすでに存在していることを確認してください。

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 { "AWSTemplateFormatVersion": "2010-09-09", "Description": "Opsgenie Integration", "Parameters": { "OpsgenieApiKey": { "Description": "Enter Opsgenie Api Key", "Type": "String" }, "OpsgenieEndpoint": { "Description": "Enter Opsgenie Api URL", "Type": "String" } }, "Resources": { "IntegrationTest": { "Type": "Atlassian::Opsgenie::Integration", "Properties": { "OpsgenieApiKey": { "Ref": "OpsgenieApiKey" }, "OpsgenieApiEndpoint": { "Ref": "OpsgenieEndpoint" }, "IntegrationType": "Marid", "Name": "test maridint", "Enabled":true } } } }

 

独自の Opsgenie リソースを作成する

次を作成してみましょう。

  • Atlassian::Opsgenie::Userリソース タイプ スキーマを使用している 2 人のユーザー。

  • Atlassian::Opsgenie::Team をそれらのユーザーと共に使用しているチーム。

  • SNS トピックとサブスクリプションの Atlassian::Opsgenie::Integration を使用している Opsgenie SNS 統合。

リソース .json ファイルは以下のようになります。

stack.json を作成すると、AWS コンソールまたは AWS CLI を使用してスタックを作成できます。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 { "AWSTemplateFormatVersion": "2010-09-09", "Description": "Opsgenie Test Users", "Parameters": { "OpsgenieApiKey": { "Description": "Enter Opsgenie Api Key", "Type": "String" }, "OpsgenieApiEndpoint": { "Description": "Enter Opsgenie Api endpoint", "Type": "String", "Default": "https://api.opsgenie.com", "AllowedValues": [ "https://api.opsgenie.com", "https://api.eu.opsgenie.com", "https://api.sandbox.opsgenie.com" ] } }, "Resources": { "UserA": { "Type": "Atlassian::Opsgenie::User", "Properties": { "ApiKey": { "Ref": "OpsgenieApiKey" }, "Endpoint": { "Ref": "OpsgenieApiEndpoint" }, "Username": "opsgenie-user1@opsgenie.com", "FullName": "user one", "Role": "User" } }, "UserB": { "Type": "Atlassian::Opsgenie::User", "Properties": { "ApiKey": { "Ref": "OpsgenieApiKey" }, "Endpoint": { "Ref": "OpsgenieApiEndpoint" }, "Username": "opsgenie-user2@opsgenie.com", "FullName": "user two", "Role": "User" } }, "TeamA": { "Type": "Atlassian::Opsgenie::Team", "Properties": { "ApiKey": { "Ref": "OpsgenieApiKey" }, "ApiEndpoint": { "Ref": "OpsgenieApiEndpoint" }, "Name": "uuu-test-team-ops", "Description": "Test team with 2 user for demonstration", "Members": [ { "UserId": { "Ref": "UserA" }, "Role": "user" }, { "UserId": { "Ref": "UserB" }, "Role": "user" } ] }, "DependsOn": [ "UserA", "UserB" ] }, "IntegrationTest": { "Type": "Atlassian::Opsgenie::Integration", "Properties": { "ApiKey": { "Ref": "OpsgenieApiKey" }, "Endpoint": { "Ref": "OpsgenieApiEndpoint" }, "IntegrationType": "AmazonSns", "Name": "test awsSns", "Responders": [ { "type": "team", "name": { "Fn::GetAtt": [ "TeamA", "Name" ] } } ], "Enabled": true }, "DependsOn": [ "TeamA" ] }, "MySns": { "Type": "AWS::SNS::Topic", "Properties": { "DisplayName": "opsgenie-test-aws", "Subscription": [ { "Endpoint": { "Fn::Join": [ "", [ { "Ref": "OpsgenieApiEndpoint" }, "/v1/json/amazonsns?apiKey=", { "Fn::GetAtt": [ "IntegrationTest", "IntegrationApiKey" ] } ] ] }, "Protocol": "https" } ], "TopicName": "opsgenie-test-demo" }, "DependsOn": [ "IntegrationTest" ] } } }

 

 

その他のヘルプ