blob: dd7aa455bcb303fa62b60b47f5dbf21ac736d9ac [file] [log] [blame]
<!--
Javascript to render AIRFLOW-XXX and PR references in text
as HTML links.
Overrides extrahead block from sphinx_rtd_theme
https://www.sphinx-doc.org/en/master/templating.html
-->
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>gRPC &mdash; Airflow Documentation</title>
<link rel="shortcut icon" href="../../_static/pin_32.png"/>
<script type="text/javascript" src="../../_static/js/modernizr.min.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script type="text/javascript" src="../../_static/jquery.js"></script>
<script type="text/javascript" src="../../_static/underscore.js"></script>
<script type="text/javascript" src="../../_static/doctools.js"></script>
<script type="text/javascript" src="../../_static/language_data.js"></script>
<script type="text/javascript" src="../../_static/jira-links.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/graphviz.css" type="text/css" />
<link rel="stylesheet" href="../../_static/exampleinclude.css" type="text/css" />
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="MySQL Connection" href="mysql.html" />
<link rel="prev" title="Google Cloud SQL Connection" href="gcp_sql.html" />
<script>
</script>
<style>
</style>
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../index.html" class="icon icon-home"> Airflow
</a>
<div class="version">
1.10.8
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../project.html">Project</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../license.html">License</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../start.html">Quick Start</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorial.html">Tutorial</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">How-to Guides</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../set-config.html">Setting Configuration Options</a></li>
<li class="toctree-l2"><a class="reference internal" href="../initialize-database.html">Initializing a Database Backend</a></li>
<li class="toctree-l2"><a class="reference internal" href="../operator/index.html">Using Operators</a></li>
<li class="toctree-l2"><a class="reference internal" href="../custom-operator.html">Creating a custom Operator</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="index.html">Managing Connections</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="index.html#creating-a-connection-with-the-ui">Creating a Connection with the UI</a></li>
<li class="toctree-l3"><a class="reference internal" href="index.html#editing-a-connection-with-the-ui">Editing a Connection with the UI</a></li>
<li class="toctree-l3"><a class="reference internal" href="index.html#creating-a-connection-with-environment-variables">Creating a Connection with Environment Variables</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="index.html#connection-types">Connection Types</a><ul class="current">
<li class="toctree-l4"><a class="reference internal" href="aws.html">Amazon Web Services Connection</a></li>
<li class="toctree-l4"><a class="reference internal" href="gcp.html">Google Cloud Platform Connection</a></li>
<li class="toctree-l4"><a class="reference internal" href="gcp_sql.html">Google Cloud SQL Connection</a></li>
<li class="toctree-l4 current"><a class="current reference internal" href="#">gRPC</a></li>
<li class="toctree-l4"><a class="reference internal" href="mysql.html">MySQL Connection</a></li>
<li class="toctree-l4"><a class="reference internal" href="oracle.html">Oracle Connection</a></li>
<li class="toctree-l4"><a class="reference internal" href="postgres.html">PostgresSQL Connection</a></li>
<li class="toctree-l4"><a class="reference internal" href="ssh.html">SSH Connection</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../secure-connections.html">Securing Connections</a></li>
<li class="toctree-l2"><a class="reference internal" href="../secure-connections.html#rotating-encryption-keys">Rotating encryption keys</a></li>
<li class="toctree-l2"><a class="reference internal" href="../write-logs.html">Writing Logs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../run-behind-proxy.html">Running Airflow behind a reverse proxy</a></li>
<li class="toctree-l2"><a class="reference internal" href="../run-with-systemd.html">Running Airflow with systemd</a></li>
<li class="toctree-l2"><a class="reference internal" href="../run-with-upstart.html">Running Airflow with upstart</a></li>
<li class="toctree-l2"><a class="reference internal" href="../use-test-config.html">Using the Test Mode Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../check-health.html">Checking Airflow Health Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="../define_extra_link.html">Define an operator extra link</a></li>
<li class="toctree-l2"><a class="reference internal" href="../email-config.html">Email Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tracking-user-activity.html">Tracking User Activity</a></li>
<li class="toctree-l2"><a class="reference internal" href="../cli-completion.html">Using the Command Line Interface</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../ui.html">UI / Screenshots</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../concepts.html">Concepts</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../profiling.html">Data Profiling</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../cli.html">Command Line Interface Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../scheduler.html">Scheduling &amp; Triggers</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../executor/index.html">Executor</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../plugins.html">Plugins</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../security.html">Security</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../timezone.html">Time zones</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../api.html">REST API Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../integration.html">Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../metrics.html">Metrics</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../errors.html">Error Tracking</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../kubernetes.html">Kubernetes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../lineage.html">Lineage</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../dag-serialization.html">DAG Serialization</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../changelog.html">Changelog</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../best-practices.html">Best Practices</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../faq.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../macros.html">Macros reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../privacy_notice.html">Privacy Notice</a></li>
</ul>
<p class="caption"><span class="caption-text">References</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../../_api/index.html">Python API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../configurations-ref.html">Configurations</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Airflow</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html">Docs</a> &raquo;</li>
<li><a href="../index.html">How-to Guides</a> &raquo;</li>
<li><a href="index.html">Managing Connections</a> &raquo;</li>
<li>gRPC</li>
<li class="wy-breadcrumbs-aside">
<a href="../../_sources/howto/connection/grpc.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<blockquote>
<div></div></blockquote>
<div class="section" id="grpc">
<h1>gRPC<a class="headerlink" href="#grpc" title="Permalink to this headline"></a></h1>
<p>The gRPC connection type enables integrated connection to a gRPC service</p>
<div class="section" id="authenticating-to-grpc">
<h2>Authenticating to gRPC<a class="headerlink" href="#authenticating-to-grpc" title="Permalink to this headline"></a></h2>
<p>There are several ways to connect to gRPC service using Airflow.</p>
<ol class="arabic simple">
<li><p>Using <code class="docutils literal notranslate"><span class="pre">NO_AUTH</span></code> mode, simply setup an insecure channel of connection.</p></li>
<li><p>Using <code class="docutils literal notranslate"><span class="pre">SSL</span></code> or <code class="docutils literal notranslate"><span class="pre">TLS</span></code> mode, supply a credential pem file for the connection id,
this will setup SSL or TLS secured connection with gRPC service.</p></li>
<li><p>Using <code class="docutils literal notranslate"><span class="pre">JWT_GOOGLE</span></code> mode. It is using google auth default credentials by default,
further use case of getting credentials from service account can be add later on.</p></li>
<li><p>Using <code class="docutils literal notranslate"><span class="pre">OATH_GOOGLE</span></code> mode. Scopes are required in the extra field, can be setup in the UI.
It is using google auth default credentials by default,
further use case of getting credentials from service account can be add later on.</p></li>
<li><p>Using <code class="docutils literal notranslate"><span class="pre">CUSTOM</span></code> mode. For this type of connection, you can pass in a connection
function takes in the connection object and return a gRPC channel and supply whatever
authentication type you want.</p></li>
</ol>
</div>
<div class="section" id="default-connection-ids">
<h2>Default Connection IDs<a class="headerlink" href="#default-connection-ids" title="Permalink to this headline"></a></h2>
<p>The following connection IDs are used by default.</p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">grpc_default</span></code></dt><dd><p>Used by the <a class="reference internal" href="../../_api/airflow/contrib/hooks/grpc_hook/index.html#airflow.contrib.hooks.grpc_hook.GrpcHook" title="airflow.contrib.hooks.grpc_hook.GrpcHook"><code class="xref py py-class docutils literal notranslate"><span class="pre">GrpcHook</span></code></a>
hook.</p>
</dd>
</dl>
</div>
<div class="section" id="configuring-the-connection">
<h2>Configuring the Connection<a class="headerlink" href="#configuring-the-connection" title="Permalink to this headline"></a></h2>
<dl class="simple">
<dt>Host</dt><dd><p>The host url of the gRPC server</p>
</dd>
<dt>Port (Optional)</dt><dd><p>The port to connect to on gRPC server</p>
</dd>
<dt>Auth Type</dt><dd><p>Authentication type of the gRPC connection.
<code class="docutils literal notranslate"><span class="pre">NO_AUTH</span></code> by default, possible values are
<code class="docutils literal notranslate"><span class="pre">NO_AUTH</span></code>, <code class="docutils literal notranslate"><span class="pre">SSL</span></code>, <code class="docutils literal notranslate"><span class="pre">TLS</span></code>, <code class="docutils literal notranslate"><span class="pre">JWT_GOOGLE</span></code>,
<code class="docutils literal notranslate"><span class="pre">OATH_GOOGLE</span></code>, <code class="docutils literal notranslate"><span class="pre">CUSTOM</span></code></p>
</dd>
<dt>Credential Pem File (Optional)</dt><dd><p>Pem file that contains credentials for
<code class="docutils literal notranslate"><span class="pre">SSL</span></code> and <code class="docutils literal notranslate"><span class="pre">TLS</span></code> type auth
Not required for other types.</p>
</dd>
<dt>Scopes (comma separated) (Optional)</dt><dd><p>A list of comma-separated <a class="reference external" href="https://developers.google.com/identity/protocols/googlescopes">Google Cloud scopes</a> to
authenticate with.
Only for <code class="docutils literal notranslate"><span class="pre">OATH_GOOGLE</span></code> type connection</p>
</dd>
</dl>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="mysql.html" class="btn btn-neutral float-right" title="MySQL Connection" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="gcp_sql.html" class="btn btn-neutral float-left" title="Google Cloud SQL Connection" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
<div class="footer">This page uses <a href="https://analytics.google.com/">
Google Analytics</a> to collect statistics. You can disable it by blocking
the JavaScript coming from www.google-analytics.com. Check our
<a href="../../privacy_notice.html">Privacy Policy</a>
for more details.
</div>
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<!-- Theme Analytics -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-140539454-1', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>