将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 条评论
登录 后参与评论

相关文章

来自专栏Samego开发资源

使用Nginx反代理访问Git解决413问题

1686
来自专栏.net core新时代

在线文档预览方案-office web apps

  最近在做项目时,要在手机端实现在线文档预览的功能。于是百度了一下实现方案,大致是将文档转换成pdf,然后在通过插件实现预览。这些方案没有具体实现代码,也没有...

4119
来自专栏运维技术迷

Centos安装sshfs实现挂载目录

SSH 是一个强大且安全的工具,我们除了可以用它来远程管理主机外,还可以通过它建立 SSH tunnel作 Proxy用,远程传输文件等等。而这里我想要介绍另外...

3636
来自专栏实战docker

Docker下dubbo开发,三部曲之一:极速体验

DUBBO是一个分布式服务框架,从本章开始,我们由浅入深,先体验再实战,逐步入门dubbo服务的开发、部署和调用,本章的目标是以最快的速度体验dubbo服务; ...

2287
来自专栏owent

LLVM + Clang + Libcxx + Libcxxabi 工具链编译

LLVM和Clang工具链的生成配置文件写得比较搓,所以略微麻烦,另外这个脚本没有经过多环境测试,不保证在其他Linux发行版里正常使用。

461
来自专栏owent

[记录]虚拟硬盘的压缩|磁盘写零

用虚拟机软件虚拟出来的硬盘文件会随着使用而变大,因为磁盘碎片的产生,这个文件里也有很多的没用的空闲空间,为了节省空间,可以对虚拟硬盘文件进行压缩。

1014
来自专栏PHP技术

在Mac下使用MAMP Pro环境

以前,我使用Windows作为自己的工作系统,后来,改用Mac作为自己的主要工作系统了。 在Windows下,快速搭建*AMP环境,使用xampp或者WAMP之...

5006
来自专栏difcareer的技术笔记

修改手机的ro.debuggable配置0x01:获取boot.img0x02:修改boot.img0x03:boot.img相关0x04:变砖后的自救

我们自己编译的源码刷机ro.debuggable就是为1,这个时候所有的进程都可以远程调试。但是自己编译的源码里面没有GooglePlay,有些应用的部分功能又...

693
来自专栏前端笔记

【新手科普】windows和wordpress的“上帝模式”你知道嘛?

一、Windows 上帝模式 这个玩意出来很久很久了,估计不用多说,知道的同学还是挺多的,不知道的也只要百度一下,你就知道了。 方法很简单,在 Windows ...

2364
来自专栏晨星先生的自留地

提权(2) windows权限分析

1773

扫码关注云+社区