

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

**¿Qué es la AWS ParallelCluster API?**

AWS ParallelCluster La API es una aplicación sin servidor que, una vez implementada Cuenta de AWS, proporciona acceso programático a las AWS ParallelCluster funciones a través de una API. 

AWS ParallelCluster La API se distribuye como una [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)plantilla independiente que incluye un punto de enlace de [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html), que expone AWS ParallelCluster las características, y una [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)función que se encarga de procesar las características invocadas. 

La siguiente imagen muestra un diagrama de arquitectura de alto nivel de la infraestructura de la AWS ParallelCluster API.

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

## AWS ParallelCluster Documentación de la API
<a name="api-reference-documentation-v3"></a>

El archivo de especificaciones de OpenAPI que describe la AWS ParallelCluster API se puede descargar desde: 

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

A partir del archivo de especificaciones de OpenAPI, puede utilizar una de las muchas herramientas disponibles, como [Swagger UI](https://swagger.io/tools/swagger-ui/) o [Redoc](https://github.com/Redocly/redoc), para generar documentación para la API. AWS ParallelCluster 

**¿Cómo implementar la API? AWS ParallelCluster **

Para implementar la AWS ParallelCluster API, debe ser administrador de Cuenta de AWS. 

La plantilla utilizada para implementar la API está disponible en la siguiente URL:

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

dónde `<REGION>` se debe implementar la API y Región de AWS dónde `<VERSION>` está la AWS ParallelCluster versión (por ejemplo, la 3.15.0). 

AWS Lambda utiliza una interfaz de capa Lambda con la [AWS ParallelCluster API de biblioteca de Python](pc-py-library-v3.md) para procesar las funciones invocadas por la API.

**aviso**  
Cualquier usuario del Cuenta de AWS, que tenga acceso privilegiado a AWS Lambda los servicios de Amazon API Gateway, hereda automáticamente los permisos para administrar los recursos de la AWS ParallelCluster API.

# Implemente la AWS ParallelCluster API con AWS CLI
<a name="api-reference-deploy-v3"></a>

En esta sección, aprenderá a realizar la implementación con AWS CLI.

Configure AWS las credenciales para usarlas con la CLI si aún no lo ha hecho.

```
$ aws configure
```

Ejecute los siguientes comandos para implementar la 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}
```

**Personalización de la implementación**

Puede usar los CloudFormation parámetros expuestos en la plantilla para personalizar la implementación de la API. Para configurar el valor de un parámetro cuando se implementa a través de la CLI, se puede usar la siguiente opción:`--parameters ParameterKey=KeyName,ParameterValue=Value`. 

Los siguientes parámetros son opcionales:
+ **Región**: utilice el `Region` parámetro para especificar si la API puede controlar todos los recursos Regiones de AWS (de forma predeterminada) o de uno solo Región de AWS. Establezca este valor en Región de AWS la API en la que se está implementando para restringir el acceso.
+ **ParallelClusterFunctionRole**- Esto anula la función de IAM que se asigna a la AWS Lambda función que implementa AWS ParallelCluster las funciones. El parámetro acepta el ARN de un rol de IAM. Este rol debe configurarse para que sea el principal AWS Lambda de IAM. Además, dado que esta función reemplazará la función predeterminada de la función Lambda de la API, debe tener al menos los permisos predeterminados que requiere la API, tal como se indica en. [AWS ParallelCluster ejemplos `pcluster` de políticas de usuario](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-example-user-policies)
+ **ParallelClusterFunctionAdditionalPolicies**- ARN de la política de IAM adicional que se adjuntará a la función de la AWS ParallelCluster API. Solo se puede especificar una política.
+ **CustomDomainName,CustomDomainCertificate, CustomDomainHostedZoneId** - Utilice estos parámetros para configurar un dominio personalizado para el punto final de Amazon API Gateway. `CustomDomainName`es el nombre del dominio que se va a utilizar, `CustomDomainCertificate` es el ARN de un certificado AWS administrado para este nombre de dominio y `CustomDomainHostedZoneId` es el ID de la zona alojada de [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) en la que desea crear registros.
**aviso**  
Puede configurar ajustes de dominio personalizados para aplicar una versión mínima de seguridad de la capa de transporte (TLS) para la API. Para obtener más información, consulte [Elección de una versión mínima de TLS para un dominio personalizado en API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-custom-domain-tls-version.html).
+ **EnableIamAdminAccess**- De forma predeterminada, la AWS Lambda función que procesa las operaciones de la AWS ParallelCluster API está configurada con una función de IAM que impide cualquier acceso de IAM privilegiado (). `EnableIamAdminAccess=false` Esto hace que la API no pueda procesar operaciones que requieren la creación de políticas o roles de IAM. Por este motivo, la creación de clústeres o imágenes personalizadas solo se realiza correctamente cuando se proporcionan los roles de IAM como entrada en la configuración de los recursos. 

  Cuando `EnableIamAdminAccess` se establece en `true` la AWS ParallelCluster API, se conceden permisos para gestionar la creación de las funciones de IAM necesarias para implementar clústeres o generar funciones personalizadas. AMIs 
**aviso**  
Si se establece en true, otorga privilegios de administrador de IAM a la AWS Lambda función que procesa AWS ParallelCluster las operaciones. 

  Consulte [AWS ParallelCluster ejemplos de políticas de usuario para administrar los recursos de IAM](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-user-policy-manage-iam) para obtener más información sobre las funciones que se pueden desbloquear al activar este modo.
+ **PermissionsBoundaryPolicy**- Este parámetro opcional acepta un ARN de política de IAM existente que se establecerá como límite de permisos para todas las funciones de IAM creadas por la infraestructura de la API de PC y como condición de los permisos administrativos de IAM, de modo que la API de PC solo pueda crear funciones con esta política.

  Consulte [Modo `PermissionsBoundary`](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-permissionsboundary-mode) para obtener más información sobre las restricciones que impone este modo.
+ **CreateApiUserRole**- De forma predeterminada, el despliegue de la AWS ParallelCluster API incluye la creación de una función de IAM que se establece como la única función autorizada para invocar la API. El punto de enlace Amazon API Gateway está configurado con una política basada en recursos para conceder el permiso de invocación únicamente al usuario creado. Para cambiarlo, defina `CreateApiUserRole=false` y, a continuación, conceda el acceso a la API a los usuarios de IAM seleccionados. Para obtener más información, consulte [Controlar el acceso para invocar una API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html) en la *Guía para desarrolladores de Amazon API Gateway*.
**aviso**  
Cuando el `CreateApiUserRole=true` acceso al punto final de la API no esté restringido por las políticas de recursos de Amazon API Gateway, todos los roles de IAM que tengan `execute-api:Invoke` permisos ilimitados pueden acceder a las funciones. AWS ParallelCluster Para obtener más información, consulte [Controlar el acceso a una API con las políticas de recursos de API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies.html) en la *Guía para desarrolladores de API Gateway*.
**aviso**  
El `ParallelClusterApiUserRole` tiene permiso para invocar todas las operaciones de la API de AWS ParallelCluster . Para restringir el acceso a un subconjunto de recursos de API, consulta la sección Cómo [controlar quién puede llamar a un método de API Gateway con políticas de 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) en la Guía para *desarrolladores de API Gateway*.
+ **IAMRoleAndPolicyPrefix**- Este parámetro opcional acepta una cadena que contenga un máximo de 10 caracteres y que se utilizará como prefijo tanto para las funciones como para las políticas de IAM creadas como parte de la infraestructura de API de PC.

# Actualización de la API
<a name="api-reference-update-v3"></a>

En esta sección, aprenderás a usar una de las dos opciones disponibles para actualizar la API.

**Actualización a una AWS ParallelCluster versión más reciente**

Opción 1: Para eliminar la API existente, elimina la CloudFormation pila correspondiente e implementa la nueva API, tal y como se muestra arriba.

Opción 2: Para actualizar la API existente, ejecuta los siguientes comandos: 

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

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

El punto final de AWS ParallelCluster Amazon API Gateway está configurado con un [tipo de `AWS_IAM` autorización](https://docs.aws.amazon.com/apigateway/latest/developerguide/permissions.html#api-gateway-control-access-iam-permissions-model-for-calling-api) y requiere que todas las solicitudes estén firmadas mediante SigV4 con credenciales de IAM válidas ([referencia de API: realizar solicitudes http](https://docs.aws.amazon.com/apigateway/api-reference/making-http-requests/)). 

Cuando se implementa con la configuración predeterminada, los permisos de invocación de la API solo se otorgan al usuario de IAM predeterminado creado con la API. 

Para recuperar el ARN del usuario de IAM predeterminado, ejecute: 

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

[Para obtener credenciales temporales para el usuario de IAM predeterminado, ejecute el comando STS. AssumeRole](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/assume-role.html)

Para recuperar el punto final AWS ParallelCluster de la API, ejecute el siguiente 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
```

