2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Prefect 2をGitHub Actionsからデプロイするときには `PREFECT_API_URL` を指定しよう

Last updated at Posted at 2022-12-27

Prefect Cloud + Fargateでバッチ処理のワークフローを作成するまで」にあるように、私はPrefectの実行環境を整えていて、GitHub ActionsによるCI/CD処理の自動化を試みています。

Prefect 2で、GitHub ActionsからS3のStorageを利用してデプロイする処理を実装したく、次のように PREFECT_API_KEY を利用してデプロイする実装をしていました。

.github/workflows/deploy.yml
# 本当はPythonのインストール等があるが省略
    - name: Configure AWS credentials
      uses: aws-actions/configure-aws-credentials@v1
      with:
        role-to-assume: ${{ env.AWS_ROLE }}
        role-session-name: github-deploy
        aws-region: ${{ env.AWS_REGION }}

    - name: Sample
      env:
        PREFECT_API_KEY: ${{ secrets.PREFECT_API_KEY }}
      run: |
        prefect deployment build sample_flow:sample_flow -n sample_flow -sb s3/sample_storage -t sample_tag
        prefect deployment apply 'sample_flow-deployment.yaml'

ところが、次のように「S3のblock typeに、(作成したはずの)sample_storageが存在しない」というエラーが出てしまいました。PCから prefect cloud login を利用した場合は、同様のコマンドを実施すると問題なくデプロイできる状態だったので不思議に思ってました。

ValueError: Unable to find block document named sample_storage for block type s3

これは明示的に環境変数で PREFECT_API_URL を指定すると問題なくデプロイできるようになりました。おそらくworkspaceが特定できていなかったものだと思います。

.github/workflows/deploy.yml
    - name: Sample
      env:
        PREFECT_API_KEY: ${{ secrets.PREFECT_API_KEY }}
+         PREFECT_API_URL: "https://api.prefect.cloud/api/accounts/${{ secrets.PREFECT_ACCOUNT_ID }}/workspaces/${{ secrets.PREFECT_WORKSPACE_ID }}"
      run: |
        prefect deployment build sample_flow:sample_flow -n sample_flow -sb s3/sample_storage -t sample_tag
        prefect deployment apply 'sample_flow-deployment.yaml'

AWSではなくGCEを使っている実装例ですが、こちらの実装を参考にしました。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?