调用 Azure 表存储时,Azure SWA 函数响应不正确

问题描述 投票:0回答:1

我在 Azure SWA 中有一个 api,需要从 Azure 表存储检索数据。

我正在 M1 MAC 上使用 VSCode 运行本地开发,带有 Function 和 SWA 扩展(一个开发容器),并且 Docker 配置为使用 Rosetta。

函数正确返回静态数据。响应具有正确的内容类型和有效负载。即使在表客户端上调用 .listEntities 也会导致响应具有纯文本/文本内容类型和空负载。有什么想法吗?

取消listEntities中三行的注释将导致响应为空。

const client = new TableClient(`https://${account}.table.core.windows.net`,
    tableName,sharedKeyCredential);

const good = [{id:3,value:"foo"}];

const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
    listEntities()
        .then(e => {
            context.res = {
                status: 200,
                headers: {'Content-Type': 'application/json'},
                body: {info:e}             };
        });
};

async function listEntities(): Promise<any[]> {
//     for await (const entity of client.listEntities()) {
//         console.log("working");
//    };
    return good;
}

export default httpTrigger;
azure azure-functions azure-table-storage azure-static-web-app azure-tableclient
1个回答
0
投票

原来我错过了触发函数中的返回。应该返回 Promise,而不仅仅是调用链。

 ...
 const httpTrigger: AzureFunction = async function (context: Context, req: 
    HttpRequest): Promise<void> {
       return listEntities()
          .then(e => {
 ...
© www.soinside.com 2019 - 2024. All rights reserved.