La AWS ParallelCluster API puede ser invocada por cualquier cliente HTTP que cumpla con las especificaciones de OpenAPI que se encuentran aquí: 

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

Las solicitudes deben estar firmadas mediante SigV4, tal y como se indica [aquí](https://docs.aws.amazon.com/apigateway/api-reference/signing-requests). 

En este momento, no ofrecemos ninguna implementación de cliente de API oficial. Sin embargo, puede utilizar el [generador de OpenAPI](https://openapi-generator.tech/) para generar fácilmente clientes de API a partir del modelo OpenAPI. Una vez generado el cliente, es necesario añadir la firma SigV4 si no se proporciona de forma inmediata. 

Puede encontrar una implementación de referencia para un cliente de API de Python en el [repositorio de AWS ParallelCluster](https://github.com/aws/aws-parallelcluster/tree/develop/api/client/src). Para obtener más información sobre cómo puede utilizar el cliente de API de Python, consulte el tutorial [Uso de la AWS ParallelCluster API](tutorials_06_API_use.md).

[Para implementar mecanismos de control de acceso más avanzados, como Amazon Cognito o Lambda Authorizers, o para proteger aún más la API con claves de API, consulte la AWS WAF documentación de Amazon API Gateway.](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-to-api.html) 

**aviso**  
Un usuario de IAM que esté autorizado a invocar la AWS ParallelCluster API puede controlar indirectamente todos los AWS recursos gestionados por ella. AWS ParallelCluster Cuenta de AWS Esto incluye la creación de AWS recursos que el usuario no puede controlar directamente debido a las restricciones de la política de IAM del usuario. Por ejemplo, la creación de un AWS ParallelCluster clúster, según su configuración, puede incluir el despliegue de instancias de Amazon EC2, Amazon Route 53, sistemas de archivos de Amazon Elastic File System, sistemas de FSx archivos de Amazon, funciones de IAM y recursos de otros Servicios de AWS utilizados por los AWS ParallelCluster que el usuario podría no tener control directo.

**aviso**  
Al crear un clúster con lo `AdditionalIamPolicies` especificado en la configuración, las políticas adicionales deben cumplir uno de los siguientes patrones:  

```
- !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 necesita otras políticas adicionales, puede elegir una de las siguientes opciones:  
Edite la `DefaultParallelClusterIamAdminPolicy` en:  

  ```
  https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/parallelcluster-api.yaml
  ```
Agregue la política en la sección `ArnLike/iam:PolicyARN`.
No especifique políticas `AdditionalIamPolicies` en el archivo de configuración y añada políticas manualmente al rol de AWS ParallelCluster instancia creado en el clúster.

# Acceso a registros y métricas de API
<a name="api-reference-access-v3"></a>

Los registros de API se publican en Amazon CloudWatch con una retención de 30 días. Para recuperar el LogGroup nombre asociado a una implementación de API, ejecuta el siguiente 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
```

También se puede acceder a las métricas, los registros y los registros rastreo [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) de Lambda a través de la consola Lambda. Para recuperar el ARN de la función de Lambda asociada a una implementación de API, ejecute el siguiente comando: 

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