Создавайте интерактивные веб-приложения с помощью Shiny Apps и AWS Amplify

В современном цифровом мире создание интерактивных веб-приложений стало важнейшим требованием для многих компаний и разработчиков. Две популярные технологии, которые могут помочь вам в этом, — это Shiny Apps и AWS Amplify. Shiny Apps — это пакет R, который позволяет создавать интерактивные веб-приложения непосредственно из кода R, а AWS Amplify — это облачная платформа разработки, которая упрощает процесс создания, развертывания и масштабирования веб-приложений. В этой статье мы рассмотрим различные методы использования возможностей Shiny Apps и AWS Amplify для создания динамичных и интересных веб-приложений.

Методы:

  1. Приложения Shiny с RStudio:
    Приложения Shiny можно создавать с использованием RStudio, интегрированной среды разработки (IDE) для R. Вот простой пример приложения Shiny, отображающего диаграмму рассеяния:
library(shiny)
ui <- fluidPage(
  titlePanel("Shiny Scatter Plot"),
  sidebarLayout(
    sidebarPanel(
      sliderInput("n_points", "Number of Points", min = 10, max = 100, value = 50)
    ),
    mainPanel(
      plotOutput("scatter_plot")
    )
  )
)
server <- function(input, output) {
  output$scatter_plot <- renderPlot({
    plot(rnorm(input$n_points), rnorm(input$n_points), main = "Scatter Plot")
  })
}
shinyApp(ui = ui, server = server)
  1. Настройка AWS Amplify.
    Чтобы использовать возможности AWS Amplify, вам необходимо создать учетную запись и настроить свой проект. Вот шаги для начала:
  • Установить интерфейс командной строки Amplify: npm install -g @aws-amplify/cli
  • Инициализируйте Amplify в каталоге вашего проекта: amplify init
  • Настройте ресурсы AWS: amplify add apiили amplify add storage, в зависимости от требований вашего приложения.
  • Разверните приложение: amplify push
  1. Развертывание приложений Shiny с помощью AWS Amplify.
    Как только у вас будет готов код приложения Shiny, вы можете развернуть его с помощью AWS Amplify. Вот как это можно сделать:
  • Создайте свое блестящее приложение: R -e "shiny::runApp('path/to/your/app')"
  • Создайте новое приложение Amplify: amplify add hosting
  • Разверните приложение Shiny: amplify publish
  1. Добавление аутентификации и авторизации.
    AWS Amplify предоставляет простые в использовании сервисы аутентификации и авторизации. Вот пример того, как вы можете добавить аутентификацию пользователя в свое приложение Shiny с помощью AWS Amplify:
library(shiny)
library(aws.s3)
ui <- fluidPage(
  titlePanel("Shiny App with User Authentication"),
  sidebarLayout(
    sidebarPanel(
      actionButton("login_button", "Login")
    ),
    mainPanel(
      conditionalPanel(
        condition = "output.logged_in",
        plotOutput("scatter_plot")
      )
    )
  )
)
server <- function(input, output, session) {

  output$logged_in <- reactive({
    !is.null(session$user)
  })

  observeEvent(input$login_button, {
    if (is.null(session$user)) {
      # Authenticate with AWS Amplify here
      # ...
    } else {
      # Log out the user
      # ...
    }
  })

  output$scatter_plot <- renderPlot({
    if (!is.null(session$user)) {
      # Plot data for authenticated user
      # ...
    }
  })
}
shinyApp(ui = ui, server = server)

Объединение возможностей Shiny Apps и AWS Amplify открывает мир возможностей для создания интерактивных веб-приложений. В этой статье мы рассмотрели различные методы: от разработки приложений Shiny с помощью RStudio до их развертывания с помощью AWS Amplify. Мы также узнали, как добавить аутентификацию и авторизацию в наши приложения Shiny. Используя эти технологии, разработчики могут создавать привлекательные и масштабируемые веб-приложения, отвечающие потребностям пользователей.