繁体   English   中英

如何在我的 React Native 应用程序中合并 AWS 和 Python?

[英]How do I incorporate AWS and Python in my React Native App?

我正在构建一个 React Native 应用程序,它将从Coastal Data Information Program获取浮标数据。 我能够从 CDIP 获取数据,但我想将 AWS 合并到我的应用程序中。 我的目标是在我的应用程序中更新拉刷新浮标数据。 我的应用程序大部分都完成了,但现在如何将浮标数据导入我的应用程序? CDIP 使用 Python API。 这是我第一次创建应用程序,所以我不确定实现我的目标需要什么。 我搜索了一下,似乎可以使用 AWS(API Gateway、AWS Lambda 和 DynamoDB)。 我假设我将使用 API 网关中的端点来访问数据。 这是我认为我需要做的布局。 Would I put the CDIP python code in the lambda function then the lambda function updates the database? 是否需要数据库? 使用数据库有什么好处吗? 数据库的目的是什么? lambda function 能否在 CDIP 每次更新其数据时更新数据库? 我不打算存储以前的浮标读数; 我只想显示当前的浮标读数。 提前致谢!

Addition: I am trying to get the following code to be executed by the lambda function and returned to my React Native App as a json object.

import netCDF4

# List of buoy names
buoy_names = ['KODIAK, AK', 'ANGELES POINT, WA', 'GRAYS HARBOR, WA', 'CLATSOP SPIT, OR', 'ASTORIA CANYON, OR', 'UMPQUA OFFSHORE, OR', 'HUMBOLDT BAY NORTH SPIT, CA', 'CAPE MENDOCINO, CA', 'POINT REYES, CA', 'SAN FRANCISCO BAR, CA', 'POINT SANTA CRUZ, CA', 'MONTEREY BAY WEST, CA', 'CABRILLO POINT NEARSHORE, CA', 'POINT SUR, CA', 'DIABLO CANYON, CA', 'SANTA LUCIA ESCARPMENT, CA', 'HARVEST, CA', 'TOPANGA NEARSHORE, CA', 'SANTA MONICA BAY, CA', 'SANTA CRUZ BASIN, CA', 'LONG BEACH CHANNEL, CA', 'SAN PEDRO, CA', 'SAN PEDRO SOUTH, CA', 'SAN NICOLAS ISLAND, CA', 'OCEANSIDE OFFSHORE, CA', 'DEL MAR NEARSHORE, CA', 'TORREY PINES OUTER, CA', 'SCRIPPS NEARSHORE, CA', 'MISSION BAY WEST, CA', 'IMPERIAL BEACH NEARSHORE, CA', 'POINT LOMA SOUTH, CA', 'OCEAN STATION PAPA', 'HANALEI, KAUAI, HI', 'WAIMEA BAY, HI', 'MOKAPU POINT, HI', 'BARBERS POINT, KALAELOA, HI', 'PEARL HARBOR ENTRANCE, HI', 'PAUWELA, MAUI, HI', 'KAUMALAPAU SOUTHWEST, LANAI, HI']

# List of buoy stations
stations = ['236', '248', '036', '162', '179', '139', '168', '094', '029', '142', '254', '185', '158', '157', '076', '222', '071', '103', '028', '203', '215', '092', '213', '067', '045', '153', '100', '201', '220', '155', '191', '166', '202', '106', '098', '238', '233', '187', '239']

i = 0
for stn in stations:
   # CDIP Realtime Dataset URL
   data_url = 'http://thredds.cdip.ucsd.edu/thredds/dodsC/cdip/realtime/' + stn + 'p1_rt.nc'

   # Open Remote Dataset from CDIP THREDDS Server
   nc = netCDF4.Dataset(data_url)

   # current waveHs - Significant Wave Height (meters). 1D variable based on: (waveTime). Range: 0-20.
   Hs = nc.variables['waveHs'][-1]

   # current waveTp - Peak Wave Period (seconds). 1D variable based on: (waveTime). Range: 0-40.
   Tp = nc.variables['waveTp'][-1]

   # current waveDp - Peak Wave Direction (degrees True). 1D variable based on: (waveTime). Includes compensation via (magnetic declination - INT(metaDeclination) to shift to degrees true. Range: 0-360.
   Dp = nc.variables['waveDp'][-1]

   # current sstSeaSurfaceTemperature - Sea Surface Temperature (Celsius). 1D variable based on: (sstTime). Range: -5.0 - 46.15.
   Sst = nc.variables['sstSeaSurfaceTemperature'][-1]

   # print buoy data
   print(buoy_names[i] + " - Station " + stn)
   i = i + 1
   print("Significant Wave Height: " + str(round(Hs * 3.28084, 1)) + "ft/" + str(round(float(Hs), 1)) + "m")
   print("Peak Period: " + str(round(float(Tp))) + "s")
   print("Peak Wave Direction: " + str(round(float(Dp))) + "°")
   print("Sea Surface Temperature: " + str(round((Sst * (9/5)) + 32, 1)) + "°F/" + str(round(float(Sst), 1)) + "°C\n")

您可以编写一个 lambda 来获取数据,返回数据作为对您的应用程序的响应,并且这个 lambda 可以通过您可以从您的应用程序调用的 API 网关端点触发。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM