GitHub Actions で DynamoDB Local を使う方法について調べると、mooyoul/dynamodb-actions や rrainn/dynamodb-action を使う方法は出てくるんだけど、サードパーティのアクションを使わずにできるのでメモ。
やることは簡単で、
- GitHub Actionsのサービスコンテナ として dynamodb-local を起動
- dynamodb-local に
aws dynamodb create-table
する
- aws-cli は GitHub Actions のランナー環境には大体標準で入ってる
だけ。
example.yml
name: Some Job Using DynamoDB
jobs:
some_job_using_dynamodb_local:
runs-on: ubuntu-latest
# services で localhost:8000 で dynamodb-local を起動する
services:
dynamodb:
image: amazon/dynamodb-local
ports:
- 8000:8000
steps:
- name: Setup DynamoDB Local
env:
AWS_ACCESS_KEY_ID: dummy
AWS_SECRET_ACCESS_KEY: dummy
AWS_DEFAULT_REGION: ap-northeast-1
# create-table とかする
# https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Tools.CLI.html
run: |
aws dynamodb create-table --endpoint-url http://localhost:8000 \
--table-name your_table_name \
--attribute-definitions AttributeName=hoge,AttributeType=S \
--key-schema AttributeName=hoge,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1
- name: Check DynamoDB Table
env:
AWS_ACCESS_KEY_ID: dummy
AWS_SECRET_ACCESS_KEY: dummy
AWS_DEFAULT_REGION: ap-northeast-1
run: aws dynamodb describe-table --endpoint-url http://localhost:8000 --table-name your_table_name
create-table する対象が増えてきたら何か工夫しないといけなそう。
例