Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Google Cloud Composer工作节点上更新gcloud?_Python_Google Cloud Platform_Airflow_Gcloud_Google Cloud Composer - Fatal编程技术网

Python 如何在Google Cloud Composer工作节点上更新gcloud?

Python 如何在Google Cloud Composer工作节点上更新gcloud?,python,google-cloud-platform,airflow,gcloud,google-cloud-composer,Python,Google Cloud Platform,Airflow,Gcloud,Google Cloud Composer,这里有一个类似的问题,但从2018年开始,解决方案是否需要改变工人的基本形象。另一个建议是使用ssh连接到每个节点并在那里安装。这似乎不太有用,因为当自动缩放生成新节点时,您需要一次又一次地执行此操作 无论如何,是否有合理的方法在2020年后期升级基础gcloud?因为任务实例在共享执行环境中运行,通常不建议在Composer Airflow任务中使用gcloud CLI(如果可能),以避免状态或版本冲突。例如,如果您有多个用户使用同一个Cloud Composer环境,并且其中一个用户更改了g

这里有一个类似的问题,但从2018年开始,解决方案是否需要改变工人的基本形象。另一个建议是使用ssh连接到每个节点并在那里安装。这似乎不太有用,因为当自动缩放生成新节点时,您需要一次又一次地执行此操作


无论如何,是否有合理的方法在2020年后期升级基础gcloud?

因为任务实例在共享执行环境中运行,通常不建议在Composer Airflow任务中使用gcloud CLI(如果可能),以避免状态或版本冲突。例如,如果您有多个用户使用同一个Cloud Composer环境,并且其中一个用户更改了gcloud使用的活动凭据,则他们可能会在不知情的情况下中断另一个用户的工作流

取而代之的是,考虑使用云SDK Python库来进行编程所需的操作,或者使用可能已经拥有您所需要的运算符。


如果确实需要使用gcloud CLI而不共享环境,则可以使用带有安装/升级脚本的
bash操作符来为需要使用CLI的任何任务创建先决条件。或者,您可以在安装gcloud的情况下构建自定义Docker映像,并使用
GKEPodOperator
KubernetesPodOperator
运行Kubernetes pod来运行CLI命令。这将更慢,但比每次验证依赖项更可靠。

由于任务实例在共享执行环境中运行,因此通常不建议在Composer Airflow任务中使用gcloud CLI(如果可能),以避免状态或版本冲突。例如,如果您有多个用户使用同一个Cloud Composer环境,并且其中一个用户更改了gcloud使用的活动凭据,则他们可能会在不知情的情况下中断另一个用户的工作流

取而代之的是,考虑使用云SDK Python库来进行编程所需的操作,或者使用可能已经拥有您所需要的运算符。


如果确实需要使用gcloud CLI而不共享环境,则可以使用带有安装/升级脚本的
bash操作符来为需要使用CLI的任何任务创建先决条件。或者,您可以在安装gcloud的情况下构建自定义Docker映像,并使用
GKEPodOperator
KubernetesPodOperator
运行Kubernetes pod来运行CLI命令。这会更慢,但比每次验证依赖关系更可靠。

更改基本映像有什么问题?你能提供你正在使用的映像的详细信息吗?类似的问题是什么?与基本映像混淆的问题是,我必须创建和管理该映像,这与使用托管服务提供的相反。因此,你的意思是修改(现有映像)而不是更改(针对不同的映像)。没有最新版本的映像适合您的需要?@yedpodtrzitko Composer支持自己的映像版本,它可以在环境的Kubernetes集群中自动管理映像。为这些群集中的服务手动更改映像被视为“超出保修范围”,通常不建议这样做。感谢您的回复。这就是我认为GCP上的托管服务的情况,因此我倾向于不走这条路线。更改基本映像有什么错?你能提供你正在使用的映像的详细信息吗?类似的问题是什么?与基本映像混淆的问题是,我必须创建和管理该映像,这与使用托管服务提供的相反。因此,你的意思是修改(现有映像)而不是更改(针对不同的映像)。没有最新版本的映像适合您的需要?@yedpodtrzitko Composer支持自己的映像版本,它可以在环境的Kubernetes集群中自动管理映像。为这些群集中的服务手动更改映像被视为“超出保修范围”,通常不建议这样做。感谢您的回复。这就是我认为GCP上的托管服务的情况,因此我倾向于不走这条路线。谢谢你的回答。我已经在许多GCP服务中广泛使用了Python SDK。不幸的是,似乎还没有一个用于谷歌云运行的SDK。具体地说,我想从Composer中做的是更新一个Cloud Run修订版,向其添加一个自定义标记(这样我就可以访问修订版,而无需向其发送流量)。在
1.10.6-composer
中,gcloud的版本是
googlecloudsdk300.0.0,beta 2020.07.06,core 2020.07.06
,其中该功能显然不可用。在出现更自然的替代方案之前,我一直坚持这样做:我按照您的建议,在我的DAG中运行bash命令升级gcloud。这并不特别引以为豪,但它正在完成任务。我已经考虑过让我的DAG的这一部分触发一个谷歌云构建,但是在我们的情况下会更干净,100%留在Composer中。谢谢你的回答。我已经在许多GCP服务中广泛使用了Python SDK。不幸的是,似乎还没有一个用于谷歌云运行的SDK。具体地说,我想从Composer中做的是更新一个Cloud Run修订版,向其添加一个自定义标记(这样我就可以访问修订版,而无需向其发送流量)。在
1.10.6-composer
中,gcloud的版本是
googlecloudsdk300.0.0,beta 2020.07.06,core 2020.07.06
,其中该功能显然不可用。在出现更自然的替代方案之前,我一直坚持这样做:我按照您的建议,在我的DAG中运行bash命令升级gcloud。这并不特别引以为豪,但它正在完成任务。我已经考虑过让我的DAG的这一部分触发谷歌云构建,但在我们的情况下会更干净,100%留在Composer中。