翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
CLI、Ruby、Python、Java での AMS API の使用
以下は、利用可能なすべての言語での AMS API ListChangeTypeClassificationSummariesオペレーションのコードスニペットのリストです。
Python、Ruby、Java SDKs「Amazon Web Services のツール
AMS API から CLI への例
AMS CLI をインストールしたら (CLI AWS が必要。「」を参照AMS CLI のインストールまたはアップグレード)、まずどの AMS API aws amscmまたは を指定して呼び出しを変更し、キャメルケースを置き換えるハイフンでアクションを指定することでaws amsskms、任意の AMS API オペレーションを実行できます。最後に、SAML などの認証情報を指定します。
詳細については、AWS 「 コマンドラインインターフェイスの使用」を参照してください。
例:
API:
'ChangeTypeClassificationSummaries[].[Category,Subcategory,Item,Operation,ChangeTypeId]'CLI:
amscm list-change-type-classification-summaries --query "ChangeTypeClassificationSummaries[*].[Category,Subcategory,Item,Operation,ChangeTypeId]" --output table
注記
SAML で認証する場合は、 コマンドの先頭aws --profile samlに を追加します。例えば、 などです
aws --profile saml amscm list-change-type-classification-summaries --query "ChangeTypeClassificationSummaries[*].[Category,Subcategory,Item,Operation,ChangeTypeId]" --output table
AMS API から Python へのサンプル
Python で AMS API を使用するには、AMS CLI をインストールし、boto3 をインストールします。以下の手順に従ってください。
AMS CLI をインストールします。「AMS CLI のインストールまたはアップグレード」を参照してください。
AWS SDK for Python である boto3 をインストールします。詳細については、このブログ記事「Now Available – AWS SDK for Python (Boto3)
」を参照してください。 import boto3AMS 変更管理クライアントを取得します。
cm = boto3.client('amscm')AMS CTsを取得します。
cts = cm.list_change_type_classification_summaries()print(cts)
Python の例
以下は、AMS での Python の使用、EC2 インスタンスの作成、Lambda の使用の例です。
EC2 を作成する Python の例
この例では、Python コード内から amscm RESTFul API を使用して、RFC プロセスをファイルして実行する方法を示します。
アクセスできる場所に AMS CLI をインストールします。用意されているファイルが必要です。
Python ライブラリを呼び出し、EC2 インスタンスを作成します。
import boto3 import json import time # Create the amscm client cm = boto3.client('amscm') # Define the execution parameters for EC2 Create AMSExecParams = { "Description": "EC2-Create", "VpcId": "VPC_ID", "Name": "My-EC2", "TimeoutInMinutes": 60, "Parameters": { "InstanceAmiId": "INSTANCE_ID", "InstanceSubnetId": "SUBNET_ID"} } # Create the AMS RFC cts = cm.create_rfc( ChangeTypeId="ct-14027q0sjyt1h", ChangeTypeVersion="3.0", Title="Python Code RFC Create", ExecutionParameters=json.dumps(AMSExecParams) ) # Extract the RFC ID from the response NewRfcID = cts['RfcId'] # Submit the RFC RFC_Submit_Return=cm.submit_rfc(RfcId=NewRfcID) # Check the RFC status every 30 seconds RFC_Status = cm.get_rfc(RfcId=NewRfcID) RFC_Status_Code = RFC_Status['Rfc']['Status']['Name'] while RFC_Status_Code != "Success": if RFC_Status_Code == "PendingApproval": print(RFC_Status_Code) time.sleep(30) elif RFC_Status_Code == "InProgress": print(RFC_Status_Code) time.sleep(30) elif RFC_Status_Code == "Failure": print(RFC_Status_Code) break else: print(RFC_Status_Code) RFC_Status = cm.get_rfc(RfcId=NewRfcID) RFC_Status_Code = RFC_Status['Rfc']['Status']['Name']
Lambda を使用した Python の例
この例では、AMS モデルをコードにバンドルして、Lambda または EC2 で使用する方法を示します。インストールできない、またはインストールできない場所ですamscli。
注記
AMS は、インポート可能な AMS 固有の Python SDK を提供しません。amscli インストールスクリプトは、CLI の通常のパスに AMS サービスデータモデルをインストールします。CLI の使用とシステム Python の使用については、 awscliと の両方が同じデフォルトの場所 () からサービスモデルboto3を読み取るため、問題ありません~/.aws/models。ただし、Lambda (または他のローカル以外のランタイム) で boto3 経由で AMS サービスを使用する場合、データモデルがなくなったため、中断します。データモデルを 関数でパッケージ化して、これを修正する方法を次に示します。
Lambda または EC2、Fargate などの別のランタイムで AMS 統合 Python コードを実行するための簡単な手順があります。次のワークフローは、AMS 統合 Lambda 関数に必要なステップを示しています。
データモデルをコードのデプロイパッケージに追加し、SDK 検索パスを更新することで、SDK エクスペリエンスをシミュレートできます。
重要
この例と表示されているすべての非 Python コマンドは、Mac コンピュータでテストされています。
ワークフローの例:
amscliをインストールします。これにより、コンピュータ (Mac) の~/.aws/modelsにフォルダが作成されます。モデルをローカルディレクトリ にコピーします
cp ~/.aws/models ./models。モデルをコードのデプロイパッケージに含めます。
関数コードを更新して、SDK パスに新しいモデルを追加します。このコードは、boto3 または botocore をインポートする前に実行する必要があることに注意してください。
# Force Python to search local directory for boto3 data models import os os.environ['AWS_DATA_PATH'] = './models' import boto3 import botocore
注記
サンプルモデルは という名前のディレクトリにあるためmodels、AWS_DATA_PATH ./modelsに を追加します。ディレクトリの名前が の場合/ams/boto3models、次のコードを追加します。
import os.environ['AWS_DATA_PATH'] = './ams/boto3models' import boto3 import botocore
コードは AMS モデルを正常に見つける必要があります。パッケージングに関するより具体的な例として、Lambda 固有のワークフローを次に示します。
AMS Lambda ワークフローの例:
これらのステップは、前述の一般的な例を AWS Lambda 関数の作成に適用します。
amscli をインストールします。これにより、コンピュータ (Mac) の
~/.aws/modelsにフォルダが作成されます。モデルをローカルディレクトリにコピーします。
cp ~/.aws/models ./modelsモデルを関数のデプロイ zip ファイルに追加します。
zip -r9 function.zip ./models
重要
関数コードを更新して、SDK パスに新しいモデルを追加します。このコードは、boto3 または botocore をインポートする前に実行する必要があることに注意してください。
# Force Python to search local directory for boto3 data models import os os.environ['AWS_DATA_PATH'] = './models' import boto3 import botocore
注記
サンプルモデルは という名前のディレクトリにあるためmodels、AWS_DATA_PATH ./modelsに を追加します。ディレクトリの名前が の場合/ams/boto3models、次のコードを追加します。
import os os.environ['AWS_DATA_PATH'] = './ams/boto3models' import boto3 import botocore
次に、 関数をデプロイします。
関数コードをデプロイ zip ファイルに追加します (まだ追加していない場合)。
zip -g function.zip lambda-amscm-test.py作成した zip ファイル (コンソールまたは CLI) を使用して関数を作成または更新します。
aws lambda update-function-code --function-name lambda-amscm-test --zip-file fileb://function.zip --region us-east-1
AMS 統合 Python Lambda が機能するようになりました。
注記
関数に の IAM アクセス許可が必要です。amscmそうしないと、アクセス許可エラーが発生します。
amscm (lambda-amscm-test.py の内容) をテストするための Lambda 関数コードの例:
import json # Force lambda to search local directory for boto3 data models import os os.environ['AWS_DATA_PATH'] = './models' import boto3 import botocore def lambda_handler(event, context): use_session = boto3.session.Session(region_name="us-east-1") try: cm = use_session.client("amscm") cts = cm.list_change_type_categories() print(cts) except botocore.exceptions.UnknownServiceError: print("amscm not found") return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda!') }
テスト出力 (成功):
関数レスポンス:
{ "statusCode": 200, "body": "\"Hello from Lambda!\"" } Request ID: "1cea13c0-ed46-43b1-b102-a8ea28529c27"
関数ログ:
START RequestId: 1cea13c0-ed46-43b1-b102-a8ea28529c27 Version: $LATEST {'ChangeTypeCategories': ['Deployment', 'Internal Infrastructure Management', 'Management'], 'ResponseMetadata': {'RequestId': 'e27276a0-e081-408d-bcc2-10cf0aa19ece', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'e27276a0-e081-408d-bcc2-10cf0aa19ece', 'content-type': 'application/x-amz-json-1.1', 'content-length': '89', 'date': 'Sun, 10 May 2020 23:21:19 GMT'}, 'RetryAttempts': 0}} END RequestId: 1cea13c0-ed46-43b1-b102-a8ea28529c27
AMS API から Ruby への例
Ruby で AMS API を使用するには、 AWS Ruby SDK と AMS CLI をインストールします。以下の手順に従ってください。
AMS CLI をインストールします。「AMS CLI のインストールまたはアップグレード」を参照してください。
AWS Ruby SDK をインストールします。「Amazon Web Services のツール
」を参照してください。 次のコマンドを使用して Ruby を設定します。
require 'aws-sdk'config = {region: 'us-east-1',credentials: Aws::Credentials.new('ACCESS_KEY','SECRET_KEY')}-
AMS CTsを取得します。
ams_cm = Aws::amscm::Client.new(config)cts = ams_cm.list_change_type_classification_summariesprint(cts)
AMS API から Java への例
Java で AMS API を使用するには、Java SDK AWS と AMS CLI をインストールします。以下の手順に従ってください。
AMS CLI をインストールします。「AMS CLI のインストールまたはアップグレード」を参照してください。
Java SDK AWS をインストールします。「アマゾン ウェブ サービスのツール
」を参照してください。 次のコマンドを使用して Java を設定します。
import com.amazonaws.auth.BasicAWSCredentials;import com.amazonaws.services.amscm.model.AWSManagedServicesCMClient;import com.amazonaws.services.amscm.model.ListChangeTypeClassificationSummariesRequest;import com.amazonaws.services.amscm.model.ListChangeTypeClassificationSummariesResult;public static void getChangeTypeClassificationSummaries() {認証情報を設定します。これをハードコードしないことをお勧めします。
final BasicAWSCredentials awsCredsCm =new BasicAWSCredentials("ACCESS_KEY", "SECRET_KEY");AMS 変更管理クライアントを作成します。
final AWSManagedServicesCMClient cmClient =new AWSManagedServicesCMClient(awsCredsCm);-
AMS CTsを取得します。
final ListChangeTypeClassificationSummariesRequest listCtsRequest = new ListChangeTypeClassification SummariesRequest();final ListChangeTypeClassificationSummariesResult listCtsResult =cmClient.listChangeTypeClassificationSummaries(listCtsRequest);System.out.println("List of CTs");listCtsResult.getChangeTypeClassificationSummaries().stream().map(x -> x.getCategory() + "/" + x.getSubcategory() + "/" + x.getItem() + "/" + x.getOperation()).forEach(System.out::println);}