小编Mel*_*Guo的帖子

Redshift 计划查询错误通知

我正在使用 Redshift 计划查询来运行 UNLOAD 命令。如果查询失败,我希望收到通知。我启用了 SNS,但无论作业成功还是失败,消息都是相同的。如何仅在作业失败时收到通知?

更新:我可以使用以下命令获得带有错误消息的响应。如何设置 CloudWatch 或其他一些服务来监控此情况并发送通知?

aws redshift-data describe-statement --id {id} --region us-west-2

logging amazon-web-services amazon-sns amazon-cloudwatch amazon-redshift

6
推荐指数
1
解决办法
1671
查看次数

如何将 python 包安装到 Google Dataflow 并将其导入我的管道?

我的文件夹结构如下:

Project/
 --Pipeline.py
 --setup.py
 --dist/
  --ResumeParserDependencies-0.1.tar.gz
 --Dependencies/
        --Module1.py
        --Module2.py
        --Module3.py
Run Code Online (Sandbox Code Playgroud)

我的setup.py文件看起来像这样:

from setuptools import setup, find_packages

setup(name='ResumeParserDependencies',
  version='0.1',
  description='Dependencies',
  install_requires=[
   'google-cloud-storage==1.11.0',
   'requests==2.19.1',
   'urllib3==1.23'
    ],
  packages = ['Dependencies']
 )
Run Code Online (Sandbox Code Playgroud)

我使用 setup.py 文件使用“python setup.py sdist”创建了一个 tar.gz 文件。tar 文件位于 dist 文件夹中,名为 ResumeParserDependencies-0.1.tar.gz。然后我指定

setup_options.extra_packages = ['./dist/ResumeParserDependencies-0.1.tar.gz'] in my pipeline options.
Run Code Online (Sandbox Code Playgroud)

但是,一旦我在 Dataflow 上运行我的管道,我就会收到错误“没有名为 ResumeParserDependencies 的模块”。如果我在本地使用“pip install ResumeParserDependencies-0.1.tar.gz”,则会安装该软件包,并且我可以使用“pip freeze”看到它。


将包加载到 Dataflow 中我缺少什么?

python google-cloud-dataflow

5
推荐指数
1
解决办法
4475
查看次数

端点调用者没有权限

我有一个使用端点的 App Engine 部署。发送请求后,我的过程似乎成功完成。但是,当我检查日志时,我看到以下错误:

direct send of check request failed 
<module 'endpoints_management.control.check_request' from 
'/base/data/home/apps/s~[PROJECT]/20181214t082133.414677408142968625/endpoints_management/control/check_request.py'> 
Run Code Online (Sandbox Code Playgroud)

failed to flush report_req <ServicecontrolServicesReportRequest 
(/base/data/home/apps/s~[PROJECT]/20181214t082133.414677408142968625/endpoints_management/control/client.py:472)
Run Code Online (Sandbox Code Playgroud)

两者都有以下错误代码:

"error": { 
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"}
Run Code Online (Sandbox Code Playgroud)

我该如何解决这些错误?是否有需要额外权限的默认服务帐户?

google-app-engine python-2.7 google-cloud-endpoints google-cloud-platform

5
推荐指数
2
解决办法
1191
查看次数

如何使用 Cloud Composer/Apache Airflow 运行带有设置文件的 Dataflow 管道?

我有一个工作数据流管道,第一次运行setup.py以安装一些本地帮助程序模块。我现在想使用 Cloud Composer/Apache Airflow 来调度管道。我已经创建了 DAG 文件,并将其与管道项目一起放置在指定的 Google Storage DAG 文件夹中。文件夹结构如下所示:

{Composer-Bucket}/
    dags/
       --DAG.py
       Pipeline-Project/
           --Pipeline.py
           --setup.py
           Module1/
              --__init__.py
           Module2/
              --__init__.py
           Module3/
              --__init__.py
Run Code Online (Sandbox Code Playgroud)

我的 DAG 中指定 setup.py 文件的部分如下所示:

resumeparserop = dataflow_operator.DataFlowPythonOperator(
    task_id="resumeparsertask",
    py_file="gs://{COMPOSER-BUCKET}/dags/Pipeline-Project/Pipeline.py",
    dataflow_default_options={
        "project": {PROJECT-NAME},    
        "setup_file": "gs://{COMPOSER-BUCKET}/dags/Pipeline-Project/setup.py"})
Run Code Online (Sandbox Code Playgroud)

但是,当我查看 Airflow Web UI 中的日志时,出现错误:

RuntimeError: The file gs://{COMPOSER-BUCKET}/dags/Pipeline-Project/setup.py cannot be found. It was specified in the --setup_file command line option.
Run Code Online (Sandbox Code Playgroud)

我不确定为什么找不到安装文件。如何使用设置文件/模块运行我的数据流管道?

python-2.7 google-cloud-dataflow airflow google-cloud-composer

2
推荐指数
1
解决办法
2180
查看次数