我只想将 id + 一些值添加到 DynamoDb 一次。如果 id 已经存在,它应该什么都不做或更新
我可以去
search
if not found > insert
if found > do nothing or update (for now do nothing is fine)
Run Code Online (Sandbox Code Playgroud)
但希望有更好的方法来做到这一点。id 应该是要检查的关键。
这是节点中的代码:
const dynamodbParams = {
TableName: process.env.DYNAMODB_TABLE_BLICKANALYTICS,
Item: {
id: userId,
createdAt: timestamp
},
};
dynamoDb.put(dynamodbParams).promise()
.then(data => {
console.log('saved: ', dynamodbParams);
})
.catch(err => {
console.error(err);
});
Run Code Online (Sandbox Code Playgroud)
我在 yml 中使用它。不知道yml有没有设置这个选项
resources:
Resources:
DynamoDbTableExpenses:
Type: 'AWS::DynamoDB::Table'
DeletionPolicy: Retain
Properties:
AttributeDefinitions:
-
AttributeName: id
AttributeType: S
-
AttributeName: createdAt
AttributeType: N …Run Code Online (Sandbox Code Playgroud) 我尝试在烧瓶模板中输出pandas数据帧.我的想法是将它转换为json然后遍历表格
我测试了这个
jsonfiles = df.to_json(orient='records')
return render_template('index.html', ctrsuccess=jsonfiles)
Run Code Online (Sandbox Code Playgroud)
在模板中,我尝试输出如下:
{%if ctrsuccess %}
<div class="table-responsive">
<table class="table table-striped">
<tbody>
{%for ctrrow in ctrsuccess %}
<tr>
<td>{{ ctrrow['positionint'] }}</td>
</tr>
{%endfor%}
</tbody>
</table>
</div>
{%endif%}
Run Code Online (Sandbox Code Playgroud)
在模板中,如果我只是绘制ctrsuccess,我会得到一个正确的json.但桌子是空的
[{"positionint":1.0,"clicks":1138.0,"impressions":4768.0,"ctr":0.2386744966,"clickCtr10p":1251.8,"clickCtr50p":1707.0,"clickCtr100p":2276.0},{"positionint":2.0,"clicks":3160.0,"impressions":49899.0,"ctr":0.0633279224,"clickCtr10p":3476.0,"clickCtr50p":4740.0,"clickCtr100p":6320.0},{"positionint":3.0,"clicks":1255.0,"impressions":50020.0,"ctr":0.025089964,"clickCtr10p":1380.5,"clickCtr50p":1882.5,"clickCtr100p":2510.0},{"positionint":4.0,"clicks":363.0,"impressions":39077.0,"ctr":0.0092893518,"clickCtr10p":399.3,"clickCtr50p":544.5,"clickCtr100p":726.0},{"positionint":5.0,"clicks":216.0,"impressions":18419.0,"ctr":0.011727021,"clickCtr10p":237.6,"clickCtr50p":324.0,"clickCtr100p":432.0},{"positionint":6.0,"clicks":307.0,"impressions":15447.0,"ctr":0.0198744093,"clickCtr10p":337.7,"clickCtr50p":460.5,"clickCtr100p":614.0},{"positionint":7.0,"clicks":248.0,"impressions":24709.0,"ctr":0.0100368287,"clickCtr10p":272.8,"clickCtr50p":372.0,"clickCtr100p":496.0},{"positionint":8.0,"clicks":236.0,"impressions":26853.0,"ctr":0.0087885897,"clickCtr10p":259.6,"clickCtr50p":354.0,"clickCtr100p":472.0},{"positionint":9.0,"clicks":139.0,"impressions":26577.0,"ctr":0.0052300862,"clickCtr10p":152.9,"clickCtr50p":208.5,"clickCtr100p":278.0},{"positionint":10.0,"clicks":23.0,"impressions":2046.0,"ctr":0.0112414467,"clickCtr10p":25.3,"clickCtr50p":34.5,"clickCtr100p":46.0},{"positionint":null,"clicks":7085.0,"impressions":257815.0,"ctr":null,"clickCtr10p":7793.5,"clickCtr50p":10627.5,"clickCtr100p":14170.0},{"positionint":null,"clicks":null,"impressions":null,"ctr":null,"clickCtr10p":1417.0,"clickCtr50p":7085.0,"clickCtr100p":14170.0}]
Run Code Online (Sandbox Code Playgroud) 我尝试在 firebase 函数中运行 puppeteer。据我了解 https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md#running-puppeteer-on-google-cloud-functions 它应该可以添加
"engines": {
"node": "8"
},
Run Code Online (Sandbox Code Playgroud)
在 package.json 中。我得到了它使用 firebase deploy 的积极反馈
functions: updating Node.js 8 function helloWorld(us-central1)...
Run Code Online (Sandbox Code Playgroud)
可悲的是它兑现了
Error: Error: Failed to launch chrome!
[0408/080847.149912:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md
at startPuppeteer.then.then.then.catch.error (/srv/index.js:42:15)
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:229:7)
Run Code Online (Sandbox Code Playgroud)
在本地测试了相同的代码。
那是失败的云函数代码。
const functions = require('firebase-functions');
const puppeteer = require('puppeteer');
let browser = ""
let page = ""
const startPuppeteer = async () => {
browser = await puppeteer.launch(); …Run Code Online (Sandbox Code Playgroud)