Menggunakan AMS API di CLI, Ruby, Python, dan Java - Panduan Pengguna Tingkat Lanjut AMS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan AMS API di CLI, Ruby, Python, dan Java

Berikut ini adalah daftar cuplikan kode untuk ListChangeTypeClassificationSummaries operasi AMS API, dalam semua bahasa yang tersedia.

Untuk Python, Ruby, dan Java SDKs, lihat Alat untuk Amazon Web Services dan gulir ke bawah ke bagian tersebut. SDKs Setiap penginstal SDK berisi README dengan cuplikan kode tambahan.

Contoh AMS API ke CLI

Setelah Anda menginstal AMS CLI (memerlukan AWS CLI; lihatMenginstal atau memutakhirkan AMS CLI), Anda dapat menjalankan operasi AMS API apa pun dengan mereformasi panggilan terlebih dahulu menentukan AMS API mana, aws amscm atauaws amsskms, dan kemudian memberikan tindakan dengan tanda hubung menggantikan kasus unta. Terakhir, berikan kredensil, seperti SALL.

Untuk mempelajari lebih lanjut, lihat Menggunakan Antarmuka Baris AWS Perintah.

Contoh:

  • API: 'ChangeTypeClassificationSummaries[].[Category,Subcategory,Item,Operation,ChangeTypeId]'

  • CLI: amscm list-change-type-classification-summaries --query "ChangeTypeClassificationSummaries[*].[Category,Subcategory,Item,Operation,ChangeTypeId]" --output table

catatan

Jika Anda mengautentikasi dengan SAFL, tambahkan aws --profile saml ke awal perintah. Misalnya,

aws --profile saml amscm list-change-type-classification-summaries --query "ChangeTypeClassificationSummaries[*].[Category,Subcategory,Item,Operation,ChangeTypeId]" --output table

Contoh AMS API ke Python

Untuk menggunakan AMS API dengan Python, instal AMS CLI dan instal boto3. Ikuti langkah-langkah ini:

  1. Instal AMS CLI. Lihat Menginstal atau memutakhirkan AMS CLI.

  2. Instal boto3, AWS SDK untuk Python. Untuk informasi lebih lanjut, lihat posting blog ini Sekarang Tersedia — AWS SDK Untuk Python (Boto3).

    import boto3

  3. Dapatkan klien AMS Change Management:

    cm = boto3.client('amscm')

  4. Dapatkan AMS CTs:

    cts = cm.list_change_type_classification_summaries()

    print(cts)

Contoh Python

Berikut ini adalah beberapa contoh untuk menggunakan Python di AMS, untuk membuat EC2 instance, gunakan and/or Lambda.

Contoh Python untuk membuat sebuah EC2

Contoh ini menunjukkan bagaimana Anda dapat menggunakan RESTFul API amscm dari dalam kode Python untuk mengajukan dan melakukan proses RFC.

  1. Instal AMS CLI di suatu tempat yang dapat Anda akses; Anda memerlukan file yang disediakannya.

  2. Panggil pustaka Python dan buat instance: 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']

Contoh Python dengan Lambda

Contoh ini menunjukkan cara menggabungkan model AMS dengan kode Anda sehingga Anda dapat menggunakannya dengan Lambda, atau EC2; tempat yang tidak akan, atau tidak bisa, instal. amscli

catatan

AMS tidak menyediakan SDK Python khusus AMS yang dapat diimpor. Skrip penginstalan menginstal model data layanan AMS di jalur normal CLI. amscli Untuk penggunaan CLI dan penggunaan Python sistem, tidak apa-apa, karena keduanya awscli dan boto3 membaca model layanan mereka dari lokasi default yang sama (). ~/.aws/models Namun, ketika Anda ingin menggunakan layanan AMS melalui boto3 di Lambda (atau runtime non-lokal lainnya), itu rusak, karena Anda tidak lagi memiliki model data. Berikut ini adalah metode untuk memperbaikinya dengan mengemas model data dengan fungsi.

Ada langkah-langkah sederhana yang dapat Anda ambil untuk menjalankan kode Python terintegrasi AMS di Lambda atau runtime lain seperti, Fargate, dll. EC2 Alur kerja berikut menunjukkan langkah-langkah yang diperlukan untuk fungsi Lambda terintegrasi AMS.

Dengan menambahkan model data ke paket penerapan kode dan memperbarui jalur pencarian SDK, Anda dapat mensimulasikan pengalaman SDK.

penting

Contoh ini dan semua perintah non-python yang ditampilkan diuji pada komputer Mac.

