今回もAmazonConnectの記事になります。環境構築していく中で短縮発信の登録要望があり、AmazonConnectではクイック接続という機能で実現することになるのですがこの画面で、1件ずつポチポチするのがすごく面倒くさい...![]()

10件ぐらいなら許容できるけど、20件超えると手動はつらい。![]()
ユーザ登録はCSVファイルでアップロードできるけど、何故かクイック接続登録はCSV未対応です。
そこでAmazonConnectのAPIはあるそうなので、CSVから読み出して登録する自動化スクリプトを作ってみます。
【前提条件】
- Lambdaを設定するのは面倒なので、AWSコンソールでさくっと実行できるCloud Shellで設定します。
- AWSコンソールにログインしているユーザはAmazonConnectアクセスやCloudshellの実行権限が必要になります。
- スクリプトはPythonで記述します。
- 今回登録するクイック接続タイプは電話番号です。
1インスタンスあたりのクイック接続登録数はデフォルト100です。100件以上登録する場合はサービスクォーター上限の緩和申請をしましょう。
「Cloudshell」は コンソール右上の
っぽいアイコンで起動できます。

まずPythonファイルを新規作成します。
vim upload.py
中身は以下内容で記述します。
import boto3
import csv
client = boto3.client('connect')
# ConnectインスタンスID
instance_id = '実環境のインスタンスID'
file_name = 'name.csv'
try:
with open(file_name, mode='r', encoding='utf-8') as f:
# A列(0), B列(1) の形式なので delimiter=',' を指定
reader = csv.reader(f)
print(f"Starting process using {file_name}...")
for row in reader:
# 行が空の場合や、列が足りない場合はスキップ
if not row or len(row) < 2:
continue
# A列(0)をNameに、B列(1)をPhoneNumberに割り当て
name = row[0].strip()
phone_raw = row[1].strip()
# 電話番号の先頭が '0' の場合、国際番号形式 '+81' に変換
if phone_raw.startswith('0'):
phone_number = '+81' + phone_raw[1:]
else:
phone_number = phone_raw
try:
response = client.create_quick_connect(
InstanceId=instance_id,
Name=name,
Description='Created via Python bulk upload',
QuickConnectConfig={
'QuickConnectType': 'PHONE_NUMBER',
'PhoneConfig': {
'PhoneNumber': phone_number
}
},
)
print(f"Success! Registered: {name} ({phone_number})")
except Exception as e:
print(f"Failed to register {name}: {e}")
except Exception as e:
print(f"File Error: {e}")
続いて登録したい情報を記載したCVSファイルを作成し、アップロードします。
CSVファイルはA列に名前(登録名)でB列に電話番号を記載します。
イメージはこんな感じ
アップロード後は同じディレクトリにuploda.pyとname.csvがいます。
~ $ ls -l
total 12
-rw-r--r--. 1 cloudshell-user cloudshell-user 3753 Dec 9 00:45 name.csv
-rw-r--r--. 1 cloudshell-user cloudshell-user 93 Nov 17 05:44 qc_config.json
-rw-r--r--. 1 cloudshell-user cloudshell-user 1685 Dec 7 06:56 upload.py
~ $
あとはupload.pyを実効するだけです。
~ $ python upload.py | more
Starting process using name.csv...
Success! Registered: test-userA (+8190XXXXXXXX)
Success! Registered: test-userB (+8190XXXXXXXX)
~csvに記載した数分が登録される~
これでひたすらコピペする苦行はせずに済むと思います![]()
【参考にしたサイト】


