Configurez le gestionnaire de packages Swift avec CodeArtifact - CodeArtifact

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configurez le gestionnaire de packages Swift avec CodeArtifact

Pour utiliser le Swift Package Manager afin de publier des packages vers ou de consommer des packages à partir de ceux-ci AWS CodeArtifact, vous devez d'abord configurer des informations d'identification pour accéder à votre CodeArtifact référentiel. La méthode recommandée pour configurer la CLI de Swift Package Manager avec vos CodeArtifact informations d'identification et le point de terminaison du référentiel consiste à utiliser la aws codeartifact login commande. Vous pouvez également configurer le Swift Package Manager manuellement.

Configurer Swift avec la commande de connexion

Utilisez la aws codeartifact login commande pour configurer le Swift Package Manager avec CodeArtifact.

Note

Pour utiliser la commande de connexion, Swift 5.8 ou version ultérieure est requis et Swift 5.9 ou version ultérieure est recommandé.

La aws codeartifact login commande effectuera les opérations suivantes :

  1. Récupérez un jeton d'authentification CodeArtifact et stockez-le dans votre environnement. La manière dont les informations d'identification sont stockées dépend du système d'exploitation de l'environnement :

    1. macOS : une entrée est créée dans l'application macOS Keychain.

    2. Linux et Windows : une entrée est créée dans le ~/.netrc fichier.

    Dans tous les systèmes d'exploitation, s'il existe une entrée d'informations d'identification, cette commande remplace cette entrée par un nouveau jeton.

  2. Récupérez l'URL du point de terminaison de votre CodeArtifact dépôt et ajoutez-la à votre fichier de configuration Swift. La commande ajoute l'URL du point de terminaison du référentiel au fichier de configuration au niveau du projet situé à l'adresse/path/to/project/.swiftpm/configuration/registries.json.

Note

La aws codeartifact login commande appelle swift package-registry des commandes qui doivent être exécutées à partir du répertoire contenant le Package.swift fichier. Pour cette raison, aws codeartifact login la commande doit être exécutée depuis le projet Swift.

Pour configurer Swift à l'aide de la commande de connexion
  1. Accédez au répertoire du projet Swift qui contient le Package.swift fichier de votre projet.

  2. Exécutez la commande suivante aws codeartifact login.

    Si vous accédez à un référentiel dans un domaine qui vous appartient, vous n'avez pas besoin de l'inclure--domain-owner. Pour de plus amples informations, veuillez consulter Domaines multi-comptes.

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

L'--namespaceoption configure l'application pour qu'elle ne consomme les packages de votre CodeArtifact dépôt que s'ils se trouvent dans l'espace de noms désigné. CodeArtifact les espaces de noms sont synonymes de portées et sont utilisés pour organiser le code en groupes logiques et pour éviter les collisions de noms qui peuvent se produire lorsque votre base de code inclut plusieurs bibliothèques.

La période d'autorisation par défaut après l'appel login est de 12 heures et login doit être appelée pour actualiser régulièrement le jeton. Pour plus d'informations sur le jeton d'autorisation créé avec la login commande, consultezJetons créés avec la login commande.

Configurer Swift sans la commande de connexion

Bien qu'il soit recommandé de configurer Swift avec la aws codeartifact login commande, vous pouvez également configurer le Swift Package Manager sans la commande de connexion en mettant à jour manuellement la configuration du Swift Package Manager.

Dans la procédure suivante, vous allez utiliser le AWS CLI pour effectuer les opérations suivantes :

  1. Récupérez un jeton d'authentification CodeArtifact et stockez-le dans votre environnement. La manière dont les informations d'identification sont stockées dépend du système d'exploitation de l'environnement :

    1. macOS : une entrée est créée dans l'application macOS Keychain.

    2. Linux et Windows : une entrée est créée dans le ~/.netrc fichier.

  2. Récupérez l'URL du point de terminaison de votre CodeArtifact dépôt.

  3. Dans le fichier ~/.swiftpm/configuration/registries.json de configuration, ajoutez une entrée avec l'URL du point de terminaison de votre référentiel et le type d'authentification.