Contoh Alur Kerja:

  1. Instal amscli. Ini membuat folder ~/.aws/models di komputer Anda (Mac).

  2. Salin model ke direktori lokal:cp ~/.aws/models ./models.

  3. Sertakan model ke dalam paket penyebaran kode Anda.

  4. Perbarui kode fungsi Anda untuk menambahkan model baru ke jalur SDK. Perhatikan bahwa kode ini harus dijalankan sebelum boto3 atau botocore diimpor!

# Force Python to search local directory for boto3 data models import os os.environ['AWS_DATA_PATH'] = './models' import boto3 import botocore
catatan

Karena model contoh berada dalam direktori bernamamodels, kita tambahkan ./models ke AWS_DATA _PATH. Jika direktori diberi nama/ams/boto3models, kami akan menambahkan kode berikut:

import os.environ['AWS_DATA_PATH'] = './ams/boto3models' import boto3 import botocore

Kode Anda harus berhasil menemukan model AMS. Sebagai contoh yang lebih spesifik re: packaging, inilah alur kerja spesifik Lambda.

Contoh Alur Kerja AMS Lambda:

Langkah-langkah ini menerapkan contoh generik sebelumnya untuk membuat fungsi AWS Lambda.

  1. Instal amscli. Ini membuat folder ~/.aws/models di komputer Anda (Mac).

  2. Salin model ke direktori lokal:

    cp ~/.aws/models ./models
  3. Tambahkan model ke file zip penerapan fungsi Anda:

    zip -r9 function.zip ./models
penting

Perbarui kode fungsi Anda untuk menambahkan model baru ke jalur SDK. Perhatikan bahwa kode ini harus dijalankan sebelum boto3 atau botocore diimpor!

# Force Python to search local directory for boto3 data models import os os.environ['AWS_DATA_PATH'] = './models' import boto3 import botocore
catatan

Karena contoh model dalam direktori bernamamodels, Kami menambahkan ./models ke AWS_DATA _PATH. Jika direktori diberi nama/ams/boto3models, kami akan menambahkan kode berikut:

import os os.environ['AWS_DATA_PATH'] = './ams/boto3models' import boto3 import botocore

Sekarang, terapkan fungsi Anda:

  1. Tambahkan kode fungsi Anda ke file zip penerapan (jika Anda belum melakukannya):

    zip -g function.zip lambda-amscm-test.py
  2. Buat atau perbarui fungsi Anda dengan file zip yang Anda buat (konsol atau CLI):

    aws lambda update-function-code --function-name lambda-amscm-test --zip-file fileb://function.zip --region us-east-1

Lambda Python terintegrasi AMS Anda sekarang seharusnya berfungsi.

catatan

Fungsi Anda harus memiliki izin IAM amscm atau Anda mendapatkan kesalahan izin.

Contoh kode fungsi Lambda untuk menguji amscm (isi dari.py): lambda-amscm-test

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!') }

Uji output (sukses):

Respon Fungsi:

{ "statusCode": 200, "body": "\"Hello from Lambda!\"" } Request ID: "1cea13c0-ed46-43b1-b102-a8ea28529c27"

Log Fungsi:

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

Contoh AMS API ke Ruby

Untuk menggunakan AMS API dengan Ruby, instal AWS Ruby SDK dan AMS CLI. Ikuti langkah-langkah ini:

  1. Instal AMS CLI. Lihat Menginstal atau memutakhirkan AMS CLI.

  2. Instal AWS Ruby SDK. Lihat Alat untuk Amazon Web Services.

  3. Konfigurasikan Ruby dengan perintah ini:

    require 'aws-sdk'

    config = {

     region: 'us-east-1',

     credentials: Aws::Credentials.new('ACCESS_KEY','SECRET_KEY')}

  4. Dapatkan AMS CTs:

    ams_cm = Aws::amscm::Client.new(config)

    cts = ams_cm.list_change_type_classification_summaries

    print(cts)

Contoh AMS API ke Java

Untuk menggunakan AMS API dengan Java, instal AWS Java SDK dan AMS CLI. Ikuti langkah-langkah ini:

  1. Instal AMS CLI. Lihat Menginstal atau memutakhirkan AMS CLI.

  2. Instal AWS Java SDK. Lihat Alat untuk Amazon Web Services.

  3. Konfigurasikan Java dengan perintah ini:

    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() {

  4. Atur kredensialnya. Kami menyarankan Anda untuk tidak melakukan hardcode ini.

    final BasicAWSCredentials awsCredsCm =

     new BasicAWSCredentials("ACCESS_KEY", "SECRET_KEY");

  5. Buat klien AMS Change Management:

    final AWSManagedServicesCMClient cmClient =

     new AWSManagedServicesCMClient(awsCredsCm);

  6. Dapatkan 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);

    }