AWS ProtonGA API 遷移 - AWS Proton

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS ProtonGA API 遷移

AWS Proton於 2020 年 12 月在 re: 發明上推出,供公眾預覽。我們非常興奮地介紹AWS Proton給客戶。從那時起已經 6 個月了。在此期間,我們一直在開發對客戶很重要的功能,並確保AWS Proton不辜負的操作標準AWS。此外,我們已經完善我們的 API。

除非您使用主控台,否則 API 就是您與我們通訊的方式。我們希望盡可能簡單和自然地進行溝通。在與客戶會面並仔細檢查我們的 API 之後,我們決定 API 需要進行一些更改。

不幸的是,其中許多人正在突破變化。現在,AWSSDK中斷 API。所以我們故意沒有啟動AWS適用於我們公開預覽版本的 SDK,因為我們希望保持開放 API 改進機會。這就是為什麼您只能存取AWS Proton透過主控台和AWS CLI(使用這個整潔的功能)。

很快,我們將在 GA 中推出,我們將被添加到AWS開發套件。在 5 月 20 日和我們的 GA 版本之間,我們將推出新的 API 更改。主控台仍然可以繼續運作。如果您在終端機或服務管道中使用 CLI,在某些時候您可能會遇到中斷。很抱歉造成您的不便。我們相信您會發現新的 API 改進非常值得遷移。有關遷移的更多信息AWS Proton資源,請繼續閱讀下列各節。

將 CLI 移轉至新的 API

如果您的 CLI 命令使用舊的 API,您將通過異常收到通知。事實上,這種例外狀況可能會將您連結在這裡。

首先,您需要在 CLI 中更新 Proton 模型:

$ aws s3 cp s3://aws-proton-preview-public-files/model/proton-2020-07-20.normal.json . $ aws s3 cp s3://aws-proton-preview-public-files/model/waiters2.json . $ aws configure add-model --service-model file://proton-2020-07-20.normal.json --service-name proton-preview $ mv waiters2.json ~/.aws/models/proton-preview/2020-07-20/waiters-2.json $ rm proton-2020-07-20.normal.json

然後,您將需要開始使用新的參數和 API。一般來說,CLI 在讓您知道現在需要哪些參數方面做得很好。例如,命令:

$ aws proton-preview create-environment-template --template-name "my-template"

變成:

$ aws proton-preview create-environment-template --name "my-template"

如需變更的完整清單,請參閱下一節。

逐步列出 API 變更

例外
目前名稱 新名稱

InvalidEncryptionKeyException

ValidationException

InvalidInputException

ValidationException

ResourceAlreadyExistsException

ConflictException

ConflictingOperationException

ConflictException

LimitExceededException

ServiceQuotaExceededException

ThrottledException

ThrottlingException

NotFoundException

ResourceNotFoundException

ServiceException

InternalServerException

輸入參數
API 目前名稱 新名稱 必要 行為變更

CreateEnvironment

EnvironmentName

environmentTemplateArn

templateMajorVersionId

templateMinorVersionId

name

templateName

templateMajorVersion

templateMinorVersion

-

ARN 到字串

-

-

UpdateEnvironment

EnvironmentName

templateMajorVersionId

templateMinorVersionId

versionUpdateType

name

templateMajorVersion

templateMinorVersion

deploymentType

-

-

-

-

DeleteEnvironment

EnvironmentName

name

-

GetEnvironment

EnvironmentName

name

-

ListEnvironments

environmentTemplateMajorVersionArns

環境模板

僅限資料類型

CreateEnvironmentTemplate

templateName

name

-

UpdateEnvironmentTemplate

templateName

name

-

DeleteEnvironmentTemplate

templateName

name

-

GetEnvironmentTemplate

templateName

name

-

UpdateEnvironmentTemplateMajorVersion

majorVersionId

主要版本

-

DeleteEnvironmentTemplateMajorVersion

majorVersionId

主要版本

-

GetEnvironmentTemplateMajorVersion

majorVersionId

主要版本

-

CreateEnvironmentTemplateMinorVersion

majorVersionId

主要版本

-

UpdateEnvironmentTemplateMinorVersion

majorVersionId

minorVersionId

主要版本

次要版本

-

-

DeleteEnvironmentTemplateMinorVersion

majorVersionId

minorVersionId

主要版本

次要版本

-

-

GetEnvironmentTemplateMinorVersion

majorVersionId

minorVersionId

主要版本

次要版本

-

-

ListEnvironmentTemplateMinorVersions

majorVersionId

主要版本

-

CreateService

serviceName

serviceTemplateArn

templateMajorVersionId

templateMinorVersionId

name

templateName

templateMajorVersion

templateMinorVersion

-

ARN 到字串

-

-

UpdateService

serviceName

name

-

DeleteService

serviceName

name

-

GetService

serviceName

name

-

GetServiceInstance

serviceInstanceName

name

-

UpdateServiceInstance

serviceInstanceName

templateMajorVersionId

templateMinorVersionId

versionUpdateType

name

templateMajorVersion

templateMinorVersion

deploymentType

-

-

-

-

UpdateServicePipeline

templateMajorVersionId

templateMinorVersionId

versionUpdateType

templateMajorVersion

templateMinorVersion

deploymentType

-

-

-

CreateServiceTemplate

templateName

已啟用管線

name

管線佈建

-

布林值

UpdateServiceTemplate

templateName

name

-

