

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

**Qu'est-ce que AWS ParallelCluster l'API ?**

AWS ParallelCluster L'API est une application sans serveur qui, une fois déployée sur votre ordinateur Compte AWS, fournit un accès programmatique aux AWS ParallelCluster fonctionnalités via une API. 

AWS ParallelCluster L'API est distribuée sous la forme d'un [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)modèle autonome qui inclut un point de terminaison [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html), qui expose les AWS ParallelCluster fonctionnalités, et une [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)fonction, qui prend en charge le traitement des fonctionnalités invoquées. 

L'image suivante montre un schéma d'architecture de haut niveau de l'infrastructure d' AWS ParallelCluster API.

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

## AWS ParallelCluster Documentation de l'API
<a name="api-reference-documentation-v3"></a>

Le fichier de spécification OpenAPI qui décrit l' AWS ParallelCluster API peut être téléchargé à l'adresse suivante : 

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

À partir du fichier de spécification OpenAPI, vous pouvez utiliser l'un des nombreux outils disponibles tels que [Swagger UI](https://swagger.io/tools/swagger-ui/) ou [Redoc](https://github.com/Redocly/redoc) pour générer la documentation de l'API. AWS ParallelCluster 

**Comment déployer une AWS ParallelCluster API**

Pour déployer AWS ParallelCluster l'API, vous devez être administrateur du Compte AWS. 

Le modèle utilisé pour déployer l'API est disponible à l'adresse URL suivante :

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

où `<REGION>` est l' Région AWS endroit où l'API doit être déployée et quelle `<VERSION>` est la AWS ParallelCluster version (par exemple 3.15.0). 

AWS Lambda utilise une interface de couche Lambda avec [AWS ParallelCluster API de bibliothèque Python](pc-py-library-v3.md) pour traiter les fonctionnalités invoquées par l'API.

**Avertissement**  
Tout utilisateur du Compte AWS, qui dispose d'un accès privilégié aux AWS Lambda services Amazon API Gateway, hérite automatiquement des autorisations nécessaires pour administrer les ressources de AWS ParallelCluster l'API.

# Déployez l' AWS ParallelCluster API avec AWS CLI
<a name="api-reference-deploy-v3"></a>

Dans cette section, vous allez apprendre à déployer avec AWS CLI.

Configurez les AWS informations d'identification à utiliser avec la CLI si ce n'est déjà fait.

```
$ aws configure
```