Pour configurer le Swift sans la commande de connexion
  1. Dans une ligne de commande, utilisez la commande suivante pour récupérer un jeton CodeArtifact d'autorisation et le stocker dans une variable d'environnement.

    • Remplacez my_domain par votre nom de CodeArtifact domaine.

    • Remplacez 111122223333 par l'ID de AWS compte du propriétaire du domaine. Si vous accédez à un référentiel dans un domaine qui vous appartient, vous n'avez pas besoin de l'inclure--domain-owner. Pour de plus amples informations, veuillez consulter Domaines multi-comptes.

    macOS and Linux
    export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
    Windows
    • Windows (en utilisant l'interface de commande par défaut) :

      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
    • Fenêtres PowerShell :

      $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text
  2. Obtenez le point de terminaison de votre CodeArtifact dépôt en exécutant la commande suivante. Le point de terminaison de votre dépôt est utilisé pour faire pointer le Swift Package Manager vers votre dépôt afin de consommer ou de publier des packages.

    • Remplacez my_domain par votre nom de CodeArtifact domaine.

    • Remplacez 111122223333 par l'ID de AWS compte du propriétaire du domaine. Si vous accédez à un référentiel dans un domaine qui vous appartient, vous n'avez pas besoin de l'inclure--domain-owner. Pour de plus amples informations, veuillez consulter Domaines multi-comptes.

    • Remplacez my_repo par le nom de votre CodeArtifact dépôt.

    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 (en utilisant l'interface de commande par défaut) :

      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
    • Fenêtres PowerShell :

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

    L'URL suivante est un exemple de point de terminaison du référentiel.

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

    Vous devez l'ajouter à la login fin du point de terminaison de l'URL du référentiel lorsque vous l'utilisez pour configurer le Swift Package Manager. Cela est fait pour vous dans les commandes de cette procédure.

  3. Ces deux valeurs étant stockées dans des variables d'environnement, transmettez-les à Swift à l'aide de la swift package-registry login commande suivante :

    macOS and Linux
    swift package-registry login ${CODEARTIFACT_REPO}login --token ${CODEARTIFACT_AUTH_TOKEN}
    Windows
    • Windows (en utilisant l'interface de commande par défaut) :

      swift package-registry login %CODEARTIFACT_REPO%login --token %CODEARTIFACT_AUTH_TOKEN%
    • Fenêtres PowerShell :

      swift package-registry login $Env:CODEARTIFACT_REPO+"login" --token $Env:CODEARTIFACT_AUTH_TOKEN
  4. Ensuite, mettez à jour le registre des packages utilisé par votre application afin que toute dépendance soit extraite de votre CodeArtifact référentiel. Cette commande doit être exécutée dans le répertoire du projet où vous essayez de résoudre la dépendance du package :

    macOS and Linux
    $ swift package-registry set ${CODEARTIFACT_REPO} [--scope my_scope]
    Windows
    • Windows (en utilisant l'interface de commande par défaut) :

      $ swift package-registry set %CODEARTIFACT_REPO% [--scope my_scope]
    • Fenêtres PowerShell :

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

    L'--scopeoption configure l'application pour qu'elle ne consomme les packages de votre CodeArtifact référentiel que s'ils se situent dans le périmètre désigné. Les étendues sont synonymes d'CodeArtifact espaces de noms et sont utilisées pour organiser le code en groupes logiques et pour éviter les collisions de noms qui peuvent se produire lorsque votre base de code inclut plusieurs bibliothèques.

  5. Vous pouvez vérifier que la configuration a été correctement configurée en consultant le contenu du .swiftpm/configuration/registries.json fichier au niveau du projet en exécutant la commande suivante dans le répertoire de votre projet :

    $ 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 }

Maintenant que vous avez configuré le gestionnaire de packages Swift avec votre CodeArtifact dépôt, vous pouvez l'utiliser pour publier et utiliser des packages Swift depuis et vers celui-ci. Pour de plus amples informations, veuillez consulter Consommation et publication de packages Swift.