簡體   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