Exécutez les commandes suivantes pour déployer 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}
```

**Personnalisez votre déploiement**

Vous pouvez utiliser les CloudFormation paramètres exposés par le modèle pour personnaliser le déploiement de l'API. Pour configurer la valeur d'un paramètre lors du déploiement via la CLI, l'option suivante peut être utilisée :`--parameters ParameterKey=KeyName,ParameterValue=Value`. 

Les paramètres suivants sont facultatifs :
+ **Région** : utilisez le `Region` paramètre pour spécifier si l'API est capable de contrôler les ressources dans toutes Régions AWS (par défaut) ou dans une seule Région AWS. Définissez cette valeur sur Région AWS l'API sur laquelle l'API est déployée afin de restreindre l'accès.
+ **ParallelClusterFunctionRole**- Cela remplace le rôle IAM attribué à la AWS Lambda fonction qui implémente AWS ParallelCluster les fonctionnalités. Le paramètre accepte l'ARN d'un rôle IAM. Ce rôle doit être configuré pour être utilisé AWS Lambda en tant que principal IAM. De plus, étant donné que ce rôle remplacera le rôle par défaut de la fonction Lambda de l'API, il doit disposer au moins des autorisations par défaut requises par l'API, comme indiqué dans. [AWS ParallelCluster exemples de politiques `pcluster` utilisateur](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-example-user-policies)
+ **ParallelClusterFunctionAdditionalPolicies**- ARN de la politique IAM supplémentaire à associer au rôle de fonction AWS ParallelCluster API. Une seule politique peut être spécifiée.
+ **CustomDomainName,CustomDomainCertificate, CustomDomainHostedZoneId** - Utilisez ces paramètres pour définir un domaine personnalisé pour le point de terminaison Amazon API Gateway. `CustomDomainName`est le nom du domaine à utiliser, `CustomDomainCertificate` l'ARN d'un certificat AWS géré pour ce nom de domaine et `CustomDomainHostedZoneId` l'ID de la zone hébergée [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) dans laquelle vous souhaitez créer des enregistrements.
**Avertissement**  
Vous pouvez configurer des paramètres de domaine personnalisés pour appliquer une version minimale du protocole TLS (Transport Layer Security) pour l'API. Pour plus d'informations, consultez [Choisir une version minimale de TLS pour un domaine personnalisé dans API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-custom-domain-tls-version.html).
+ **EnableIamAdminAccess**- Par défaut, la AWS Lambda fonction qui traite les opérations d' AWS ParallelCluster API est configurée avec un rôle IAM qui empêche tout accès IAM privilégié ()`EnableIamAdminAccess=false`. Cela rend l'API incapable de traiter les opérations qui nécessitent la création de rôles ou de politiques IAM. De ce fait, la création de clusters ou d'images personnalisées n'est réussie que lorsque des rôles IAM sont fournis en entrée dans le cadre de la configuration des ressources. 

  Lorsque cette `EnableIamAdminAccess` option est définie `true` sur l' AWS ParallelCluster API, des autorisations sont accordées pour gérer la création des rôles IAM nécessaires au déploiement de clusters ou à la génération de clusters personnalisés AMIs. 
**Avertissement**  
Lorsque ce paramètre est défini sur true, il accorde des privilèges d'administrateur IAM à la AWS Lambda fonction qui traite les AWS ParallelCluster opérations. 

  Reportez-vous à [AWS ParallelCluster exemples de politiques utilisateur pour la gestion des ressources IAM](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-user-policy-manage-iam) pour plus de détails sur les fonctionnalités qui peuvent être déverrouillées lorsque vous activez ce mode.
+ **PermissionsBoundaryPolicy**- Ce paramètre facultatif accepte un ARN de politique IAM existant qui sera défini comme limite d'autorisations pour tous les rôles IAM créés par l'infrastructure API PC et comme condition des autorisations IAM administratives afin que seuls les rôles dotés de cette politique puissent être créés par l'API PC.

  Reportez-vous à [Mode `PermissionsBoundary`](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-permissionsboundary-mode) pour plus de détails sur les restrictions imposées par ce mode.
+ **CreateApiUserRole**- Par défaut, le déploiement de l' AWS ParallelCluster API inclut la création d'un rôle IAM défini comme le seul rôle autorisé à appeler l'API. Le point de terminaison Amazon API Gateway est configuré avec une politique basée sur les ressources pour accorder l'autorisation d'appel uniquement à l'utilisateur créé. Pour modifier cela, définissez `CreateApiUserRole=false` puis accordez l'accès à l'API aux utilisateurs IAM sélectionnés. Pour plus d'informations, consultez la section [Contrôler l'accès pour appeler une API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html) dans le manuel *Amazon API Gateway Developer Guide*.
**Avertissement**  
Lorsque l'`CreateApiUserRole=true`accès au point de terminaison de l'API n'est pas limité par les politiques de ressources d'Amazon API Gateway, tous les rôles IAM dotés d'`execute-api:Invoke`autorisations illimitées peuvent accéder aux fonctionnalités. AWS ParallelCluster Pour plus d'informations, consultez la section [Contrôle de l'accès à une API à l'aide des politiques de ressources](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies.html) d'*API Gateway dans le Guide du développeur d'API Gateway*.
**Avertissement**  
`ParallelClusterApiUserRole`est autorisé à invoquer toutes les opérations AWS ParallelCluster d'API. Pour restreindre l'accès à un sous-ensemble de ressources d'API, consultez la [méthode Control who can call an API Gateway API gateway avec des politiques 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) dans le guide du *développeur d'API Gateway*.
+ **IAMRoleAndPolicyPrefix**- Ce paramètre facultatif accepte une chaîne contenant un maximum de 10 caractères qui sera utilisée comme préfixe pour les rôles IAM et les politiques créés dans le cadre de l'infrastructure de l'API PC.

# Mettre à jour l'API
<a name="api-reference-update-v3"></a>

Dans cette section, vous allez apprendre à utiliser l'une des deux options disponibles pour mettre à jour l'API.

**Mise à niveau vers une AWS ParallelCluster version plus récente**

Option 1 : pour supprimer l'API existante, supprimez la CloudFormation pile correspondante et déployez la nouvelle API comme indiqué ci-dessus.

Option 2 : pour mettre à jour l'API existante, exécutez les commandes suivantes : 

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

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

Le point de terminaison AWS ParallelCluster Amazon API Gateway est configuré avec un [type `AWS_IAM` d'autorisation](https://docs.aws.amazon.com/apigateway/latest/developerguide/permissions.html#api-gateway-control-access-iam-permissions-model-for-calling-api) et nécessite que toutes les demandes soient signées au format SigV4 avec des informations d'identification IAM valides ([référence API : envoi de requêtes http](https://docs.aws.amazon.com/apigateway/api-reference/making-http-requests/)). 

Lorsqu'elles sont déployées avec les paramètres par défaut, les autorisations d'appel d'API ne sont accordées qu'à l'utilisateur IAM par défaut créé avec l'API. 

Pour récupérer l'ARN de l'utilisateur IAM par défaut, exécutez : 

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

Pour obtenir des informations d'identification temporaires pour l'utilisateur IAM par défaut, exécutez la AssumeRole commande [STS](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/assume-role.html).

Pour récupérer le point de terminaison de l' AWS ParallelCluster API, exécutez la commande suivante : 

```
$ 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 peut être invoquée par n'importe quel client HTTP conforme aux spécifications OpenAPI disponibles ici : 

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

