

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
<a name="sent-api-ruby-python-java"></a>

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](https://aws.amazon.com/tools/) dan gulir ke bawah ke bagian tersebut. SDKs Setiap penginstal SDK berisi README dengan cuplikan kode tambahan.

## Contoh AMS API ke CLI
<a name="cli-list-ct-summaries"></a>

Setelah Anda menginstal AMS CLI (memerlukan AWS CLI; lihat[Menginstal atau memutakhirkan AMS CLI](understand-sent-api.md#install-sent-cli)), Anda dapat menjalankan operasi AMS API apa pun dengan mereformasi panggilan terlebih dahulu menentukan AMS API mana, `aws amscm` atau`aws 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](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-using.html).

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
<a name="python-list-ct-summaries"></a>

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](understand-sent-api.md#install-sent-cli).

1. Instal boto3, AWS SDK untuk Python. Untuk informasi lebih lanjut, lihat posting blog ini [Sekarang Tersedia — AWS SDK Untuk Python (](https://aws.amazon.com/blogs/aws/now-available-aws-sdk-for-python-3-boto3/)Boto3).

   `import boto3`

1. Dapatkan klien AMS Change Management:

   `cm = boto3.client('amscm')`

1. Dapatkan AMS CTs:

   `cts = cm.list_change_type_classification_summaries()`

   `print(cts)`

### Contoh Python
<a name="python-examples"></a>

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

#### Contoh Python untuk membuat sebuah EC2
<a name="python-examples-create-ec2"></a>

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.

1. 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
<a name="python-examples-lambda"></a>

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).

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

1. Sertakan model ke dalam paket penyebaran kode Anda.

1. 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 bernama`models`, 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).

1. Salin model ke direktori lokal:

   ```
   cp ~/.aws/models ./models
   ```

1. 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 bernama`models`, 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
   ```

1. 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
<a name="ruby-list-ct-summaries"></a>

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](understand-sent-api.md#install-sent-cli).

1. Instal AWS Ruby SDK. Lihat [Alat untuk Amazon Web Services](https://aws.amazon.com/tools/).

1. Konfigurasikan Ruby dengan perintah ini:

   `require 'aws-sdk'`

   `config = { `

   ` region: '{{us-east-1}}',`

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

1. 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
<a name="java-list-ct-summaries"></a>

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](understand-sent-api.md#install-sent-cli).

1. Instal AWS Java SDK. Lihat [Alat untuk Amazon Web Services](https://aws.amazon.com/tools/).

1. 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() {`

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

   `final BasicAWSCredentials awsCredsCm = `

   ` new BasicAWSCredentials("{{ACCESS_KEY}}", "{{SECRET_KEY}}");`

1. Buat klien AMS Change Management:

   `final AWSManagedServicesCMClient cmClient =`

   ` new AWSManagedServicesCMClient(awsCredsCm);`

1. 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);`

   `}`