gpt4 book ai didi

gcloud - 将目录文件同步到 Google Cloud Composer dags/文件夹

转载 作者:行者123 更新时间:2023-12-05 02:07:45 24 4
gpt4 key购买 nike

我想通过一个简单的命令将我存储库中文件夹的内容同步到 GCP Composer dags/ 文件夹。

gcloud composer cli 似乎有一个命令,但是它留下了一个警告,表明对通配符的支持正在被删除。

>> gcloud composer environments storage dags import \
--source="dir/*" \
--environment={env_name} \
--location={loc}
WARNING: Use of gsutil wildcards is no longer supported in --source. Set the storage/use_gsutil property to get the old behavior back temporarily. However, this property will eventually be removed.

有没有一种方法可以使用此命令,将 dir 的内容扩展到未弃用的 composer dags/ 文件夹中?我查看了 gsutil rsync 但该命令使得忽略某些文件和目录变得非常困难。 GCloud 有一个很好的 .gcloudignore 文件可以为您处理这个问题。

最佳答案

自动化解决方案

有一种方法可以自动执行此操作。您将使用 Cloud BuildCloud Repositories

首先,在 Cloud Source Repository 上创建一个存储库,其中包含您的 dag 和插件。添加一个名为 cloudbuild.yaml 的文件,这将负责将您的文件与云存储同步。

├── cloudbuild.yaml
├── dags
│   └── airflow_monitoring.py
├── plugins
│   ├── hooks
│   │   └── my_hook.py
│   ├── operators
│   │   └── my_operator.py
│   └── sensors
│   └── my_sensor.py

cloudbuild.yaml 中,放入以下内容:

steps:
- name: ubuntu
args: ['bash', '-c', "echo '$COMMIT_SHA' > REVISION.txt"]
- name: gcr.io/cloud-builders/gsutil
args:
- '-m'
- 'rsync'
- '-d'
- '-r'
- 'dags'
- 'gs://${_GCS_BUCKET}/dags'
- name: gcr.io/cloud-builders/gsutil
args:
- '-m'
- 'rsync'
- '-d'
- '-r'
- 'plugins'
- 'gs://${_GCS_BUCKET}/plugins'

使用rsync命令,您可以同步源和目标之间已修改的文件。

现在,转到 Cloud Build 并使用以下配置创建触发器:

这里最重要的设置是源(这将是一个存储库)和分支。对该分支的每次推送都会触发构建。

settings - part 1

在第二部分中,有两件事很重要:

1 - 构建配置文件(如果您遵循上述相同的文件夹结构,请不要担心此步骤。如果您更改了 cloudbuild.yaml 文件的位置,请告知路径它在存储库中的位置)

2 - 创建一个名为 _GCS_BUCKET 的变量,其中包含您的 Cloud Composer 存储桶名称

settings - part 2

然后,只需单击创建,现在,每次您将内容推送到 master 分支时,存储库中的文件都会与您的 Cloud Composer 存储桶同步。

关于gcloud - 将目录文件同步到 Google Cloud Composer dags/文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61487782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com