将ACCS中的Node.js应用程序连接到Exadata Express

原文作者:Dan McGhan 原文地址:https://dzone.com/articles/connecting-a-nodejs-app-in-accs-to-exadata-express

我最爱的云服务OracleExadata云快递服务Exadata(Express)和容器应用云服务(ACCS)。Exadata表达是一种全面管理Oracle数据库服务入门级的价格点对于小型到中型尺寸数据和ACCS的部署应用docker容器。在这篇文章中,我将演示如何连接这两个服务在最基层。

什么是“最基层”?第一,我不是给大家演示如何创建Oracle云服务账户——这两个我就假定你已经做了。此外,演示应用程序后将简约。通常,可以使用云开发者服务创建一个git repo(git 本地库)使用自动构建过程——而不是在这里。这篇文章将只关注所需要的一些连接这两个服务。

创建测试APP

创建一个新目录名字连接试验--APP并添加以下两个文件。

manifest.json:

{

"runtime":{

"majorVersion":"6"

},

"command": "node index.js",

"release": {},

"notes": ""

}

ACCS应用程序常常具有一个或两个元数据文件。在这种情况下,manifest.json用于指定版本的node.js来运行的命令和启动应用程序。

index.js:

const http = require('http');

const oracledb = require('oracledb');

let error;

let user;

oracledb.getConnection(

{

user: process.env.EECS_USER,

password: process.env.EECS_PASSWORD,

connectString: 'dbaccess'

},

function(err, connection) {

if (err) {error = err; return;}

connection.execute('select user from dual', [], function(err, result) {

if (err) {error = err; return;}

user = result.rows[0][0];

error = null;

connection.close(function(err) {

if (err) {console.log(err);}

});

})

}

);

http.createServer(function(request, response) {

response.writeHead(200, {'Content-Type': 'text/plain'});

if (error === null) {

response.end('Connection test succeeded. You connected to Exadata Express as ' + user + '!');

} else if (error instanceof Error) {

response.write('Connection test failed. Check the settings and redeploy app!\n');

response.end(error.message);

} else {

response.end('Connection test pending. Refresh after a few seconds...');

}

}).listen(process.env.PORT);

index.js包含运行逻辑连接测试线(6-26),并且使用简单的Web服务器,让我们知道测试的结果(28-39行)。注意,通过环境三个变量的引用process.env。端口限定的ACCS但是,在其他环境变量将在上一步中创建的教程。

添加客户端证书

要连接Exadata Express,您必须先下载客户端证书。打开浏览器,登录到Oracle云账号。然后去到Exadata快递服务控制台中,选择的服务实例的那种,然后点击下载客户端证书。

image.png

客户端的证书下载前,将提示您输入密码。你需要密码连接到Exadata表示使用JavaKeystore(例如,SQLDeveloper),但是当没有连接到OCI的数据库(例如,节点-oracledb)。

输入并确认密码,然后单击下载。一个名叫client_credentials.zip将下载到您的计算机上。一旦下载,您必须将该文件可靠地防止未经授权访问数据库。

提取的内容client_credentials.zip到文件连接试验--APP目录已创建。该目录的内容应如下所示:

image.png

改变到目录客户机证书目录和打开sqlnet.ora在文件的文本编辑器。改变目录/网络/管理?以需要客户端证书/_。注意,当部署一个应用程序,该应用程序的文件复制到需要目录的容器。在sqlnet.ora文件必须指向客户端凭据,可以有所不同,这取决于环境。

部署应用程序

在这一点上,我们可以部署应用程序和。改变目录备份到连接测试程序压缩内容(不是目录本身)在一个新的压缩文件,命名为Archive.zip。

image.png

返回到浏览器,并导航到服务控制台的ACCS。点击创建应用按钮。

image.png

选择Node作为应用平台。

image.png

设定的应用程序名eecstest使用中,档案文件选择器来选择应用的在上一步中创建的存档,并且然后设置实例存储器选项1。点击创建以开始展开过程。

image.png

该应用程序将出现在列表中的应用程序,你可以获得ACCS的URL。

image.png

如果您导航到URL,在浏览器中,你会看到,测试就失败了——这是可预期的。

image.png

最后一个步骤就是做好一切工作。..

添加环境变量

返回到ACCS服务控制台,并进入到中eecstest app中。选择左侧的部署选项,并单击环境变量下的Add按钮。

image.png

将名称设置为TNS_ADMIN,并将其值设置为$ APP_HOME/ client_credentials,然后单击Save。

image.png

重复前面的步骤,创建两个更多的环境变量。第一个将命名为EECS_USER,它的值将是您想要连接的Exadata Express数据库用户的用户名。最后一个环境变量将命名为EECS_PASSWORD,其值将是EECS_USER中指定的数据库用户的密码。

在创建了三个环境变量之后,滚动到顶部并单击Apply Edits按钮。这将重新部署应用程序与新的设置。

image.png

在部署应用程序之后,您可以导航到它的URL,在那里您应该看到连接测试已经成功。

image.png

正如您所看到的,一旦知道移动的部分是什么,连接这两个服务并不困难。在使用真正的应用程序时,我建议将客户端凭证与应用程序文件分开。

如果在本地开发,则TNS_ADMIN环境变量可以指向用于dev的客户端凭证的本地副本。 在ACCS中部署到其他环境时,可以使用开发人员云服务构建流程从Storage Service中下载正确的客户端凭据,并将其添加到应用程序文件,然后将其部署到ACCS。

本文的版权归 用户1169992 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏跟着阿笨一起玩NET

c#实现打印功能

3592
来自专栏魂祭心

原 canvas绘制clock

5004
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

6906
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2820
来自专栏杨龙飞前端

scrollto 到指定位置

2894
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2732
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2767
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

5798
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3625
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

3268

扫码关注云+社区