GitHub Actionsからさくらのクラウド オブジェクトストレージへアクセスする
2月1日よりオープンβとなった新しいさくらのクラウド オブジェクトストレージサービスにGitHub Actionsからアクセスしてみるサンプルです。
オブジェクトストレージは2021年3月31日までオープンベータ期間となります。お試しいただいてフィードバックいただけると嬉しいです! オブジェクトストレージ(β)の利用についてはこちらのニュースを確認してください。
この新しいオブジェクトストレージの特徴の一つとして、Amazon S3と高い互換性を持つAPIの提供があげられ、AWS CLIを通してオブジェクトの操作が可能です。マニュアルはこちらから
ということで、GitHub ActionsからAWS CLIを使ってオブジェクトストレージにアクセスを試してみました。
アクセストークンについて
オブジェクトストレージ利用開始時に、 アクセスキーID と シークレットアクセスキー が表示されます。こちらのアクセスキーは全てのバケットを操作できてしまうので、パーミッションメニューからバケットごとにアクセス件が設定なアクセスキーを生成するのがお勧めです。
(画像はマニュアルより)
アクセスキーを作成したら、GitHub Actionsを設定するrepositoryのSecretsに登録します。
Workflow の作成
GitHub ActionsでAWSへのアクセスを行う際には、
configure-aws-credentials
を使うことで設定をシンプルにすることができますが、このactionの中で aws sts get-caller-identity
相当のAPI呼び出しを行うため、オブジェクトストレージのアクセスキーではエラーになってしまい、今回は使うことができません。
なので、環境変数でアクセスキーを渡すようにしてワークフローを作ったところ動きました。
name: release on: push: branches: - main jobs: renew-cert: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: sync to object storage env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: eu-west-1 run: | aws --endpoint-url=https://s3.isk01.sakurastorage.jp s3 --only-show-errors --delete sync public_html/ s3://my-website-data/public_html/
aws
コマンドに --endpoint-url=https://s3.isk01.sakurastorage.jp
を渡せばオブジェクトストレージにアクセス可能です。
どうぞお試しあれ~
2021/03/03 追記
GitHub Actionsで
<botocore.awsrequest.AWSRequest object at 0x7f22f2d7d630>
のようなエラーが出る際は環境変数 AWS_REGION
を指定するか、awsコマンドに --region
オプションの追加をするとなおります。
参考