Configure el Swift Package Manager con CodeArtifact - CodeArtifact

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.

Configure el Swift Package Manager con CodeArtifact

Para usar el Swift Package Manager para publicar o consumir paquetes AWS CodeArtifact, primero tendrás que configurar las credenciales para acceder a tu CodeArtifact repositorio. El método recomendado para configurar la CLI de Swift Package Manager con sus CodeArtifact credenciales y el punto final del repositorio es mediante el aws codeartifact login comando. También puede configurar el Swift Package Manager manualmente.

Configurar Swift con el comando login

Utilice el aws codeartifact login comando para configurar el Swift Package Manager con CodeArtifact.

nota

Para usar el comando de inicio de sesión, se requiere Swift 5.8 o posterior y se recomienda Swift 5.9 o posterior.

El comando aws codeartifact login hará lo siguiente:

  1. Obtenga un token de autenticación CodeArtifact y guárdelo en su entorno. La forma en que se almacenan las credenciales depende del sistema operativo del entorno:

    1. macOS: se crea una entrada en la aplicación MacOS Keychain.

    2. Linux y Windows: se crea una entrada en el archivo ~/.netrc.

    En todos los sistemas operativos, si existe una entrada de credenciales, este comando la reemplaza por un nuevo token.

  2. Busca la URL del punto final de tu CodeArtifact repositorio y agrégala a tu archivo de configuración de Swift. El comando añade la URL del punto de conexión del repositorio al archivo de configuración a nivel de proyecto ubicado en /path/to/project/.swiftpm/configuration/registries.json.

nota

El comando aws codeartifact login llama a comandos swift package-registry que deben ejecutarse desde el directorio que contiene el archivo Package.swift. Por ello, debe ejecutarse el comando aws codeartifact login desde el proyecto Swift.

Para configurar Swift con el comando login
  1. Navegue hasta el directorio del proyecto Swift que contiene el archivo Package.swift de su proyecto.

  2. Ejecute el siguiente comando de la aws codeartifact login.

    Si va a acceder a un repositorio de un dominio de su propiedad, no tiene que incluir --domain-owner. Para obtener más información, consulte Dominios entre cuentas.

    aws codeartifact login --tool swift --domain my_domain \ --domain-owner 111122223333 --repository my_repo \ [--namespace my_namespace]

La --namespace opción configura la aplicación para que solo consuma paquetes de tu CodeArtifact repositorio si están en el espacio de nombres designado. CodeArtifact Los espacios de nombres son sinónimos de ámbitos y se utilizan para organizar el código en grupos lógicos y evitar las colisiones de nombres que pueden producirse cuando la base de código incluye varias bibliotecas.

El período de autorización predeterminado después de una llamada login es de 12 horas y login debe invocarse para actualizar periódicamente el token. Para obtener más información sobre el token de autorización creado con el comando login, consulte Tokens creados con el comando login.

Configurar Swift sin el comando login

Si bien se recomienda configurar Swift con el comando aws codeartifact login, también puede configurar Swift Package Manager sin el comando login actualizando manualmente la configuración de Swift Package Manager.

En el siguiente procedimiento, utilizará el AWS CLI para hacer lo siguiente:

  1. Obtenga un token de autenticación CodeArtifact y guárdelo en su entorno. La forma en que se almacenan las credenciales depende del sistema operativo del entorno:

    1. macOS: se crea una entrada en la aplicación MacOS Keychain.

    2. Linux y Windows: se crea una entrada en el archivo ~/.netrc.

  2. Obtenga la URL del punto final de su CodeArtifact repositorio.

  3. En el archivo de configuración ~/.swiftpm/configuration/registries.json, añada una entrada con la URL del punto de conexión del repositorio y el tipo de autenticación.