DeleteServiceTemplate

templateName

name

-

GetServiceTemplate

templateName

name

-

UpdateServiceTemplateMajorVersion

majorVersionId

主要版本

-

DeleteServiceTemplateMajorVersion

majorVersionId

主要版本

-

GetServiceTemplateMajorVersion

majorVersionId

主要版本

-

CreateServiceTemplateMinorVersion

majorVersionId

主要版本

-

UpdateServiceTemplateMinorVersion

majorVersionId

minorVersionId

主要版本

次要版本

-

-

DeleteServiceTemplateMinorVersion

majorVersionId

minorVersionId

主要版本

次要版本

-

-

GetServiceTemplateMinorVersion

majorVersionId

minorVersionId

主要版本

次要版本

-

-

ListServiceTemplateMinorVersions

majorVersionId

主要版本

-

輸出參數
資源 目前名稱 新名稱 行為變更

Environment (環境)

EnvironmentName

lastDeploymentAttempt時間

lastSuccessfulDeployment時間

environmentTemplateArn

templateMajorVersionId

templateMinorVersionId

name

lastDeploymentAttempted在

lastDeploymentSucceeded在

templateName

templateMajorVersion

templateMinorVersion

-

-

-

ARN 到字串

-

-

EnvironmentTemplate

templateName

name

-

EnvironmentTemplateMajorVersion

majorVersionId

主要版本

-

EnvironmentTemplateMinorVersion

majorVersionId

minorVersionId

主要版本

次要版本

-

-

服務

serviceName

serviceTemplateArn

name

templateName

-

ARN 到字串

ServiceInstance

serviceInstanceName

lastDeploymentAttempt時間

lastSuccessfulDeployment時間

環境保護

serviceTemplateArn

templateMajorVersionId

templateMinorVersionId

name

lastDeploymentAttempted在

lastDeploymentSucceeded在

EnvironmentName

templateName

templateMajorVersion

templateMinorVersion

-

-

-

ARN 到字串

ARN 到字串

-

-

ServicePipeline

lastDeploymentAttempt時間

lastSuccessfulDeployment時間

serviceTemplateArn

templateMajorVersionId

templateMinorVersionId

lastDeploymentAttempted在

lastDeploymentSucceeded在

templateName

templateMajorVersion

templateMinorVersion

-

-

ARN 到字串

-

-

ServiceTemplate

templateName

name

-

ServiceTemplateData

已啟用管線

管線佈建

-

ServiceTemplateMajorVersion

majorVersionId

主要版本

-

ServiceTemplateMinorVersion

majorVersionId

minorVersionId

主要版本

次要版本

-

-

列舉列
列舉類型 目前值 全新值

ServiceStatus

建立 (_已啟動)

更新 (_ 已啟動)

刪除 (_S) 已開始

CREATE_IN_PROGRESS

UPDATE_IN_PROGRESS

DELETE_IN_PROGRESS

VersionUpdateType

不部署 (_D)

更新規格

NONE

目前版本

Other (其他)

ProvisionedStacks環境執行個體管道 Outputs已移除屬性。

將範本升級為新格式

根據我們過去 6 個月的經驗,我們對服務和環境模板文件結構進行了一些更改,以及對提供給 Jinja 的數據進行了更改。AfterAWS Proton去 GAAWS Proton無法接受使用舊格式的範本,您會看到錯誤訊息。事實上,這種類型的錯誤可能會把你帶到這裡。

轉換環境範本

  1. 重新命名engine在您的財產manifest.yaml下列範例所示的檔案。

    之前:

    infrastructure: templates: - file: "cloudformation.yaml" engine: jinja template_language: cloudformation

    之後:

    infrastructure: templates: - file: "cloudformation.yaml" rendering_engine: jinja template_language: cloudformation
  2. 如下列範例所示,更新範本 Jinja 名空間。

    將變更

    environment.my_param

    至:

    environment.inputs.my_param

轉換服務範本

  1. 重新命名engine在您的財產manifest.yaml下列範例所示的檔案。

    之前:

    infrastructure: templates: - file: "cloudformation.yaml" engine: jinja template_language: cloudformation

    之後:

    infrastructure: templates: - file: "cloudformation.yaml" rendering_engine: jinja template_language: cloudformation
  2. 重新命名infrastructure目錄instance_infrastructure

  3. 重新命名pipeline目錄pipeline_infrastructure

  4. 如下列範例所示,更新您的服務執行個體範本 Jinja 名稱空間。

    1. 將變更

      service_instance.my_param

      至:

      service_instance.inputs.my_param
    2. 將變更

      service_name

      至:

      service.name
    3. 將變更

      service_instance_name

      至:

      service_instance.name
  5. 如下列範例所示,更新管線範本 Jinja 名稱空間。

    1. 將變更

      service_name

      至:

      service.name
    2. 將變更

      source.repository

      至:

      service.repository_id
    3. 將變更

      source.branch

      至:

      service.branch_name
    4. 將變更

      source.connection_arn

      至:

      service.repository_connection_arn
    5. 將變更

      pipeline.my_param

      至:

      pipeline.inputs.my_param
    6. service_instances用來包含每個執行個體的輸入。我們意識到它是更合適的提供輸出,如下面的例子所示。

      將變更

      service_instances[0].spec.my_input

      至:

      service_instances[0].outputs.my_output

      my_output在執行個體基礎結構中,必須以程式碼檔案的形式列為輸出。