

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

**O que é AWS ParallelCluster API?**

AWS ParallelCluster A API é um aplicativo sem servidor que, uma vez implantado em você Conta da AWS, fornece acesso programático aos AWS ParallelCluster recursos por meio de uma API. 

AWS ParallelCluster A API é distribuída como um [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)modelo independente que inclui um endpoint do [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html), que expõe AWS ParallelCluster recursos, e uma [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)função, que cuida do processamento dos recursos invocados. 

A imagem a seguir mostra um diagrama de arquitetura de alto nível da infraestrutura da AWS ParallelCluster API.

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

## AWS ParallelCluster Documentação da API
<a name="api-reference-documentation-v3"></a>

O arquivo de especificação da OpenAPI que descreve a AWS ParallelCluster API pode ser baixado em: 

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

A partir do arquivo de especificação da OpenAPI, você pode usar uma das muitas ferramentas disponíveis, como [Swagger UI](https://swagger.io/tools/swagger-ui/) ou [Redoc, para gerar documentação](https://github.com/Redocly/redoc) para a API. AWS ParallelCluster 

**Como implantar a AWS ParallelCluster API**

Para implantar a AWS ParallelCluster API, você precisa ser administrador do Conta da AWS. 

O modelo usado para implantar a API está disponível no seguinte URL:

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

onde `<REGION>` é Região da AWS onde a API precisa ser implantada e `<VERSION>` é a AWS ParallelCluster versão (por exemplo, 3.15.0). 

AWS Lambda usa uma interface de camada Lambda com o [AWS ParallelCluster API da biblioteca Python](pc-py-library-v3.md) para processar os recursos invocados pela API.

**Atenção**  
Qualquer usuário no Conta da AWS, que tenha acesso privilegiado aos AWS Lambda serviços do Amazon API Gateway, herda automaticamente as permissões para administrar AWS ParallelCluster os recursos da API.

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

Nesta seção, você aprenderá a implantar com AWS CLI o.

Configure AWS as credenciais para serem usadas com a CLI, caso ainda não tenha feito isso.

```
$ aws configure
```

Execute o comando a seguir para implantar a 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}
```

**Personalize sua implantação**

Você pode usar os CloudFormation parâmetros expostos pelo modelo para personalizar a implantação da API. Para configurar o valor de um parâmetro ao implantar por meio da CLI, a seguinte opção pode ser usada:. `--parameters ParameterKey=KeyName,ParameterValue=Value` 

Os seguintes parâmetros são opcionais:
+ **Região** - Use o `Region` parâmetro para especificar se a API é capaz de controlar os recursos em todos Regiões da AWS (padrão) ou em um único Região da AWS. Defina esse valor para Região da AWS a API na qual está sendo implantada para restringir o acesso.
+ **ParallelClusterFunctionRole**- Isso substitui a função do IAM que é atribuída à AWS Lambda função que implementa AWS ParallelCluster recursos. O parâmetro aceita o ARN de um perfil do IAM. Essa função precisa ser configurada para ser AWS Lambda a principal do IAM. Além disso, como essa função substituirá a função padrão da função API Lambda, ela deve ter pelo menos as permissões padrão exigidas pela API, conforme listado em. [AWS ParallelCluster exemplo de políticas `pcluster` de usuário](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-example-user-policies)
+ **ParallelClusterFunctionAdditionalPolicies**- ARN da política adicional do IAM a ser anexada à função da AWS ParallelCluster API. Somente uma política pode ser especificada.
+ **CustomDomainName,CustomDomainCertificate, CustomDomainHostedZoneId** - Use esses parâmetros para definir um domínio personalizado para o endpoint do Amazon API Gateway. `CustomDomainName`é o nome do domínio a ser usado, `CustomDomainCertificate` é o ARN de um certificado AWS gerenciado para esse nome de domínio e `CustomDomainHostedZoneId` é o ID da zona hospedada do [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) na qual você deseja criar registros.
**Atenção**  
Você pode definir configurações de domínio personalizadas para impor uma versão mínima do Transport Layer Security (TLS) para a API. Para obter mais informações, consulte [Escolher uma versão mínima do TLS para um domínio personalizado no API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-custom-domain-tls-version.html).
+ **EnableIamAdminAccess**- Por padrão, a AWS Lambda função que processa as operações AWS ParallelCluster da API é configurada com uma função do IAM que impede qualquer acesso privilegiado do IAM (`EnableIamAdminAccess=false`). Isso faz com que a API não consiga processar operações que exijam a criação de políticas ou perfis do IAM. Por esse motivo, a criação de clusters ou imagens personalizadas só é bem-sucedida quando os perfis do IAM são fornecidos como entrada como parte da configuração do recurso. 

  Quando `EnableIamAdminAccess` configurado para `true` a AWS ParallelCluster API, são concedidas permissões para gerenciar a criação das funções do IAM necessárias para implantar clusters ou gerar funções personalizadas AMIs. 
**Atenção**  
Quando definido como verdadeiro, ele concede privilégios de administrador do IAM à AWS Lambda função que processa AWS ParallelCluster as operações. 

  Consulte [AWS ParallelCluster políticas de exemplo de usuário para gerenciar recursos do IAM](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-user-policy-manage-iam) para obter detalhes adicionais sobre os recursos que podem ser desbloqueados ao ativar esse modo.
+ **PermissionsBoundaryPolicy**- Esse parâmetro opcional aceita um ARN de política do IAM existente que será definido como limite de permissões para todas as funções do IAM criadas pela infraestrutura da API do PC e como uma condição nas permissões administrativas do IAM para que somente funções com essa política possam ser criadas pela API do PC.

  Consulte [Modo `PermissionsBoundary`](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-permissionsboundary-mode) para obter detalhes adicionais sobre as restrições impostas por esse modo.
+ **CreateApiUserRole**- Por padrão, a implantação da AWS ParallelCluster API inclui a criação de uma função do IAM que é definida como a única função autorizada a invocar a API. O endpoint do Amazon API Gateway é configurado com uma política baseada em recursos para conceder permissão de invocação somente ao usuário criado. Para alterar isso, defina `CreateApiUserRole=false` e conceda acesso à API aos usuários selecionados do IAM. Para obter mais informações, consulte [Controlar o acesso para invocar uma API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-control-access-using-iam-policies-to-invoke-api.html) no *Guia do desenvolvedor do Amazon API Gateway*.
**Atenção**  
Quando o `CreateApiUserRole=true` acesso ao endpoint da API não é restrito pelas políticas de recursos do Amazon API Gateway, todas as funções do IAM que têm `execute-api:Invoke` permissão irrestrita podem acessar os recursos. AWS ParallelCluster Para obter mais informações, consulte Como [controlar o acesso a uma API com as políticas de recursos do API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies.html) no *Guia do desenvolvedor do API Gateway*.
**Atenção**  
O `ParallelClusterApiUserRole` tem permissão para invocar todas as operações da API do AWS ParallelCluster . Para restringir o acesso a um subconjunto de recursos da API, consulte [Controlar quem pode chamar um método de API do API Gateway com políticas do 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) no *Guia do desenvolvedor do API Gateway*.
+ **IAMRoleAndPolicyPrefix**- Esse parâmetro opcional aceita uma string contendo no máximo 10 caracteres que será usada como prefixo para as funções e políticas do IAM criadas como parte da infraestrutura da API do PC.

# Atualização da API
<a name="api-reference-update-v3"></a>

Nesta seção, você aprenderá a usar uma das duas opções disponíveis para atualizar a API.

**Atualizando para uma versão mais AWS ParallelCluster recente**

Opção 1: Para remover a API existente, exclua a CloudFormation pilha correspondente e implante a nova API conforme mostrado acima.

Opção 2: Para atualizar a API existente, execute os seguintes 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 a API
<a name="api-reference-invoke-v3"></a>

O endpoint do AWS ParallelCluster Amazon API Gateway é configurado com o [tipo de `AWS_IAM` autorização](https://docs.aws.amazon.com/apigateway/latest/developerguide/permissions.html#api-gateway-control-access-iam-permissions-model-for-calling-api) e exige que todas as solicitações sejam assinadas pelo SigV4 com credenciais válidas do IAM ([referência da API: fazer](https://docs.aws.amazon.com/apigateway/api-reference/making-http-requests/) solicitações http). 

Quando implantadas com configurações padrão, as permissões de invocação da API são concedidas somente ao usuário do IAM padrão criado com a API. 

Para recuperar o ARN do usuário do IAM padrão, execute: 

```
$ 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 obter credenciais temporárias para o usuário padrão do IAM, execute o AssumeRole comando [STS](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/assume-role.html).

