Go のクロスコンパイル機能は Go の強みの 1 つであり、開発者は開発マシンからさまざまなターゲット環境用のバイナリを簡単に構築できます。これは、ローカル開発環境とは異なる OS とアーキテクチャの組み合わせで実行される可能性がある AWS Lambda などのクラウド環境にアプリケーションをデプロイする場合に特に便利です。
例:
x86 アーキテクチャの Windows マシンで開発している場合でも、次のように AWS Lambda 用の Go バイナリをコンパイルできます。
GOOS=linux GOARCH=amd64 go build -o main main.go
上記のコマンドは、Linux OS および AMD64 アーキテクチャと互換性があり、AWS Lambda へのデプロイに適した main という名前のバイナリを生成します。
はい、GOOS=linux と GOARCH=amd64 を設定すると、AWS Lambda 関数が実行される環境である Linux オペレーティング システムと AMD64 アーキテクチャ向けに Go バイナリが確実に構築されます。このビルド プロセスは、開発者のマシンの OS やアーキテクチャには依存しません。 Go コンパイラーは、さまざまなオペレーティング システムやアーキテクチャのバイナリをクロスコンパイルできるため、開発マシンが異なる OS やアーキテクチャを実行している場合でも、AWS Lambda 環境で実行されるバイナリを構築できます。
さらに詳しい説明は次のとおりです:
GOOS: この環境変数は、Go バイナリのターゲット オペレーティング システムを設定します。 GOOS=linux を設定すると、バイナリが AWS Lambda で使用される Linux OS と互換性を持つことが保証されます。
GOARCH: この環境変数は、Go バイナリのターゲット アーキテクチャを設定します。 GOARCH=amd64 を設定すると、バイナリが AWS Lambda で使用される AMD64 アーキテクチャと互換性を持つことが保証されます。
異なるオペレーティング システム (Windows や macOS など) またはアーキテクチャ (ARM など) で開発している場合でも、これらの環境変数を設定すると、指定されたターゲット環境用のバイナリを生成するように Go コンパイラーに指示されます。
以上がAWS Lambda の Go でのクロスコンパイルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。