CodeBuild での Python パッケージの使用 - CodeArtifact

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CodeBuild での Python パッケージの使用

次のステップは、 CodeBuild に用意されている Docker イメージ に記載されているオペレーティングシステムでテストされています。

IAM ロールを使用したアクセス許可の設定

これらのステップは、CodeBuild で CodeArtifact の Python パッケージを使用する場合に必要です。

  1. AWS Management Console にサインインして、https://console.aws.amazon.com/iam/ で IAM コンソールを開きます。

  2. ナビゲーションペインで Roles (ロール) を選択します。ロールページで、CodeBuild 構築プロジェクトで使用されるロールを編集します。このロールには、以下のアクセス許可が必要です。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeartifact:GetAuthorizationToken", "codeartifact:GetRepositoryEndpoint", "codeartifact:ReadFromRepository" ], "Resource": "*" }, { "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*", "Condition": { "StringEquals": { "sts:AWSServiceName": "codeartifact.amazonaws.com" } } } ] }
    重要

    CodeBuild を使用してパッケージを公開する場合は、codeartifact:PublishPackageVersion アクセス許可 を追加します。

    詳細については、IAM ユーザーガイドロールの変更 を参照してください。

ログインして pip または twine を使う

CodeBuild の Python パッケージを使用するには、プロジェクトの buildspec.yaml ファイルの pre-build セクションから login コマンドを実行し、pip を設定し、CodeArtifact からパッケージをフェッチします。詳細については、PythonでCodeArtifactを使う を参照してください。

login が正常に実行されたら、build セクションから pip コマンドを実行して Python パッケージをインストールまたは公開できます。

Linux

注記

古いCodeBuild イメージを使用している場合は、pip3 install awscli --upgrade --userでAWS CLIをアップグレードするだけです。最新のイメージバージョンを使用している場合は、その行を削除できます。

pip を使用して Python パッケージをインストールするには:

pre_build: commands: - pip3 install awscli --upgrade --user - aws codeartifact login --tool pip --domain my_domain --domain-owner 111122223333 --repository my_repo build: commands: - pip install requests

twine を使用して Python パッケージを公開するには:

pre_build: commands: - pip3 install awscli --upgrade --user - aws codeartifact login --tool twine --domain my_domain --domain-owner 111122223333 --repository my_repo build: commands: - twine upload --repository codeartifact mypackage

Windows

pip を使用して Python パッケージをインストールするには:

version: 0.2 phases: install: commands: - '[Net.ServicePointManager]::SecurityProtocol = "Tls12"; Invoke-WebRequest https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile $env:TEMP/AWSCLIV2.msi' - Start-Process -Wait msiexec "/i $env:TEMP\AWSCLIV2.msi /quiet /norestart" pre_build: commands: - '&"C:\Program Files\Amazon\AWSCLIV2\aws" codeartifact login --tool pip --domain my_domain --domain-owner 111122223333 --repository my_repo' build: commands: - pip install requests

twine を使用して Python パッケージを公開するには:

version: 0.2 phases: install: commands: - '[Net.ServicePointManager]::SecurityProtocol = "Tls12"; Invoke-WebRequest https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile $env:TEMP/AWSCLIV2.msi' - Start-Process -Wait msiexec "/i $env:TEMP\AWSCLIV2.msi /quiet /norestart" pre_build: commands: - '&"C:\Program Files\Amazon\AWSCLIV2\aws" codeartifact login --tool twine --domain my_domain --domain-owner 111122223333 --repository my_repo' build: commands: - twine upload --repository codeartifact mypackage