

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

# AWS ParallelCluster API
<a name="api-reference-v3"></a>

**Apa itu AWS ParallelCluster API?**

AWS ParallelCluster API adalah aplikasi tanpa server yang, setelah diterapkan ke Anda Akun AWS, menyediakan akses terprogram ke AWS ParallelCluster fitur melalui API. 

AWS ParallelCluster API didistribusikan sebagai [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)template mandiri yang menyertakan titik akhir [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html), yang mengekspos AWS ParallelCluster fitur, dan [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)fungsi, yang menangani pemrosesan fitur yang dipanggil. 

Gambar berikut menunjukkan diagram arsitektur tingkat tinggi dari infrastruktur AWS ParallelCluster API.

 ![\[a high-level architecture diagram of the ParallelCluster API infrastructure\]](http://docs.aws.amazon.com/id_id/parallelcluster/latest/ug/images/API-Architecture-r2.png) 

## AWS ParallelCluster Dokumentasi API
<a name="api-reference-documentation-v3"></a>

File spesifikasi OpenAPI yang menjelaskan AWS ParallelCluster API dapat diunduh dari: 

```
https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/ParallelCluster.openapi.yaml
```

Mulai dari file spesifikasi OpenAPI, Anda dapat menggunakan salah satu dari banyak alat yang tersedia seperti [Swagger UI](https://swagger.io/tools/swagger-ui/) atau [Redoc untuk menghasilkan dokumentasi](https://github.com/Redocly/redoc) untuk API. AWS ParallelCluster 

**Cara menerapkan API AWS ParallelCluster **

Untuk menerapkan AWS ParallelCluster API, Anda harus menjadi Administrator. Akun AWS

Template yang digunakan untuk menyebarkan API tersedia di URL berikut:

```
https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/parallelcluster-api.yaml
```

di mana `<REGION>` adalah Wilayah AWS tempat API perlu diterapkan dan `<VERSION>` merupakan AWS ParallelCluster versinya (misalnya 3.15.0). 

AWS Lambda menggunakan antarmuka lapisan Lambda dengan [AWS ParallelCluster API pustaka Python](pc-py-library-v3.md) untuk memproses fitur yang dipanggil API.

**Awas**  
Setiap pengguna di Akun AWS, yang memiliki akses istimewa ke AWS Lambda atau layanan Amazon API Gateway, secara otomatis mewarisi izin untuk mengelola AWS ParallelCluster sumber daya API.

# Terapkan AWS ParallelCluster API dengan AWS CLI
<a name="api-reference-deploy-v3"></a>

Di bagian ini, Anda akan belajar cara menyebarkan dengan AWS CLI.

Konfigurasikan AWS Kredensyal yang akan digunakan dengan CLI jika Anda belum melakukannya.

```
$ aws configure
```

Jalankan perintah berikut untuk menerapkan API:

```
$ REGION=<region>
$ API_STACK_NAME=<stack-name>  # This can be any name
$ VERSION=3.15.0
$ aws cloudformation create-stack \
    --region ${REGION} \
    --stack-name ${API_STACK_NAME} \
    --template-url https://${REGION}-aws-parallelcluster.s3.${REGION}.amazonaws.com/parallelcluster/${VERSION}/api/parallelcluster-api.yaml \
    --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND
$ aws cloudformation wait stack-create-complete --stack-name ${API_STACK_NAME} --region ${REGION}
```

**Sesuaikan penerapan Anda**

Anda dapat menggunakan CloudFormation parameter yang diekspos oleh template untuk menyesuaikan penerapan API. Untuk mengonfigurasi nilai parameter saat Anda menerapkan melalui CLI, opsi berikut dapat digunakan:. `--parameters ParameterKey=KeyName,ParameterValue=Value` 

Parameter berikut ini bersifat opsional:
+ **Region** - Gunakan `Region` parameter untuk menentukan apakah API mampu mengontrol sumber daya di semua Wilayah AWS (default) atau dalam satu Wilayah AWS. Tetapkan nilai ini Wilayah AWS ke API yang sedang digunakan untuk membatasi akses.
+ **ParallelClusterFunctionRole**- Ini mengesampingkan peran IAM yang ditugaskan ke AWS Lambda fungsi yang mengimplementasikan fitur. AWS ParallelCluster Parameter menerima ARN dari peran IAM. Peran ini perlu dikonfigurasi untuk memiliki AWS Lambda sebagai kepala sekolah IAM. Selain itu, karena peran ini akan menggantikan peran default dari fungsi API Lambda, peran ini harus memiliki setidaknya izin default yang diperlukan oleh API seperti yang tercantum dalam. [AWS ParallelCluster contoh kebijakan `pcluster` pengguna](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-example-user-policies)
+ **ParallelClusterFunctionAdditionalPolicies**- ARN dari kebijakan IAM tambahan yang akan dilampirkan ke peran fungsi AWS ParallelCluster API. Hanya satu kebijakan yang dapat ditentukan.
+ **CustomDomainName,CustomDomainCertificate, CustomDomainHostedZoneId** - Gunakan parameter ini untuk menyetel domain khusus untuk titik akhir Amazon API Gateway. `CustomDomainName`adalah nama domain yang akan digunakan, `CustomDomainCertificate` adalah ARN dari sertifikat AWS terkelola untuk nama domain ini dan `CustomDomainHostedZoneId` merupakan ID dari zona yang dihosting [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) tempat Anda ingin membuat catatan.
**Awas**  
Anda dapat mengonfigurasi pengaturan domain khusus untuk menerapkan versi minimum Transport Layer Security (TLS) untuk API. Untuk informasi selengkapnya, lihat [Memilih versi TLS minimum untuk domain kustom di API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-custom-domain-tls-version.html).
+ **EnableIamAdminAccess**- Secara default AWS Lambda fungsi yang memproses operasi AWS ParallelCluster API dikonfigurasi dengan peran IAM yang mencegah akses IAM () yang memiliki hak istimewa. `EnableIamAdminAccess=false` Hal ini membuat API tidak dapat memproses operasi yang memerlukan pembuatan peran atau kebijakan IAM. Karena itu, pembuatan cluster atau gambar khusus hanya berhasil ketika peran IAM disediakan sebagai input sebagai bagian dari konfigurasi sumber daya. 

  Kapan `EnableIamAdminAccess` disetel `true` ke AWS ParallelCluster API diberikan izin untuk mengelola pembuatan peran IAM yang diperlukan untuk menyebarkan cluster atau membuat kustom. AMIs 
**Awas**  
Ketika ini disetel ke true, ia memberikan hak istimewa admin IAM ke AWS Lambda fungsi yang memproses operasi. AWS ParallelCluster 

  Lihat [AWS ParallelCluster kebijakan contoh pengguna untuk mengelola sumber daya IAM](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-user-policy-manage-iam) untuk detail tambahan tentang fitur yang dapat dibuka kuncinya saat Anda mengaktifkan mode ini.
+ **PermissionsBoundaryPolicy**- Parameter opsional ini menerima ARN kebijakan IAM yang ada yang akan ditetapkan sebagai batas izin untuk semua peran IAM yang dibuat oleh infrastruktur API PC dan sebagai syarat pada izin IAM administratif sehingga hanya peran dengan kebijakan ini yang dapat dibuat oleh PC API.

  Lihat [Mode `PermissionsBoundary`](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-permissionsboundary-mode) untuk rincian tambahan tentang pembatasan yang diberlakukan oleh mode ini.
+ **CreateApiUserRole**- Secara default, penerapan AWS ParallelCluster API mencakup pembuatan peran IAM yang ditetapkan sebagai satu-satunya peran yang diizinkan untuk memanggil API. Titik akhir Amazon API Gateway dikonfigurasi dengan kebijakan berbasis sumber daya untuk memberikan izin pemanggilan hanya kepada pengguna yang dibuat. Untuk mengubah ini, atur `CreateApiUserRole=false` lalu berikan akses API ke pengguna IAM yang dipilih. Untuk informasi selengkapnya, lihat [Mengontrol akses untuk menjalankan API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html) di *Panduan Pengembang Amazon API Gateway*.
**Awas**  
Jika `CreateApiUserRole=true` akses ke titik akhir API tidak dibatasi oleh kebijakan sumber daya Amazon API Gateway, semua peran IAM yang memiliki izin tidak dibatasi dapat `execute-api:Invoke` mengakses fitur. AWS ParallelCluster Untuk informasi selengkapnya, lihat [Mengontrol akses ke API dengan kebijakan sumber daya API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies.html) di *Panduan Pengembang API Gateway*.
**Awas**  
`ParallelClusterApiUserRole`Memiliki izin untuk memanggil semua operasi AWS ParallelCluster API. Untuk membatasi akses ke subset resource API, lihat [Kontrol yang dapat memanggil metode API Gateway API dengan kebijakan IAM](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html#api-gateway-who-can-invoke-an-api-method-using-iam-policies) di Panduan Pengembang *API Gateway*.
+ **IAMRoleAndPolicyPrefix**- Parameter opsional ini menerima string yang berisi maksimal 10 karakter yang akan digunakan sebagai awalan untuk kedua peran IAM dan kebijakan yang dibuat sebagai bagian dari infrastruktur API PC.

# Memperbarui API
<a name="api-reference-update-v3"></a>

Di bagian ini, Anda akan belajar cara menggunakan salah satu dari dua opsi yang tersedia untuk memperbarui API.

**Upgrade ke versi yang lebih baru AWS ParallelCluster **

Opsi 1: Untuk menghapus API yang ada, hapus CloudFormation tumpukan yang sesuai dan terapkan API baru seperti yang ditunjukkan di atas.

Opsi 2: Untuk memperbarui API yang ada, jalankan perintah berikut: 

```
$ REGION=<region>
$ API_STACK_NAME=<stack-name>  # This needs to correspond to the existing API stack name
$ VERSION=3.15.0
$ aws cloudformation update-stack \
    --region ${REGION} \
    --stack-name ${API_STACK_NAME} \
    --template-url https://${REGION}-aws-parallelcluster.s3.${REGION}.amazonaws.com/parallelcluster/${VERSION}/api/parallelcluster-api.yaml \
    --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND
$ aws cloudformation wait stack-update-complete --stack-name ${API_STACK_NAME} --region ${REGION}
```

# Memanggil API AWS ParallelCluster
<a name="api-reference-invoke-v3"></a>

Titik akhir AWS ParallelCluster Amazon API Gateway dikonfigurasi dengan [jenis `AWS_IAM` otorisasi](https://docs.aws.amazon.com/apigateway/latest/developerguide/permissions.html#api-gateway-control-access-iam-permissions-model-for-calling-api), dan mengharuskan semua permintaan ditandatangani SigV4 dengan kredenal IAM yang valid (referensi [API](https://docs.aws.amazon.com/apigateway/api-reference/making-http-requests/): membuat permintaan http). 

Saat diterapkan dengan pengaturan default, izin pemanggilan API hanya diberikan kepada pengguna IAM default yang dibuat dengan API. 

Untuk mengambil ARN pengguna IAM default, jalankan: 

```
$ REGION=<region>
$ API_STACK_NAME=<stack-name>
$ aws cloudformation describe-stacks --region ${REGION} --stack-name ${API_STACK_NAME} --query "Stacks[0].Outputs[?OutputKey=='ParallelClusterApiUserRole'].OutputValue" --output text
```

[Untuk mendapatkan kredensyal sementara untuk pengguna IAM default, jalankan perintah STS. AssumeRole](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/assume-role.html)

Untuk mengambil endpoint AWS ParallelCluster API, jalankan perintah berikut: 

```
$ REGION=<region>
$ API_STACK_NAME=<stack-name>
$ aws cloudformation describe-stacks --region ${REGION} --stack-name ${API_STACK_NAME} --query "Stacks[0].Outputs[?OutputKey=='ParallelClusterApiInvokeUrl'].OutputValue" --output text
```

 AWS ParallelCluster API dapat dipanggil oleh klien HTTP mana pun yang sesuai dengan spesifikasi OpenAPI yang dapat ditemukan di sini: 

```
https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/ParallelCluster.openapi.yaml
```

[Permintaan harus ditandatangani SigV4 seperti yang didokumentasikan di sini.](https://docs.aws.amazon.com/apigateway/api-reference/signing-requests) 

Saat ini, kami tidak menawarkan implementasi klien API resmi apa pun. Namun, Anda dapat menggunakan [OpenAPI Generator](https://openapi-generator.tech/) untuk dengan mudah menghasilkan klien API dari model OpenAPI. Setelah klien dibuat, penandatanganan SigV4 perlu ditambahkan jika tidak disediakan di luar kotak. 

[Implementasi referensi untuk klien API Python dapat ditemukan di repositori.AWS ParallelCluster](https://github.com/aws/aws-parallelcluster/tree/develop/api/client/src) Untuk mempelajari lebih lanjut tentang bagaimana Anda dapat menggunakan klien API Python, lihat tutorialnya. [Menggunakan AWS ParallelCluster API](tutorials_06_API_use.md)

[Untuk menerapkan mekanisme kontrol akses yang lebih canggih, seperti Amazon Cognito atau Lambda Authorizers, atau untuk lebih melindungi API dengan AWS WAF atau kunci API, ikuti dokumentasi Amazon API Gateway.](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-to-api.html) 

**Awas**  
Pengguna IAM yang diberi wewenang untuk menjalankan AWS ParallelCluster API, secara tidak langsung dapat mengontrol semua AWS sumber daya yang dikelola oleh AWS ParallelCluster di. Akun AWS Ini termasuk pembuatan AWS sumber daya yang tidak dapat dikontrol pengguna secara langsung karena pembatasan kebijakan IAM pengguna. Misalnya, pembuatan AWS ParallelCluster klaster, tergantung pada konfigurasinya, mungkin termasuk penyebaran instans Amazon EC2, Amazon Route 53, sistem file Amazon Elastic File System, sistem file FSx Amazon, peran IAM, dan sumber daya Layanan AWS dari sumber lain yang AWS ParallelCluster digunakan oleh pengguna yang mungkin tidak memiliki kontrol langsung atas.

**Awas**  
Saat Anda membuat klaster dengan `AdditionalIamPolicies` ditentukan dalam konfigurasi, kebijakan tambahan harus cocok dengan salah satu pola berikut:  

```
- !Sub arn:${AWS::Partition}:iam::${AWS::AccountId}:policy/parallelcluster*
- !Sub arn:${AWS::Partition}:iam::${AWS::AccountId}:policy/parallelcluster/*
- !Sub arn:${AWS::Partition}:iam::aws:policy/CloudWatchAgentServerPolicy
- !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonSSMManagedInstanceCore
- !Sub arn:${AWS::Partition}:iam::aws:policy/AWSBatchFullAccess
- !Sub arn:${AWS::Partition}:iam::aws:policy/AmazonS3ReadOnlyAccess
- !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSBatchServiceRole
- !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role
- !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy
- !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole
- !Sub arn:${AWS::Partition}:iam::aws:policy/EC2InstanceProfileForImageBuilder
- !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
```
Jika Anda memerlukan kebijakan tambahan lainnya, Anda dapat melakukan salah satu hal berikut:  
Edit `DefaultParallelClusterIamAdminPolicy` di:  

  ```
  https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/parallelcluster-api.yaml
  ```
Tambahkan kebijakan di `ArnLike/iam:PolicyARN` bagian.
Jangan tentukan kebijakan `AdditionalIamPolicies` dalam file konfigurasi dan tambahkan kebijakan secara manual ke Peran AWS ParallelCluster Instance yang dibuat dalam klaster.

# Mengakses log dan metrik API
<a name="api-reference-access-v3"></a>

Log API dipublikasikan ke Amazon CloudWatch dengan retensi 30 hari. Untuk mengambil LogGroup nama yang terkait dengan penerapan API, jalankan perintah berikut: 

```
$ REGION=<region>
$ API_STACK_NAME=<stack-name>
$ aws cloudformation describe-stacks --region ${REGION} --stack-name ${API_STACK_NAME} --query "Stacks[0].Outputs[?OutputKey=='ParallelClusterLambdaLogGroup'].OutputValue" --output text
```

Metrik Lambda, log, dan log [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)pelacakan juga dapat diakses melalui konsol Lambda. Untuk mengambil ARN fungsi Lambda yang terkait dengan penerapan API, jalankan perintah berikut: 

```
$ REGION=<region>
$ API_STACK_NAME=<stack-name>
$ aws cloudformation describe-stacks --region ${REGION} --stack-name ${API_STACK_NAME} --query "Stacks[0].Outputs[?OutputKey=='ParallelClusterLambdaArn'].OutputValue" --output text
```