Flex Gateway新着情報
Governance新着情報
Monitoring API Managerアダプターをプロビジョニングした後で、API を作成してサービスをバインドする必要があります。API は Anypoint Platform または Anypoint Service Mesh を使用して作成できます。
Anypoint Platform を使用して API を作成する
API 仕様ファイルが 550KB より大きい場合に Anypoint Platform を使用して API を作成します。REST API または OAS アセットタイプをアップロードする場合は、.json
、.raml
、.zip
、または .yaml
ファイルを使用します。SOAP API または WSDL アセットタイプをアップロードする場合は、.wsdl
または .xml
ファイルを使用します。
Anypoint Service Mesh の Autocreate 機能を使用した API の作成
Anypoint Platform で API を自動的に作成するように Anypoint Service Mesh を設定できます (手動でのロギングは不要です)。REST API や SOAP API など、仕様ファイルを必要とする API を作成する場合は、CLI がアップロードできるように、仕様ファイルが 550KB を超えず、ファイルシステムで利用できることを確認してください。
Anypoint Platform を使用して API を作成するには、次の手順を実行します。
[Anypoint Platform] > [API Manager] に移動し、[Manage API (API を管理)] ドロップダウンリストを選択します。
[Create new API (新しい API を作成)] を選択します。
[Creating an asset (アセットの作成)] ページが表示されます。
API の [Name (名前)] と [Asset types (アセットタイプ)] の詳細を指定します。
アセットは再利用するため Exchange で作成されるようになりました。アセットを作成したら、エンドポイント設定を行う準備ができました。
[Endpoint Configuration (エンドポイント設定)] ウィンドウが表示されます。
[Managing type (管理種別)] 項目で、[Basic Endpoint (基本エンドポイント)] ラジオボタンを選択します。
[Application type (アプリケーション種別)] 項目で、[Non-Mule application (非 Mule アプリケーション)] ラジオボタンを選択します。
必要に応じて、[Implementation URI (実装 URI)] を指定し、[Save (保存)] をクリックします。
API が作成されます。
2022 年 10 月 29 日以降、API の Autocreate 機能に関するユーザーログイン情報オプションはサポートされなくなりました。接続アプリケーション方式に移行する必要があります。詳細は、下記のセクションと「Obtain Connected Apps credentials page (接続アプリケーションのログイン情報ページの取得)」を参照してください。 |
Anypoint Service Mesh の Autocreate 機能を使用して API を作成する場合は、認証に接続アプリケーションのログイン情報を使用できます。このオプションは、次のユーザーに使用できます。
Anypoint Platform または外部 IdP によって管理されている
多要素認証は有効にしていてもしていなくてもよい
Anypoint Service Mesh の Autocreate 機能を設定する前に、以下を確認してください。
以下を取得します。
接続アプリケーションからのクライアント ID とクライアントシークレット
Exchange のアセットのグループの ID (例: 組織 ID)
これらのクライアントログイン情報に以下が含まれていることを確認します。
API を Exchange にパブリッシュするための「Exchange Contributor (Exchange コントリビューター)」権限
API Manager で API を管理するための「Manage API Configuration (API 設定の管理)」権限
接続アプリケーションを使用して API を自動作成するには、次の手順を実行します。
API 定義ファイルを作成し、.yaml ファイル拡張子を付けて保存します (例: test-api.yaml
)。
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceInstance
metadata:
name: _Kubernetes API resource name_ # example: orders-api
namespace: _namespace name_ # example: default
labels:
service-mesh.mulesoft.com/kind: api
spec:
clusterServiceClassExternalName: anypoint-platform-api-instance
clusterServicePlanExternalName: service-mesh
parameters:
environmentId: _environment ID_ # example: 7cea45c6-3237-464d-bd34-3122c4abde29
groupId: _group ID_ # Optional - example: 350b8164-e809-4091-91f5-079fb30e5a1e
assetId: _asset ID_ # example: orders-api
version: _version_ # example: 0.0.1
instanceLabel: _instance label_ # example: public
tags:
apiSpec:
- _tag in Exchange asset_ # example: orders
apiInstance:
- _tag in API Manager instance_ # example: orders
clientId: _ID of the Anypoint Platform connected app_
clientSecret: _Secret of the Anypoint Platform connected app_
CRD ファイルを適用します。
kubectl apply -f test-api.yaml
API が正常に作成されていることを確認します。
asmctl api list
必要に応じて、Exchange アセットが Exchange で作成されていて API が API Manager で作成されていることを確認します。
Anypoint Service Mesh では、接続アプリケーションのログイン情報などの機密情報を保存して管理するために Kubernetes シークレットの使用がサポートされています。Kubernetes シークレットを使用する場合は、API を作成するたびにユーザー名とパスワードを指定する必要はありません。
Kubernetes シークレットを設定する前に、必要な権限を持っていることを確認してください。
Kubernetes シークレットにクライアントログイン情報を保存する手順は、次のとおりです。
YAML ファイルで、重要な情報を格納するシークレットを作成します (例: orders-api-config.yaml
)。
apiVersion: v1
kind: Secret
metadata:
name: _secret name_ # example: orders-api-config
namespace: _namespace name_ # example: default
type: Opaque
stringData:
config: |
{
"clientId": "_replace-with-connected-app-id_",
"clientSecret": "_replace-with-connected-app-secret_"
}
シークレットを適用します。
kubectl apply -f orders-api-config.yaml
シークレットが正しく適用されると、「secret/orders-api-config created (シークレット/orders-api-config が作成されました)」というメッセージが表示されます。
次の例で示しているように API CRD のシークレットを参照します。
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceInstance
metadata:
name: _Kubernetes API resource name_ # example: orders-api
namespace: _namespace name_ # example: default
labels:
service-mesh.mulesoft.com/kind: api
spec:
clusterServiceClassExternalName: anypoint-platform-api-instance
clusterServicePlanExternalName: service-mesh
parameters:
environmentId: _environment ID_ # example: 7cea45c6-3237-464d-bd34-3122c4abde29
groupId: _group ID_ # Optional - example: 350b8164-e809-4091-91f5-079fb30e5a1e
assetId: _asset ID_ # example: orders-api
version: _version_ # example: 0.0.1
instanceLabel: _instance label_ # example: public
tags:
apiSpec:
- _tag in Exchange asset_ # example: orders
apiInstance:
- _tag in API Manager instance_ # example: orders
parametersFrom: # The element specifies the secret name and configuration required for retrieving the parameters.
- secretKeyRef:
name: _secret name_ # example: orders-api-config
key: config