

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

# Fazer chamadas do SDK de um serviço de backend para o sistema de mensagens do SDK do Amazon Chime
<a name="call-from-backend"></a>

Depois de criar um usuário para representar seus serviços de back-end, você cria um canal, envia mensagens para esse canal e lê as mensagens desse canal.

Execute o seguinte comando da CLI a seguir para criar um canal público.

```
aws chime-sdk-messaging create-channel \
    --chime-bearer "app_instance_user_arn" \
    --app-instance-arn "app_instance_arn" \
    --name "firstChannel"
```

O comando produz um ARN neste formato: `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/channel/channel_id.`

**Topics**
+ [Como a autorização do IAM funciona para serviços de back-end](#how-iam-works)
+ [Entendendo a autorização implícita da API](#api-implicit-auth)
+ [Enviar e listar mensagens do canal](#send-list-msgs)

## Como a autorização do IAM funciona para serviços de back-end
<a name="how-iam-works"></a>

No comando da CLI da seção anterior, observe o parâmetro `chime-bearer`. Ele identifica o usuário que cria ou interage com recursos como canais e mensagens. Quase todas as mensagens do Amazon Chime SDK APIs usam `chime-bearer` como parâmetro, exceto para APIs serem chamadas somente por desenvolvedores, como. `CreateAppInstance`

As permissões do IAM para mensagens do Amazon Chime SDK APIs exigem um `app-instance-user-arn ` que corresponda ao parâmetro. `chime-bearer` ARNsTalvez ARNs seja necessário um canal adicional, com base na API. Para serviços de back-end como o exemplo acima, isso leva a políticas do IAM, como o exemplo a seguir:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "chime:SendChannelMessage",
            "chime:ListChannelMessages",
            "chime:CreateChannelMembership",
            "chime:ListChannelMemberships",
            "chime:DeleteChannelMembership",
            "chime:CreateChannel",
            "chime:ListChannels",
            "chime:DeleteChannel"
        ],
        "Resource": [
            "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/user/back-end-worker",
            "arn:aws:chime:us-east-1:123456789012:app-instance/app_instance_id/channel/*"
        ]
    }
}
```

------

Observe o ARN do `AppInstanceUser` e o ARN do canal na seção `Resource`. Este exemplo de política do IAM concede ao serviço de back-end permissão para fazer chamadas de API como usuário com o ID de "”back-end-worker. Se você quiser que seu serviço de back-end seja capaz de fazer chamadas para as pessoas que usam seu aplicativo, mude para. `app_instance_user_arn` `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/user/*`

## Entendendo a autorização implícita da API
<a name="api-implicit-auth"></a>

Além das políticas do IAM, as mensagens do Amazon Chime SDK APIs têm permissões implícitas. Por exemplo, um `AppInstanceUser` só pode enviar uma mensagem ou listar a associação de um canal nos canais aos quais o usuário pertence. Uma exceção a isso é o `AppInstanceUser` que foi promovido a `AppInstanceAdmin`. Por padrão, os administradores têm permissões para todos os canais do seu aplicativo. Para a maioria dos casos de uso, você só precisa disso para serviços de back-end que contenham uma lógica comercial significativa.

O comando da CLI a seguir promove um usuário back-end a administrador.

```
aws chime-sdk-identity create-app-instance-admin \
    --app-instance-admin-arn "app_instance_user_arn" \
    --app-instance-arn "app_instance_arn"
```

## Enviar e listar mensagens do canal
<a name="send-list-msgs"></a>

O comando da CLI a seguir envia mensagens de canal.

```
aws chime-sdk-messaging send-channel-message \
    --chime-bearer "app_instance_user_arn" \
    --channel-arn "channel_arn" \
    --content "hello world" \
    --type STANDARD \
    --persistence PERSISTENT
```

Os comandos da CLI a seguir listam mensagens de canal em ordem cronológica inversa.
+ `aws chime list-channel-messages`
+ `aws chime-sdk-messaging list-channel-messages`

```
aws chime-sdk-messaging list-channel-messages \
    --chime-bearer "app_instance_user_arn" \
    --channel-arn "channel_arn"
```