首页 > 解决方案 > 在独立的 html 页面中使用 javascript AWS SDK

问题描述

我正在尝试创建一个非常简单的页面来发送 SQL Athena 查询以向我的同事展示我的工作。我真的很想在**独立的 HTML 页面**上保持简单和愚蠢。我不想使用任何 node.js 或其他框架。这不是一个完整的项目,只是一个演示。

我从AWS 文档用法开始,因为 NodeJs 需要require关键字,所以我找到了一个名为RequireJs的 js 库,它应该可以导入所需的东西aws-sdk/client-athena。这是小页面:

<html>
    <head>
        <title>Athena demo</title>
        <script type="text/javascript" src="https://requirejs.org/docs/release/2.3.6/minified/require.js"></script>
    </head>
    <body>
        <h1>Athena demo</h1>
        <p>Pure javascript powered</p>
        <script>
            try {
                requirejs(["aws-sdk/client-athena"], function(AWS) {
                    // a client can be shared by different commands.
                    const client = new AthenaClient({
                        accessKeyId: "xxxxxxxxxxx",
                        secretAccessKey: "yyyyyyyyyy",
                        region: "eu-west-1"
                    });
                    const params = {
                        QueryString: 'Select 1',
                        OutputLocation: `s3://bucket-name/`,
                    };
                    client.send(command).then(function(data) {
                      console.log('Success');
                    }).catch(function(err) {
                        alert(error);
                        console.log(err);
                    });
                });
            } catch (error) {
                alert(error);
                console.error(error);
            }
        </script>
    </body>
</html>

但是,require.js似乎无法正常工作,因为我在 javascript 控制台中遇到了这些错误:

require.js:5 GET file:///D:/path/to/project/aws-sdk/client-athena.js net::ERR_FILE_NOT_FOUND
require.js:5 Uncaught Error: Script error for "aws-sdk/client-athena"
https://requirejs.org/docs/errors.html#scripterror
    at makeError (require.js:5)
    at HTMLScriptElement.onScriptError (require.js:5)

没有 RequireJs,我得到了AthenaClient is not defined,这很明显,我错过了一些导入。

您是否有任何示例或提示可以在单个脚本中使用 AWS 开发工具包 Athena 客户端,无论是否使用 RequireJs?

标签: javascriptrequirejsaws-sdkamazon-athenaaws-sdk-js

解决方案


推荐阅读