Para configurar Swift sin el comando login
  1. En una línea de comandos, usa el siguiente comando para obtener un token de CodeArtifact autorización y almacenarlo en una variable de entorno.

    • Sustituye my_domain por tu CodeArtifact nombre de dominio.

    • Sustituya 111122223333 por el ID de AWS cuenta del propietario del dominio. Si va a acceder a un repositorio de un dominio de su propiedad, no tiene que incluir --domain-owner. Para obtener más información, consulte Dominios entre cuentas.

    macOS and Linux
    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
    Windows
    • Windows (mediante el intérprete de comandos predeterminado):

      for /f %i in ('aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i
    • Windows: PowerShell

      $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text
  2. Obtenga el punto final de su CodeArtifact repositorio ejecutando el siguiente comando. El punto de conexión de su repositorio se utiliza para dirigir el Swift Package Manager a su repositorio para consumir o publicar paquetes.

    • Sustituye my_domain por tu nombre de CodeArtifact dominio.

    • Sustituya 111122223333 por el ID de AWS cuenta del propietario del dominio. Si va a acceder a un repositorio de un dominio de su propiedad, no tiene que incluir --domain-owner. Para obtener más información, consulte Dominios entre cuentas.

    • Sustituye my_repo por el nombre de tu repositorio. CodeArtifact

    macOS and Linux
    export CODEARTIFACT_REPO=`aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format swift --query repositoryEndpoint --output text`
    Windows
    • Windows (mediante el intérprete de comandos predeterminado):

      for /f %i in ('aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format swift --query repositoryEndpoint --output text') do set CODEARTIFACT_REPO=%i
    • PowerShellWindows:

      $env:CODEARTIFACT_REPO = aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format swift --query repositoryEndpoint --output text

    La siguiente URL es un punto de conexión de repositorio de ejemplo.

    https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/swift/my_repo/
    importante

    Debe añadir login al final del punto de conexión de la URL del repositorio cuando se utilice para configurar el Swift Package Manager. Esto se hace automáticamente en los comandos de este procedimiento.

  3. Con estos dos valores almacenados en variables de entorno, páselos a Swift usando el comando swift package-registry login de la siguiente manera:

    macOS and Linux
    swift package-registry login ${CODEARTIFACT_REPO}login --token ${CODEARTIFACT_AUTH_TOKEN}
    Windows
    • Windows (mediante el intérprete de comandos predeterminado):

      swift package-registry login %CODEARTIFACT_REPO%login --token %CODEARTIFACT_AUTH_TOKEN%
    • Ventanas PowerShell:

      swift package-registry login $Env:CODEARTIFACT_REPO+"login" --token $Env:CODEARTIFACT_AUTH_TOKEN
  4. A continuación, actualice el registro de paquetes utilizado por la aplicación para que cualquier dependencia se extraiga del CodeArtifact repositorio. Este comando debe ejecutarse en el directorio del proyecto en el que intenta resolver la dependencia del paquete:

    macOS and Linux
    $ swift package-registry set ${CODEARTIFACT_REPO} [--scope my_scope]
    Windows
    • Windows (mediante el intérprete de comandos predeterminado):

      $ swift package-registry set %CODEARTIFACT_REPO% [--scope my_scope]
    • Windows PowerShell:

      $ swift package-registry set $Env:CODEARTIFACT_REPO [--scope my_scope]

    La --scope opción configura la aplicación para que solo consuma paquetes de tu CodeArtifact repositorio si están dentro del ámbito designado. Los ámbitos son sinónimos de CodeArtifact espacios de nombres y se utilizan para organizar el código en grupos lógicos y evitar las colisiones de nombres que pueden producirse cuando la base de código incluye varias bibliotecas.

  5. Para confirmar que la configuración se ha configurado correctamente, consulte el contenido del archivo .swiftpm/configuration/registries.json a nivel de proyecto ejecutando el siguiente comando en el directorio del proyecto:

    $ cat .swiftpm/configuration/registries.json { "authentication" : { }, "registries" : { "[default]" : { "url" : "https://my-domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/swift/my-repo/" } }, "version" : 1 }

Ahora que has configurado el Swift Package Manager con tu CodeArtifact repositorio, puedes usarlo para publicar y consumir paquetes Swift desde y hacia él. Para obtener más información, consulte Consumir y publicar paquetes de Swift.