Para recuperar o endpoint da AWS ParallelCluster API, execute o seguinte 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
```

A AWS ParallelCluster API pode ser invocada por qualquer cliente HTTP que esteja em conformidade com as especificações da OpenAPI que podem ser encontradas aqui: 

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

As solicitações precisam ser assinadas com SigV4 conforme documentado [aqui](https://docs.aws.amazon.com/apigateway/api-reference/signing-requests). 

No momento, não oferecemos nenhuma implementação oficial de cliente de API. No entanto, você pode usar o [OpenAPI Generator](https://openapi-generator.tech/) para gerar facilmente clientes de API a partir do modelo OpenAPI. Depois que o cliente é gerado, a assinatura SigV4 precisa ser adicionada, se não for fornecida imediatamente. 

Uma implementação de referência para um cliente da API Python pode ser encontrada no [repositório do AWS ParallelCluster](https://github.com/aws/aws-parallelcluster/tree/develop/api/client/src). Para saber mais sobre como você pode usar o cliente da API Python, consulte o tutorial [Usando a AWS ParallelCluster API](tutorials_06_API_use.md).

[Para implementar mecanismos de controle de acesso mais avançados, como Amazon Cognito ou Lambda Authorizers, ou para proteger ainda mais a API com nossas chaves de API, siga a AWS WAF documentação do Amazon API Gateway.](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-control-access-to-api.html) 

**Atenção**  
Um usuário do IAM autorizado a invocar a AWS ParallelCluster API pode controlar indiretamente todos os AWS recursos AWS ParallelCluster gerenciados pelo. Conta da AWS Isso inclui a criação de AWS recursos que o usuário não pode controlar diretamente devido às restrições na política de IAM do usuário. Por exemplo, a criação de um AWS ParallelCluster cluster, dependendo de sua configuração, pode incluir a implantação de instâncias do Amazon EC2, Amazon Route 53, sistemas de arquivos Amazon Elastic File System, sistemas de FSx arquivos da Amazon, funções do IAM e recursos de outros Serviços da AWS usados por AWS ParallelCluster quem o usuário talvez não tenha controle direto.

**Atenção**  
Quando você cria um cluster com o `AdditionalIamPolicies` especificado na configuração, as políticas adicionais devem corresponder a um dos seguintes padrões:  

```
- !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 precisar de outras políticas adicionais, você pode realizar uma das seguintes ações:  
Editar o `DefaultParallelClusterIamAdminPolicy` em:  

  ```
  https://<REGION>-aws-parallelcluster.s3.<REGION>.amazonaws.com/parallelcluster/<VERSION>/api/parallelcluster-api.yaml
  ```
Adicione essa política na seção `ArnLike/iam:PolicyARN`.
Não especifique políticas para `AdditionalIamPolicies` o arquivo de configuração e adicione políticas manualmente à função de AWS ParallelCluster instância criada no cluster.

# Acessando logs e métricas das APIs
<a name="api-reference-access-v3"></a>

Os registros da API são publicados na Amazon CloudWatch com uma retenção de 30 dias. Para recuperar o LogGroup nome associado a uma implantação de API, execute o seguinte 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
```

Métricas, logs e logs de rastreamento [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) do Lambda também podem ser acessados por meio do console do Lambda. Para recuperar o ARN da função do Lambda associada a uma implantação de APIs, execute os comandos a seguir: 

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