Effectuer des appels au SDK à partir d'un service principal - Kit SDK Amazon Chime

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.

Effectuer des appels au SDK à partir d'un service principal

Une fois que vous avez créé un utilisateur pour représenter vos services principaux, vous créez un canal, vous envoyez des messages à ce canal et vous lisez les messages provenant de ce canal.

Exécutez la commande CLI suivante pour créer un canal public.

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

La commande produit un ARN au format suivant : arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/channel/channel_id.

Comment fonctionne l'autorisation IAM pour les services principaux

Dans la commande CLI de la section précédente, notez le chime-bearer paramètre. Il identifie l'utilisateur qui crée ou interagit avec des ressources telles que des canaux et des messages. Presque toutes les API de messagerie du SDK Amazon Chime prennent chime-bearer en paramètre, à l'exception des API destinées à être appelées uniquement par les développeurs, telles que. CreateAppInstance

Les autorisations IAM pour les API de messagerie du SDK Amazon Chime nécessitent app-instance-user-arn un code correspondant au paramètre. chime-bearer Des ARN supplémentaires, généralement des ARN de canal, peuvent être nécessaires en fonction de l'API. Pour les services principaux comme dans l'exemple ci-dessus, cela conduit à des politiques IAM comme dans l'exemple suivant :

{ "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:region:aws_account_id:app-instance/app_instance_id/user/back-end-worker", "arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/channel/*" ] }

Notez l'AppInstanceUserARN et l'ARN du canal dans la Resource section. Cet exemple de politique IAM accorde au service principal l'autorisation d'effectuer des appels d'API en tant qu'utilisateur ayant l'ID de « travailleur principal ». Si vous souhaitez que votre service principal puisse passer des appels pour les utilisateurs de votre application, remplacez le parapp_instance_user_arn. arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/user/*

Comprendre l'autorisation implicite des API

Outre les politiques IAM, les API de messagerie du SDK Amazon Chime disposent d'autorisations implicites. Par exemple, un utilisateur ne AppInstanceUser peut envoyer un message ou répertorier les membres d'une chaîne que dans les chaînes auxquelles appartient l'utilisateur. Une exception à cette règle est un AppInstanceUser Who qui a été promuAppInstanceAdmin. Par défaut, les administrateurs sont autorisés à accéder à toutes les chaînes de votre application. Dans la plupart des cas d'utilisation, vous n'en avez besoin que pour les services principaux qui contiennent une logique métier significative.

La commande CLI suivante transforme un utilisateur principal en administrateur.

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

Envoyer et répertorier les messages des chaînes

La commande CLI suivante envoie des messages 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

Les commandes CLI suivantes répertorient les messages des canaux dans l'ordre chronologique inverse.

  • 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"