

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Chime SDK メッセージングのバックエンドサービスから SDK 呼び出しを行う
<a name="call-from-backend"></a>

バックエンドサービスを表すユーザーを作成したら、チャネルを作成し、そのチャネルにメッセージを送信し、そのチャネルからのメッセージを読み取ります。

以下の CLI コマンドを実行して、パブリックチャネルを作成します。

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

このコマンドは、以下の形式の ARN を生成します: `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/channel/channel_id.`

**Topics**
+ [バックエンドサービスの IAM 認可の仕組み](#how-iam-works)
+ [暗黙的な API 認可について](#api-implicit-auth)
+ [チャネルメッセージの送信と一覧表示](#send-list-msgs)

## バックエンドサービスの IAM 認可の仕組み
<a name="how-iam-works"></a>

前のセクションの CLI コマンドの `chime-bearer` パラメータを書き留めます。チャネルやメッセージなどのリソースを作成したり操作したりするユーザーを識別します。ほぼすべての Amazon Chime SDK メッセージング API は、パラメータとして `chime-bearer` を受け取ります。ただし、`CreateAppInstance` などの開発者だけが呼び出すための API は例外です。

Amazon Chime SDK メッセージング API の IAM アクセス許可には、`chime-bearer` パラメータと一致する `app-instance-user-arn ` が必要です。API によっては、追加の ARN (通常はチャネル ARN) が必要になる場合があります。これにより、上記の例のようなバックエンドサービスの場合、IAM ポリシーは以下の例のようになります。

------
#### [ 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/*"
        ]
    }
}
```

------

`Resource` セクションの `AppInstanceUser` ARN とチャネル ARN を書き留めます。この IAM ポリシーの例では、「back-end-worker」の ID を持つユーザーとして API コールを行うアクセス許可をバックエンドサービスに付与します。バックエンドサービスがアプリケーションを使用するユーザーを呼び出せるようにするには、`app_instance_user_arn` を `arn:aws:chime:region:aws_account_id:app-instance/app_instance_id/user/*` に変更します。

## 暗黙的な API 認可について
<a name="api-implicit-auth"></a>

IAM ポリシーに加えて、Amazon Chime SDK メッセージング API には暗黙的なアクセス許可があります。例えば、`AppInstanceUser` はメッセージを送信したり、ユーザーが属するチャネルのチャネルメンバーシップを一覧表示することしかできません。ただし、`AppInstanceAdmin` に昇格した `AppInstanceUser` は例外です。デフォルトでは、管理者はアプリケーション内のすべてのチャネルへのアクセス許可を持っています。ほとんどのユースケースでは、重要なビジネスロジックを含むバックエンドサービスにのみこれが必要です。

以下の CLI コマンドは、バックエンドユーザーを管理者に昇格させます。

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

## チャネルメッセージの送信と一覧表示
<a name="send-list-msgs"></a>

以下の CLI コマンドは、チャネルメッセージを送信します。

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

以下の CLI コマンドは、チャネルメッセージを新しい順に一覧表示します。
+ `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"
```