

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á.

# Etapa 4: configurar o AWS CLI e AWS SDKs
<a name="su-awscli-sdk"></a>

Você pode usar etiquetas personalizadas do Amazon Rekognition com () e. AWS Command Line Interface AWS CLI AWS SDKs Se você precisar executar operações do Amazon Rekognition Custom Labels do terminal, instale a AWS CLI. Se você estiver criando um aplicativo, baixe o AWS SDK para a linguagem de programação que você está usando. 

**Topics**
+ [Instale os AWS SDKS](#sdk-install-sdk)
+ [Conceder acesso programático](su-sdk-programmatic-access.md)
+ [Configurar permissões do SDK](su-sdk-permissions.md)
+ [Chame uma operação do Amazon Rekognition Custom Labels](su-sdk-list-projects.md)

## Instale os AWS SDKS
<a name="sdk-install-sdk"></a>

Siga as etapas para fazer download e configurar a AWS SDKs.

**Para configurar o AWS CLI e o AWS SDKs**
+ Baixe e instale o [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)e o AWS SDKs que você deseja usar. Este guia fornece exemplos para o AWS CLI, [Java](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html) e [Python](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#installation). Para obter informações sobre a instalação AWS SDKs, consulte [Tools for Amazon Web Services](https://aws.amazon.com/tools/).

# Conceder acesso programático
<a name="su-sdk-programmatic-access"></a>

Você pode executar os exemplos de código AWS CLI e os exemplos deste guia em seu computador local ou em outros AWS ambientes, como uma instância do Amazon Elastic Compute Cloud. Para executar os exemplos, você precisa conceder acesso às operações do AWS SDK que os exemplos usam. 

**Topics**
+ [Executando código em seu computador local](#su-sdk-programmatic-access-general)
+ [Executando código em AWS ambientes](#su-sdk-aws-environments)

## Executando código em seu computador local
<a name="su-sdk-programmatic-access-general"></a>

Para executar código em um computador local, recomendamos que você use credenciais de curto prazo para conceder ao usuário acesso às operações do AWS SDK. Para obter informações específicas sobre como executar o AWS CLI e exemplos de código em um computador local, consulte[Usando um perfil em seu computador local](#su-sdk-programmatic-access-customlabels-examples).

Os usuários precisam de acesso programático se quiserem interagir com pessoas AWS fora do Console de gerenciamento da AWS. A forma de conceder acesso programático depende do tipo de usuário que está acessando AWS.

Para conceder acesso programático aos usuários, selecione uma das seguintes opções:


****  

| Qual usuário precisa de acesso programático? | Para | Por | 
| --- | --- | --- | 
| IAM | (Recomendado) Use as credenciais do console como credenciais temporárias para assinar solicitações programáticas para o AWS CLI, AWS SDKs ou. AWS APIs |  Siga as instruções da interface que deseja utilizar. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/rekognition/latest/customlabels-dg/su-sdk-programmatic-access.html)  | 
|  Identidade da força de trabalho (Usuários gerenciados no Centro de Identidade do IAM)  | Use credenciais temporárias para assinar solicitações programáticas para o AWS CLI AWS SDKs, ou. AWS APIs |  Siga as instruções da interface que deseja utilizar. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/rekognition/latest/customlabels-dg/su-sdk-programmatic-access.html)  | 
| IAM | Use credenciais temporárias para assinar solicitações programáticas para o AWS CLI AWS SDKs, ou. AWS APIs | Siga as instruções em [Como usar credenciais temporárias com AWS recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) no Guia do usuário do IAM. | 
| IAM | (Não recomendado)Use credenciais de longo prazo para assinar solicitações programáticas para o AWS CLI, AWS SDKs, ou. AWS APIs |  Siga as instruções da interface que deseja utilizar. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/rekognition/latest/customlabels-dg/su-sdk-programmatic-access.html)  | 

### Usando um perfil em seu computador local
<a name="su-sdk-programmatic-access-customlabels-examples"></a>

Você pode executar os exemplos de código AWS CLI e de código neste guia com as credenciais de curto prazo que você criou. [Executando código em seu computador local](#su-sdk-programmatic-access-general) Para obter as credenciais e outras informações de configurações, os exemplos usam um perfil chamado `custom-labels-access`, por exemplo: 

```
session = boto3.Session(profile_name='custom-labels-access')
rekognition_client = session.client("rekognition")
```

O usuário que o perfil representa deve ter permissões para chamar as operações do SDK do Amazon Rekognition Custom Labels e outras operações AWS do SDK exigidas pelos exemplos. Para obter mais informações, consulte [Configurar permissões do SDK](su-sdk-permissions.md). Para atribuir permissões, consulte [Configurar permissões do SDK](su-sdk-permissions.md).

Para criar um perfil que funcione com os exemplos de código AWS CLI e, escolha uma das opções a seguir. Verifique se o nome do perfil que você criou é `custom-labels-access`.
+ Usuários gerenciados pelo IAM — Siga as instruções em [Mudar para um perfil do IAM (AWS CLI)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-cli.html). 
+ Identidade da força de trabalho (usuários gerenciados por Centro de Identidade do AWS IAM) — Siga as instruções em [Configuração da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) para uso. Centro de Identidade do AWS IAM Para os exemplos de código, recomendamos o uso de um ambiente de desenvolvimento integrado (IDE), que oferece suporte ao AWS Toolkit, permitindo a autenticação por meio do IAM Identity Center. Para ver os exemplos de Java, consulte [Começar a criar com Java](https://aws.amazon.com/developer/language/java/). Para ver os exemplos de Python, consulte [Começar a criar com Python](https://aws.amazon.com/developer/tools/#IDE_and_IDE_Toolkits). Para obter mais informações, consulte [Credenciais do IAM Identity Center](https://docs.aws.amazon.com/sdkref/latest/guide/feature-sso-credentials.html).

**nota**  
Você pode usar o código para obter credenciais de curto prazo. Para obter mais informações, consulte [Mudar para um perfil do IAM (API da AWS)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_use_switch-role-api.html). Para o IAM Identity Center, obtenha as credenciais de curto prazo para uma função seguindo as instruções em [Obter credenciais de perfil do IAM para acesso à CLI](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html). 

## Executando código em AWS ambientes
<a name="su-sdk-aws-environments"></a>

Você não deve usar as credenciais do usuário para assinar chamadas do AWS SDK em AWS ambientes, como código de produção executado em uma AWS Lambda função. Em vez disso, você configura uma função que define as permissões de que seu código precisa. Em seguida, você atribui a função ao ambiente em que seu código é executado. A forma como você atribui a função e disponibiliza credenciais temporárias varia de acordo com o ambiente em que seu código é executado:
+ AWS Lambda função — Use as credenciais temporárias que o Lambda fornece automaticamente à sua função quando assume a função de execução da função Lambda. As credenciais estão disponíveis nas variáveis de ambiente do Lambda. Você não precisa especificar um perfil. Para obter mais informações, consulte [Função de execução do Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html).
+ Amazon EC2 — Use o provedor de credenciais de endpoint de metadados da instância Amazon EC2. O provedor gera e atualiza automaticamente as credenciais para você usando o *perfil da instância* do Amazon EC2 que você anexa à instância do Amazon EC2. Para obter mais informações, consulte [Usar um perfil do IAM para conceder permissões a aplicativos executados em instâncias do Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)
+ Amazon Elastic Container Service — Use o provedor de credenciais do Container. O Amazon ECS envia e atualiza as credenciais para um endpoint de metadados. Um *perfil do IAM de tarefa* que você especifica fornece uma estratégia para gerenciar as credenciais que seu aplicativo usa. Para obter mais informações, consulte [Interagir com os serviços da AWS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html).

Para obter mais informações sobre provedores de credenciais, consulte [Provedores padronizados de credenciais](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html).

# Configurar permissões do SDK
<a name="su-sdk-permissions"></a>

Para usar as operações do Amazon Rekognition Custom Labels SDK, você precisa de permissões de acesso à API do Amazon Rekognition Custom Labels e ao bucket do Amazon S3 usado para treinamento de modelos.

**Topics**
+ [Conceder permissões de operação do SDK](#su-grant-sdk-permissions)
+ [Atualizações de políticas para usar o AWS SDK](#su-sdk-policy-update)
+ [Como atribuir permissões](#su-sdk-assign-permissions)

## Conceder permissões de operação do SDK
<a name="su-grant-sdk-permissions"></a>

É recomendável conceder apenas as permissões necessárias para executar uma tarefa (permissões de privilégio mínimo). Por exemplo, para ligar [DetectCustomLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectCustomLabels.html), você precisa de permissão para executar`rekognition:DetectCustomLabels`. Para encontrar as permissões para uma operação, verifique a [referência da API](https://docs.aws.amazon.com/rekognition/latest/APIReference/Welcome.html). 

Quando estiver apenas começando a usar um aplicativo, talvez não saiba as permissões específicas de que precisa, então é possível começar com permissões mais amplas. As políticas gerenciadas pela AWS fornecem permissões para ajudá-lo a começar. Você pode usar a política `AmazonRekognitionCustomLabelsFullAccess` AWS gerenciada para obter acesso completo à API Amazon Rekognition Custom Labels. Para obter mais informações, consulte a [política gerenciada da AWS: AmazonRekognitionCustomLabelsFullAccess](https://docs.aws.amazon.com/rekognition/latest/dg/security-iam-awsmanpol.html#security-iam-awsmanpol-custom-labels-full-access). Quando você conhece as permissões de que sua aplicação precisa, reduza ainda mais as permissões definindo políticas gerenciadas pelo cliente específicas para seus casos de uso. Para obter mais informações, consulte [ Políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies). 

Para atribuir permissões, consulte [Como atribuir permissões](#su-sdk-assign-permissions).

## Atualizações de políticas para usar o AWS SDK
<a name="su-sdk-policy-update"></a>

Para usar o AWS SDK com a versão mais recente do Amazon Rekognition Custom Labels, você não precisa mais conceder permissões aos Amazon Rekognition Custom Labels para acessar o bucket do Amazon S3 que contém suas imagens de treinamento e teste. Se adicionou permissões anteriormente, não é necessário removê-las. Se optar por isso, remova qualquer política do bucket onde o serviço para a entidade principal é `rekognition.amazonaws.com`. Por exemplo:

```
"Principal": {
    "Service": "rekognition.amazonaws.com"
}
```

Para obter mais informações, consulte [Como usar políticas de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html).

## Como atribuir permissões
<a name="su-sdk-assign-permissions"></a>

Para conceder acesso, adicione as permissões aos seus usuários, grupos ou perfis:
+ Usuários e grupos em Centro de Identidade do AWS IAM:

  Crie um conjunto de permissões. Siga as instruções em [Criação de um conjunto de permissões](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.
+ Usuários gerenciados no IAM com provedor de identidades:

  Crie um perfil para a federação de identidades. Siga as instruções em [Criando um perfil para um provedor de identidades de terceiros (federação)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) no *Guia do Usuário do IAM*.
+ Usuários do IAM:
  + Crie um perfil que seu usuário possa assumir. Siga as instruções em [Criação de um perfil para um usuário do IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) no *Guia do usuário do IAM*.
  + (Não recomendado) Vincule uma política diretamente a um usuário ou adicione um usuário a um grupo de usuários. Siga as instruções em [Adição de permissões a um usuário (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) no *Guia do usuário do IAM*.

# Chame uma operação do Amazon Rekognition Custom Labels
<a name="su-sdk-list-projects"></a>

Execute o código a seguir para confirmar que é possível fazer chamadas para a API Amazon Rekognition Custom Labels. O código lista os projetos em sua AWS conta, na AWS região atual. Se ainda não tiver criado um projeto, a resposta está vazia, mas confirma que é possível chamar a operação `DescribeProjects`. 

Em geral, chamar uma função de exemplo requer um cliente do AWS SDK Rekognition e quaisquer outros parâmetros necessários. O cliente do AWS SDK é declarado na função principal. 

Se o código falhar, verifique se o usuário que você usa tem as permissões corretas. Verifique também se a AWS região que você está usando como etiquetas personalizadas do Amazon Rekognition não está disponível em todas as regiões. AWS 

**Para chamar uma operação do Amazon Rekognition Custom Labels**

1. Se você ainda não tiver feito isso, instale e configure o AWS CLI e AWS SDKs o. Para obter mais informações, consulte [Etapa 4: configurar o AWS CLI e AWS SDKs](su-awscli-sdk.md).

1. Use o código de exemplo a seguir para visualizar seus projetos.

------
#### [ CLI ]

   Use o comando `describe-projects` para listar os projetos em sua conta.

   ```
   aws rekognition describe-projects \
   --profile custom-labels-access
   ```

------
#### [ Python ]

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   """
   This example shows how to describe your Amazon Rekognition Custom Labels projects.
   If you haven't previously created a project in the current AWS Region,
   the response is an empty list, but does confirm that you can call an
   Amazon Rekognition Custom Labels operation.
   """
   from botocore.exceptions import ClientError
   import boto3
   
   def describe_projects(rekognition_client):
       """
       Lists information about the projects that are in in your AWS account
       and in the current AWS Region.
   
       : param rekognition_client: A Boto3 Rekognition client.
       """
       try:
           response = rekognition_client.describe_projects()
           for project in response["ProjectDescriptions"]:
               print("Status: " + project["Status"])
               print("ARN: " + project["ProjectArn"])
               print()
           print("Done!")
       except ClientError as err:
           print(f"Couldn't describe projects. \n{err}")
           raise
   
   
   def main():
       """
       Entrypoint for script.
       """
   
       session = boto3.Session(profile_name='custom-labels-access')
       rekognition_client = session.client("rekognition")
   
       describe_projects(rekognition_client)
   
   
   if __name__ == "__main__":
       main()
   ```

------
#### [ Java V2 ]

   ```
   /*
      Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
      SPDX-License-Identifier: Apache-2.0
   */
   
   package com.example.rekognition;
   
   import java.util.ArrayList;
   import java.util.List;
   import java.util.logging.Level;
   import java.util.logging.Logger;
   
   import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
   import software.amazon.awssdk.regions.Region;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.services.rekognition.model.DatasetMetadata;
   import software.amazon.awssdk.services.rekognition.model.DescribeProjectsRequest;
   import software.amazon.awssdk.services.rekognition.model.DescribeProjectsResponse;
   import software.amazon.awssdk.services.rekognition.model.ProjectDescription;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   
   public class Hello {
   
       public static final Logger logger = Logger.getLogger(Hello.class.getName());
   
       public static void describeMyProjects(RekognitionClient rekClient) {
   
           DescribeProjectsRequest descProjects = null;
   
           // If a single project name is supplied, build projectNames argument
   
           List<String> projectNames = new ArrayList<String>();
   
   
           descProjects = DescribeProjectsRequest.builder().build();
   
           // Display useful information for each project.
   
           DescribeProjectsResponse resp = rekClient.describeProjects(descProjects);
   
           for (ProjectDescription projectDescription : resp.projectDescriptions()) {
   
               System.out.println("ARN: " + projectDescription.projectArn());
               System.out.println("Status: " + projectDescription.statusAsString());
               if (projectDescription.hasDatasets()) {
                   for (DatasetMetadata datasetDescription : projectDescription.datasets()) {
                       System.out.println("\tdataset Type: " + datasetDescription.datasetTypeAsString());
                       System.out.println("\tdataset ARN: " + datasetDescription.datasetArn());
                       System.out.println("\tdataset Status: " + datasetDescription.statusAsString());
                   }
               }
               System.out.println();
           }
   
       }
   
       public static void main(String[] args) {
   
           try {
   
               // Get the Rekognition client
               RekognitionClient rekClient = RekognitionClient.builder()
                   .credentialsProvider(ProfileCredentialsProvider.create("custom-labels-access"))
                   .region(Region.US_WEST_2)
                   .build();
               
               // Describe projects
   
               describeMyProjects(rekClient);
   
               rekClient.close();
   
           } catch (RekognitionException rekError) {
               logger.log(Level.SEVERE, "Rekognition client error: {0}", rekError.getMessage());
               System.exit(1);
           }
   
       }
   
   }
   ```

------