Uso de la plataforma Go de - AWS App Runner

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de la plataforma Go de

La plataforma AWS App Runner Go proporciona tiempos de ejecución gestionados. Cada tiempo de ejecución facilita la creación y ejecución de contenedores con aplicaciones web basadas en una versión de Go. Cuando utilizas un motor de ejecución de Go, App Runner comienza con una imagen de tiempo de ejecución de Go gestionada. Esta imagen se basa en la imagen de Docker de Amazon Linux y contiene el paquete de tiempo de ejecución de una versión de Go y algunas herramientas. App Runner usa esta imagen de tiempo de ejecución administrada como imagen base y agrega el código de la aplicación para crear una imagen de Docker. A continuación, implementa esta imagen para ejecutar el servicio web en un contenedor.

Usted especifica un tiempo de ejecución para su servicio de App Runner al crear un servicio mediante la consola de App Runner o la operación de la CreateServiceAPI. También puedes especificar un tiempo de ejecución como parte de tu código fuente. Usa la runtime palabra clave en un archivo de configuración de App Runner que incluyas en tu repositorio de código. La convención de nomenclatura de un tiempo de ejecución gestionado es. <language-name><major-version>

Para ver los nombres y las versiones de los tiempos de ejecución de Go válidos, consulteInformación sobre la versión de Go Runtime.

App Runner actualiza el tiempo de ejecución del servicio a la versión más reciente en cada implementación o actualización del servicio. Si su aplicación requiere una versión específica de un tiempo de ejecución administrado, puede especificarla mediante la runtime-version palabra clave del archivo de configuración de App Runner. Puedes bloquearla en cualquier nivel de versión, incluida una versión principal o secundaria. App Runner solo realiza actualizaciones de nivel inferior en el tiempo de ejecución de tu servicio.

Sintaxis de versión para los tiempos de ejecución de Go: major[.minor[.patch]]

Por ejemplo: 1.18.7

Los siguientes ejemplos muestran el bloqueo de versiones:

  • 1.18— Bloquee las versiones principales y secundarias. App Runner actualiza solo las versiones con parches.

  • 1.18.7— Bloquear una versión de parche específica. App Runner no actualiza tu versión en tiempo de ejecución.

Configuración de tiempo de ejecución de Go

Al elegir un tiempo de ejecución gestionado, también debe configurar, como mínimo, los comandos de compilación y ejecución. Los configuras al crear o actualizar tu servicio App Runner. Puede hacerlo mediante uno de los siguientes métodos:

  • Mediante la consola de App Runner: especifique los comandos en la sección Configurar compilación del proceso de creación o en la pestaña de configuración.

  • Uso de la API de App Runner: llame a la operación CreateServiceo UpdateServiceAPI. Especifique los comandos mediante los StartCommand miembros BuildCommand y del tipo de CodeConfigurationValuesdatos.

  • Uso de un archivo de configuración: especifique uno o más comandos de compilación en un máximo de tres fases de compilación y un solo comando de ejecución que sirva para iniciar la aplicación. Hay opciones de configuración opcionales adicionales.

Proporcionar un archivo de configuración es opcional. Al crear un servicio de App Runner mediante la consola o la API, debe especificar si App Runner obtiene los ajustes de configuración directamente al crearlos o de un archivo de configuración.

Ejemplos de tiempo de ejecución de Go

Los siguientes ejemplos muestran los archivos de configuración de App Runner para crear y ejecutar un servicio Go.

En este ejemplo, se muestra un archivo de configuración mínimo que puede utilizar con un entorno de ejecución gestionado por Go. Para ver las suposiciones que App Runner hace con un archivo de configuración mínimo, consulteEjemplos de archivos de configuración.

ejemplo apprunner.yaml
version: 1.0 runtime: go1 build: commands: build: - go build main.go run: command: ./main

En este ejemplo, se muestra el uso de todas las claves de configuración con un entorno de ejecución gestionado por Go.

nota

La versión en tiempo de ejecución que se utiliza en estos ejemplos es la 1.18.7. Puede sustituirla por la versión que desee utilizar. Para ver la última versión de tiempo de ejecución de Go compatible, consulteInformación sobre la versión de Go Runtime.

ejemplo apprunner.yaml
version: 1.0 runtime: go1 build: commands: pre-build: - scripts/prebuild.sh build: - go build main.go post-build: - scripts/postbuild.sh env: - name: MY_VAR_EXAMPLE value: "example" run: runtime-version: 1.18.7 command: ./main network: port: 3000 env: APP_PORT env: - name: MY_VAR_EXAMPLE value: "example"

En estos ejemplos se muestra el código fuente de una aplicación Go completa que se puede implementar en un servicio de tiempo de ejecución de Go.

ejemplo main.go
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "<h1>Welcome to App Runner</h1>") }) fmt.Println("Starting the server on :3000...") http.ListenAndServe(":3000", nil) }
ejemplo apprunner.yaml
version: 1.0 runtime: go1 build: commands: build: - go build main.go run: command: ./main network: port: 3000 env: APP_PORT