Les demandes doivent être signées au format SigV4, comme indiqué [ici.](https://docs.aws.amazon.com/apigateway/api-reference/signing-requests) 

Pour le moment, nous ne proposons aucune implémentation client API officielle. Cependant, vous pouvez utiliser le [générateur OpenAPI](https://openapi-generator.tech/) pour générer facilement des clients d'API à partir du modèle OpenAPI. Une fois le client généré, la signature SigV4 doit être ajoutée si elle n'est pas fournie par défaut. 

Une implémentation de référence pour un client d'API Python se trouve dans le [AWS ParallelCluster référentiel](https://github.com/aws/aws-parallelcluster/tree/develop/api/client/src). Pour en savoir plus sur l'utilisation du client API Python, consultez le [Utilisation de l' AWS ParallelCluster API](tutorials_06_API_use.md) didacticiel.

[Pour mettre en œuvre des mécanismes de contrôle d'accès plus avancés, tels qu'Amazon Cognito ou Lambda Authorizers, ou pour protéger davantage l'API avec AWS WAF des clés d'API, consultez la documentation Amazon API Gateway.](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-to-api.html) 

**Avertissement**  
Un utilisateur IAM autorisé à invoquer l' AWS ParallelCluster API peut contrôler indirectement toutes les AWS ressources gérées par AWS ParallelCluster le Compte AWS. Cela inclut la création de AWS ressources que l'utilisateur ne peut pas contrôler directement en raison des restrictions de la politique IAM de l'utilisateur. Par exemple, la création d'un AWS ParallelCluster cluster, en fonction de sa configuration, peut inclure le déploiement d'instances Amazon EC2, d'Amazon Route 53, de systèmes de fichiers Amazon Elastic File System, de systèmes de FSx fichiers Amazon, de rôles IAM et de ressources provenant d'autres applications Services AWS sur AWS ParallelCluster lesquelles l'utilisateur n'a peut-être aucun contrôle direct.

**Avertissement**  
Lorsque vous créez un cluster avec des paramètres `AdditionalIamPolicies` spécifiés dans la configuration, les politiques supplémentaires doivent correspondre à l'un des modèles suivants :  

```
- !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
```
Si vous avez besoin d'autres politiques supplémentaires, vous pouvez effectuer l'une des opérations suivantes :  
Modifiez le `DefaultParallelClusterIamAdminPolicy` dans :  

  ```
  https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/parallelcluster-api.yaml
  ```
Ajoutez la politique dans la `ArnLike/iam:PolicyARN` section.
Ne spécifiez pas de politiques `AdditionalIamPolicies` dans le fichier de configuration et ajoutez manuellement des politiques au rôle d' AWS ParallelCluster instance créé dans le cluster.

# Accès aux journaux et aux métriques de l'API
<a name="api-reference-access-v3"></a>

Les journaux d'API sont publiés sur Amazon CloudWatch avec une durée de conservation de 30 jours. Pour récupérer le LogGroup nom associé à un déploiement d'API, exécutez la commande suivante : 

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

Les métriques Lambda, les journaux et les journaux de [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)suivi sont également accessibles via la console Lambda. Pour récupérer l'ARN de la fonction Lambda associée à un déploiement d'API, exécutez la commande suivante : 

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