拡張性アクションを使用して、Cloud Assembly を ServiceNow のような Enterprise ITSM と統合できます。
この統合を作成するには、4 つの拡張性アクション スクリプトを使用します。最初の 3 つのスクリプトは、プロビジョニング中に、コンピューティング プロビジョニング後イベントで順番に開始されます。4 番目のスクリプトは、コンピューティング削除後イベントでトリガされます。
イベント トピックの詳細については、Cloud Assembly で提供されるイベント トピックを参照してください。
[仮想マシンの詳細の取得]
仮想マシンの詳細の取得スクリプトは、CI の作成に必要な追加のペイロードの詳細と、Amazon Web Services Systems Manager パラメータ ストア (SSM) に保存されている ID トークンを取得します。また、このスクリプトは、後で使用するために、customProperties を追加プロパティで更新します。
[ServiceNow CMDB CI の作成][ServiceNow の変更の作成]
このスクリプトは、ServiceNow インスタンス URL を入力として渡し、ServiceNow 認証情報を SSM として保存してセキュリティ要件を満たすことで、ITSM の統合を完了します。
[ServiceNow の変更の作成]
ServiceNow CMDB CI の使用中止スクリプトは、ServiceNow に停止するように指示し、作成スクリプトで作成されたカスタムプロパティ serviceNowSysId に基づいて CI を使用中止とマークします。
前提条件
- この統合を設定する前に、次の条件付きクラウド テンプレート プロパティを使用してすべてのイベント サブスクリプションをフィルタリングします。event.data["customProperties"]["enable_servicenow"] === "true"
注: このプロパティは、ServiceNow との統合が必要なクラウド テンプレートで設定できます。
- Python をダウンロードしてインストールします。
サブスクリプションのフィルタリングの詳細については、拡張サブスクリプションの作成を参照してください。
手順
結果
Cloud Assembly は ITSM ServiceNow と正常に統合されました。
次のタスク
from botocore.vendored import requests import json import boto3 client = boto3.client('ssm','ap-southeast-2') def handler(context, inputs): snowUser = client.get_parameter(Name="serviceNowUserName",WithDecryption=False) snowPass = client.get_parameter(Name="serviceNowPassword",WithDecryption=True) tableName = "cmdb_ci_vmware_instance" sys_id =inputs['customProperties']['serviceNowSysId'] url = "https://" + inputs['instanceUrl'] + "/api/now/"+tableName+"/{0}".format(sys_id) headers = {'Content-type': 'application/json', 'Accept': 'application/json'} payload = { 'state': 'Retired' } results = requests.put( url, json=payload, headers=headers, auth=(inputs['username'], inputs['password']) ) print(results.text)
Cloud Assembly で、拡張性アクションを使用して ServiceNow を統合する方法の詳細については、Extending Cloud Assembly with Action Based Extensibility for ServiceNow Integrationを参照してください。