

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

**Che cos'è l'API AWS ParallelCluster ?**

AWS ParallelCluster L'API è un'applicazione serverless che, una volta implementata Account AWS, fornisce l'accesso programmatico alle AWS ParallelCluster funzionalità tramite un'API. 

AWS ParallelCluster L'API è distribuita come [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)modello autonomo che include un endpoint [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html), che espone le AWS ParallelCluster funzionalità, e una [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)funzione che si occupa dell'elaborazione delle funzionalità richiamate. 

L'immagine seguente mostra un diagramma di architettura di alto livello dell'infrastruttura API. AWS ParallelCluster 

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

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

Il file delle specifiche OpenAPI che descrive l' AWS ParallelCluster API può essere scaricato da: 

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

A partire dal file delle specifiche OpenAPI, puoi utilizzare uno dei tanti strumenti disponibili come [Swagger UI](https://swagger.io/tools/swagger-ui/) o [Redoc](https://github.com/Redocly/redoc) per generare documentazione per l'API. AWS ParallelCluster 

**Come implementare l'API AWS ParallelCluster **

Per implementare AWS ParallelCluster l'API devi essere un amministratore di. Account AWS

Il modello utilizzato per distribuire l'API è disponibile al seguente URL:

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

dove `<REGION>` è il Regione AWS luogo in cui deve essere distribuita l'API ed `<VERSION>` è la AWS ParallelCluster versione (ad esempio 3.15.0). 

AWS Lambda utilizza un'interfaccia di livello Lambda con [AWS ParallelCluster API della libreria Python](pc-py-library-v3.md) per elaborare le funzionalità richiamate dall'API.

**avvertimento**  
Qualsiasi utente in Account AWS, che dispone di accesso privilegiato ai AWS Lambda servizi Amazon API Gateway, eredita automaticamente le autorizzazioni per AWS ParallelCluster amministrare le risorse API.

# Implementa l'API con AWS ParallelCluster AWS CLI
<a name="api-reference-deploy-v3"></a>

In questa sezione, imparerai come eseguire la distribuzione con. AWS CLI

Configura AWS le credenziali da utilizzare con la CLI se non l'hai già fatto.

```
$ aws configure
```

Esegui i seguenti comandi per distribuire l'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}
```

**Personalizza la tua implementazione**

Puoi utilizzare i CloudFormation parametri esposti dal modello per personalizzare la distribuzione dell'API. Per configurare il valore di un parametro durante la distribuzione tramite la CLI, è possibile utilizzare la seguente opzione:. `--parameters ParameterKey=KeyName,ParameterValue=Value` 

I parametri seguenti sono facoltativi:
+ **Regione**: utilizza il `Region` parametro per specificare se l'API è in grado di controllare tutte le risorse Regioni AWS (impostazione predefinita) o singolarmente. Regione AWS Imposta questo valore Regione AWS sull'API su cui viene distribuita per limitare l'accesso.
+ **ParallelClusterFunctionRole**- Questo sostituisce il ruolo IAM assegnato alla AWS Lambda funzione che implementa le funzionalità. AWS ParallelCluster Il parametro accetta l'ARN di un ruolo IAM. Questo ruolo deve essere configurato per essere utilizzato AWS Lambda come principale IAM. Inoltre, poiché questo ruolo sostituirà il ruolo predefinito della funzione API Lambda, deve disporre almeno delle autorizzazioni predefinite richieste dall'API come elencato in. [AWS ParallelCluster esempi di politiche `pcluster` utente](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-example-user-policies)
+ **ParallelClusterFunctionAdditionalPolicies**- ARN della policy IAM aggiuntiva da allegare al ruolo della funzione AWS ParallelCluster API. È possibile specificare una sola politica.
+ **CustomDomainName,CustomDomainCertificate, CustomDomainHostedZoneId** - Utilizza questi parametri per impostare un dominio personalizzato per l'endpoint Amazon API Gateway. `CustomDomainName`è il nome del dominio da utilizzare, `CustomDomainCertificate` è l'ARN di un certificato AWS gestito per questo nome di dominio ed `CustomDomainHostedZoneId` è l'ID della zona ospitata di [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) in cui desideri creare record.
**avvertimento**  
Puoi configurare impostazioni di dominio personalizzate per applicare una versione minima di Transport Layer Security (TLS) per l'API. Per ulteriori informazioni, consulta [Scelta di una versione TLS minima per un dominio personalizzato in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-custom-domain-tls-version.html).
+ **EnableIamAdminAccess**- Per impostazione predefinita, la AWS Lambda funzione che elabora le operazioni AWS ParallelCluster API è configurata con un ruolo IAM che impedisce qualsiasi accesso IAM privilegiato ()`EnableIamAdminAccess=false`. Ciò rende l'API incapace di elaborare operazioni che richiedono la creazione di ruoli o politiche IAM. Per questo motivo, la creazione di cluster o immagini personalizzate ha esito positivo solo quando i ruoli IAM vengono forniti come input come parte della configurazione delle risorse. 

  Quando `EnableIamAdminAccess` è impostata `true` sull' AWS ParallelCluster API, vengono concesse le autorizzazioni per gestire la creazione dei ruoli IAM necessari per distribuire cluster o generare contenuti personalizzati. AMIs 
**avvertimento**  
Quando è impostato su true, concede i privilegi di amministratore IAM alla funzione che elabora le AWS Lambda operazioni. AWS ParallelCluster 

  Fai riferimento a [AWS ParallelCluster esempi di politiche utente per la gestione delle risorse IAM](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-user-policy-manage-iam) per ulteriori dettagli sulle funzionalità che possono essere sbloccate quando abiliti questa modalità.
+ **PermissionsBoundaryPolicy**- Questo parametro opzionale accetta un ARN della policy IAM esistente che verrà impostato come limite di autorizzazioni per tutti i ruoli IAM creati dall'infrastruttura API PC e come condizione per le autorizzazioni amministrative IAM in modo che solo i ruoli con questa policy possano essere creati dall'API PC.

  [Modalità `PermissionsBoundary`](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-permissionsboundary-mode)Per ulteriori dettagli sulle restrizioni imposte da questa modalità, fare riferimento a.
+ **CreateApiUserRole**- Per impostazione predefinita, l'implementazione dell' AWS ParallelCluster API include la creazione di un ruolo IAM impostato come unico ruolo autorizzato a richiamare l'API. L'endpoint Amazon API Gateway è configurato con una policy basata sulle risorse per concedere l'autorizzazione di richiamo solo all'utente creato. Per modificare questa impostazione, imposta `CreateApiUserRole=false` e quindi concedi l'accesso all'API a utenti IAM selezionati. Per ulteriori informazioni, consulta [Controllare l'accesso per richiamare un'API nella Amazon API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html) *Gateway Developer Guide*.
**avvertimento**  
Quando `CreateApiUserRole=true` l'accesso all'endpoint API non è limitato dalle policy delle risorse di Amazon API Gateway, tutti i ruoli IAM che dispongono di `execute-api:Invoke` autorizzazioni non vincolate possono accedere alle funzionalità. AWS ParallelCluster Per ulteriori informazioni, consulta [Controllare l'accesso a un'API con le policy delle risorse di API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies.html) nella *API Gateway Developer Guide*.
**avvertimento**  
`ParallelClusterApiUserRole`È autorizzato a richiamare tutte le operazioni AWS ParallelCluster API. Per limitare l'accesso a un sottoinsieme di risorse API, consulta il [metodo API Control who can call an API Gateway with IAM policies](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) nella *API Gateway Developer Guide*.
+ **IAMRoleAndPolicyPrefix**- Questo parametro opzionale accetta una stringa contenente un massimo di 10 caratteri che verrà utilizzata come prefisso sia per i ruoli IAM che per le policy create come parte dell'infrastruttura API PC.

# Aggiornamento dell'API
<a name="api-reference-update-v3"></a>

In questa sezione, imparerai come utilizzare una delle due opzioni disponibili per aggiornare l'API.

**Aggiornamento a una versione più recente AWS ParallelCluster **

Opzione 1: per rimuovere l'API esistente, elimina lo CloudFormation stack corrispondente e distribuisci la nuova API come mostrato sopra.

Opzione 2: per aggiornare l'API esistente, esegui i seguenti comandi: 

```
$ 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}
```

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

L'endpoint AWS ParallelCluster Amazon API Gateway è configurato con un [tipo di `AWS_IAM` autorizzazione](https://docs.aws.amazon.com/apigateway/latest/developerguide/permissions.html#api-gateway-control-access-iam-permissions-model-for-calling-api) e richiede che tutte le richieste siano firmate SigV4 con credenziali IAM valide ([riferimento API: creazione](https://docs.aws.amazon.com/apigateway/api-reference/making-http-requests/) di richieste http). 

Se distribuito con impostazioni predefinite, le autorizzazioni di richiamo dell'API vengono concesse solo all'utente IAM predefinito creato con l'API. 

Per recuperare l'ARN dell'utente IAM predefinito, esegui: 

```
$ 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
```

[Per ottenere credenziali temporanee per l'utente IAM predefinito, esegui il comando STS. AssumeRole](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/assume-role.html)

Per recuperare l'endpoint dell' AWS ParallelCluster API esegui il seguente comando: 

```
$ 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
```

L' AWS ParallelCluster API può essere richiamata da qualsiasi client HTTP conforme alle specifiche OpenAPI disponibili qui: 

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

[Le richieste devono essere firmate con SigV4 come documentato qui.](https://docs.aws.amazon.com/apigateway/api-reference/signing-requests) 

Al momento, non offriamo alcuna implementazione ufficiale del client API. Tuttavia, puoi utilizzare [OpenAPI Generator](https://openapi-generator.tech/) per generare facilmente client API dal modello OpenAPI. Una volta generato il client, è necessario aggiungere la firma SigV4, se non fornita immediatamente. 

[Un'implementazione di riferimento per un client API Python è disponibile nel AWS ParallelCluster repository.](https://github.com/aws/aws-parallelcluster/tree/develop/api/client/src) Per saperne di più su come utilizzare il client API Python, consulta il [Utilizzo dell' AWS ParallelCluster API](tutorials_06_API_use.md) tutorial.

[Per implementare meccanismi di controllo degli accessi più avanzati, come Amazon Cognito o Lambda Authorizers, o per proteggere ulteriormente l'API con le nostre chiavi API, segui la AWS WAF documentazione di Amazon API Gateway.](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-to-api.html) 

**avvertimento**  
Un utente IAM autorizzato a richiamare l' AWS ParallelCluster API può controllare indirettamente tutte le AWS risorse gestite da in. AWS ParallelCluster Account AWS Ciò include la creazione di AWS risorse che l'utente non può controllare direttamente a causa delle restrizioni sulla politica IAM dell'utente. Ad esempio, la creazione di un AWS ParallelCluster cluster, a seconda della sua configurazione, potrebbe includere la distribuzione di istanze Amazon EC2, Amazon Route 53, file system Amazon Elastic File System, file system Amazon FSx , ruoli IAM e risorse di altri Servizi AWS utenti su AWS ParallelCluster cui l'utente potrebbe non avere il controllo diretto.

**avvertimento**  
Quando crei un cluster con una configurazione `AdditionalIamPolicies` specificata, le politiche aggiuntive devono corrispondere a uno dei seguenti modelli:  

```
- !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
```
Se sono necessarie altre politiche aggiuntive, è possibile effettuare una delle seguenti operazioni:  
Modifica il file `DefaultParallelClusterIamAdminPolicy` in:  

  ```
  https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/parallelcluster-api.yaml
  ```
Aggiungi la politica nella `ArnLike/iam:PolicyARN` sezione.
Non specificate le policy per `AdditionalIamPolicies` nel file di configurazione e aggiungete manualmente le policy all' AWS ParallelCluster Instance Role creato all'interno del cluster.

# Accesso ai log e alle metriche dell'API
<a name="api-reference-access-v3"></a>

I log delle API vengono pubblicati su Amazon CloudWatch con una conservazione di 30 giorni. Per recuperare il LogGroup nome associato a una distribuzione API, esegui il seguente comando: 

```
$ 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
```

È possibile accedere alle metriche, ai log e ai log di [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)traccia Lambda anche tramite la console Lambda. Per recuperare l'ARN della funzione Lambda associata a una distribuzione API, esegui il comando seguente: 

```
$ 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
```